Fix #1801 (Error when fetching cover.)

This commit is contained in:
Kovid Goyal 2009-02-08 16:54:19 -08:00
parent 526bdc6049
commit 2a474382d0

View File

@ -37,9 +37,14 @@ def cover_from_isbn(isbn, timeout=5.):
if browser is None: if browser is None:
browser = _browser() browser = _browser()
_timeout = socket.getdefaulttimeout() _timeout = socket.getdefaulttimeout()
socket.setdefaulttimeout(timeout) socket.setdefaulttimeout(timeout)
src = None
try: try:
src = browser.open('http://www.librarything.com/isbn/'+isbn).read().decode('utf-8', 'replace') src = browser.open('http://www.librarything.com/isbn/'+isbn).read().decode('utf-8', 'replace')
except Exception, err:
if isinstance(getattr(err, 'args', [None])[0], socket.timeout):
raise LibraryThingError(_('LibraryThing.com timed out. Try again later.'))
raise
s = BeautifulSoup(src) s = BeautifulSoup(src)
url = s.find('td', attrs={'class':'left'}) url = s.find('td', attrs={'class':'left'})
if url is None: if url is None: