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. 15
      bin/py-i2phosts-fetcher

15
bin/py-i2phosts-fetcher

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

Loading…
Cancel
Save