Use new cover infrastructure for bulk downloads as well

This commit is contained in:
Kovid Goyal 2010-08-01 12:17:00 -06:00
parent 73b8a5a09e
commit b2a06ab07a

View File

@ -13,8 +13,10 @@ from Queue import Queue, Empty
from calibre.ebooks.metadata.fetch import search, get_social_metadata from calibre.ebooks.metadata.fetch import search, get_social_metadata
from calibre.gui2 import config from calibre.gui2 import config
from calibre.ebooks.metadata.library_thing import cover_from_isbn from calibre.ebooks.metadata.covers import download_cover
from calibre.customize.ui import get_isbndb_key from calibre.customize.ui import get_isbndb_key
from calibre import prints
from calibre.constants import DEBUG
class Worker(Thread): class Worker(Thread):
@ -26,13 +28,15 @@ class Worker(Thread):
def run(self): def run(self):
while True: while True:
isbn = self.jobs.get() mi = self.jobs.get()
if not isbn: if not getattr(mi, 'isbn', False):
break break
try: try:
cdata, _ = cover_from_isbn(isbn) cdata, errors = download_cover(mi)
if cdata: if cdata:
self.results.put((isbn, cdata)) self.results.put((mi.isbn, cdata))
elif DEBUG:
prints('Cover download failed:', errors)
except: except:
traceback.print_exc() traceback.print_exc()
@ -98,7 +102,7 @@ class DownloadMetadata(Thread):
fmi = results[0] fmi = results[0]
self.fetched_metadata[id] = fmi self.fetched_metadata[id] = fmi
if fmi.isbn and self.get_covers: if fmi.isbn and self.get_covers:
self.worker.jobs.put(fmi.isbn) self.worker.jobs.put(fmi)
if (not config['overwrite_author_title_metadata']): if (not config['overwrite_author_title_metadata']):
fmi.authors = mi.authors fmi.authors = mi.authors
fmi.author_sort = mi.author_sort fmi.author_sort = mi.author_sort