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: