Browse Source

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.
pull/1/head
Hidden Z 11 years ago
parent
commit
f917b819da
  1. 23
      bin/py-i2phosts-fetcher

23
bin/py-i2phosts-fetcher

@ -10,6 +10,7 @@ import subprocess @@ -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: @@ -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:

Loading…
Cancel
Save