1
0
mirror of https://github.com/r4sas/py-i2phosts synced 2025-01-22 12:34:17 +00:00

py-i2phosts-fetcher: rewrite fething errors handling

There were some changes between python 2.6 and 2.7 in urllib2 module
affected raising exceptions, so just update our behavior.
This commit is contained in:
Hidden Z 2013-09-26 16:49:25 +00:00
parent 22ef66ac48
commit f917b819da

View File

@ -10,6 +10,7 @@ import subprocess
import argparse
import configobj
import tempfile
import socket
# parse command line options
parser = argparse.ArgumentParser(
@ -76,17 +77,19 @@ for source in all_sources:
try:
log.debug('%s: sending GET...', source.name)
resp = opener.open(source.url, timeout=60)
except socket.timeout:
log.warning('%s: socket timeout', source.name)
continue
except urllib2.HTTPError, e:
if e.code == 304:
log.info('%s: not modified', source.name)
source.last_success = datetime.datetime.utcnow()
source.save()
else:
log.warning('%s: can\'t finish the request, error code: %s, reason: %s', source.name, e.code, e.reason)
continue
except urllib2.URLError, e:
if hasattr(e, 'reason'):
log.warning('%s: failed to reach server, reason: %s', source.name, e.reason)
elif hasattr(e, 'code'):
if e.code == 304:
log.info('%s: not modified', source.name)
source.last_success = datetime.datetime.utcnow()
source.save()
else:
log.warning('%s: %s can\'t finish the request, error code: %s',
source.name, e.code)
log.warning('%s: failed to reach server, reason: %s', source.name, e.reason)
continue
# read data from remote and write it to local file
try: