Easier error message when librarything fails.

This commit is contained in:
Kovid Goyal 2008-05-05 05:42:48 -07:00
parent 2a17fc5bfe
commit a268b2e5d2

View File

@ -4,7 +4,7 @@ __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
Fetch cover from LibraryThing.com based on ISBN number. Fetch cover from LibraryThing.com based on ISBN number.
''' '''
import sys, socket, os, re import sys, socket, os, re, mechanize
from calibre import browser as _browser, OptionParser from calibre import browser as _browser, OptionParser
from calibre.ebooks.BeautifulSoup import BeautifulSoup from calibre.ebooks.BeautifulSoup import BeautifulSoup
@ -47,7 +47,7 @@ def cover_from_isbn(isbn, timeout=5.):
raise ISBNNotFound('ISBN: '+isbn+_(' not found.')) raise ISBNNotFound('ISBN: '+isbn+_(' not found.'))
url = url.find('img') url = url.find('img')
if url is None: if url is None:
raise LibraryThingError(_('Server error. Try again later.')) raise LibraryThingError(_('LibraryThing.com server error. Try again later.'))
url = re.sub(r'_SX\d+', '', url['src']) url = re.sub(r'_SX\d+', '', url['src'])
cover_data = browser.open(url).read() cover_data = browser.open(url).read()
return cover_data, url.rpartition('.')[-1] return cover_data, url.rpartition('.')[-1]
@ -75,7 +75,10 @@ def main(args=sys.argv):
return 1 return 1
isbn = args[1] isbn = args[1]
if opts.username and opts.password: if opts.username and opts.password:
login(opts.username, opts.password) try:
login(opts.username, opts.password)
except mechanize.FormNotFoundError:
raise LibraryThingError(_(_('LibraryThing.com server error. Try again later.')))
cover_data, ext = cover_from_isbn(isbn) cover_data, ext = cover_from_isbn(isbn)
if not ext: if not ext: