From 2a474382d020dffd8234f9fa3be9563ae8f18aa5 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 8 Feb 2009 16:54:19 -0800 Subject: [PATCH] Fix #1801 (Error when fetching cover.) --- src/calibre/ebooks/metadata/library_thing.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/calibre/ebooks/metadata/library_thing.py b/src/calibre/ebooks/metadata/library_thing.py index fdecf3fa99..8cc1282067 100644 --- a/src/calibre/ebooks/metadata/library_thing.py +++ b/src/calibre/ebooks/metadata/library_thing.py @@ -37,9 +37,14 @@ def cover_from_isbn(isbn, timeout=5.): if browser is None: browser = _browser() _timeout = socket.getdefaulttimeout() - socket.setdefaulttimeout(timeout) + socket.setdefaulttimeout(timeout) + src = None try: 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) url = s.find('td', attrs={'class':'left'}) if url is None: