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.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 import prints
from calibre.constants import DEBUG
class Worker(Thread):
@ -26,13 +28,15 @@ class Worker(Thread):
def run(self):
while True:
isbn = self.jobs.get()
if not isbn:
mi = self.jobs.get()
if not getattr(mi, 'isbn', False):
break
try:
cdata, _ = cover_from_isbn(isbn)
cdata, errors = download_cover(mi)
if cdata:
self.results.put((isbn, cdata))
self.results.put((mi.isbn, cdata))
elif DEBUG:
prints('Cover download failed:', errors)
except:
traceback.print_exc()
@ -98,7 +102,7 @@ class DownloadMetadata(Thread):
fmi = results[0]
self.fetched_metadata[id] = fmi
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']):
fmi.authors = mi.authors
fmi.author_sort = mi.author_sort