Changeset 3566 in products
- Timestamp:
- Oct 1, 2012 1:01:03 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/utils.py
r3510 r3566 1 from urllib2 import urlopen2 1 from urllib import quote as urlquote 3 2 from DateTime import DateTime 3 import logging 4 import urllib2 5 import socket 4 6 5 7 from Globals import DevelopmentMode … … 8 10 9 11 from quintagroup.plonegooglesitemaps import config 12 13 14 logger = logging.getLogger(__name__) 15 16 17 # BBB: 'timeout' was added to urlopen in python2.6. 18 # Method dedicated to compatibility with python2.4 and python2.5 19 def urlopen(request, timeout=5.0, data=None, marker=[]): 20 global_timeout = marker 21 try: 22 try: 23 urllib2.urlopen(request, data, timeout=timeout) 24 except TypeError, e: 25 logger.info('TypeError: %s. You use python < 2.6. ' 26 'Ugly socket.setdefaulttimeout hack applied ' 27 'to avoid it upgrade your Plone.' % e) 28 # socket.getdefaulttimeout() -> None. 29 # It indicates that new socket objects have no timeout. 30 global_timeout = socket.getdefaulttimeout() 31 socket.setdefaulttimeout(timeout) 32 urllib2.urlopen(request) 33 finally: 34 if global_timeout is not marker: 35 socket.setdefaulttimeout(global_timeout) 10 36 11 37 … … 20 46 return 0 21 47 22 sitemap_url = urlquote(resurl) 23 24 g = urlopen('http://www.google.com/webmasters/tools/ping?sitemap=' + 25 sitemap_url) 26 g.read() 27 g.close() 48 request = 'http://www.google.com/webmasters/tools/ping?sitemap=' +\ 49 urlquote(resurl) 50 try: 51 # BBB: Change urlopen -> socket.urlopen when 52 # compatibility with python2.4 is not important 53 g = urlopen(request) 54 except urllib2.URLError, e: 55 if hasattr(e, 'reason'): 56 logger.error('We failed to reach a server. ' 57 'Request: %s. ' 58 'Reason: %s' % (request, e.reason)) 59 elif hasattr(e, 'code'): 60 logger.error('The server couldn\'t fulfill the request. ' 61 'Request: %s ' 62 'Error code: %s. ' % (request, e.code)) 63 else: 64 # Reading single byte should be enough for server pinged 65 # to get our request, process it and send some response. 66 g.read(1) 67 g.close() 28 68 29 69 return 0
Note: See TracChangeset
for help on using the changeset viewer.