mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix #2420 (Download Only Covers)
This commit is contained in:
parent
59a52e927a
commit
16a11369a5
@ -175,6 +175,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
md.addSeparator()
|
md.addSeparator()
|
||||||
md.addAction(_('Download metadata and covers'))
|
md.addAction(_('Download metadata and covers'))
|
||||||
md.addAction(_('Download only metadata'))
|
md.addAction(_('Download only metadata'))
|
||||||
|
md.addAction(_('Download only covers'))
|
||||||
self.metadata_menu = md
|
self.metadata_menu = md
|
||||||
self.add_menu = QMenu()
|
self.add_menu = QMenu()
|
||||||
self.add_menu.addAction(_('Add books from a single directory'))
|
self.add_menu.addAction(_('Add books from a single directory'))
|
||||||
@ -205,6 +206,10 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
partial(self.download_metadata, covers=True))
|
partial(self.download_metadata, covers=True))
|
||||||
QObject.connect(md.actions()[5], SIGNAL('triggered(bool)'),
|
QObject.connect(md.actions()[5], SIGNAL('triggered(bool)'),
|
||||||
partial(self.download_metadata, covers=False))
|
partial(self.download_metadata, covers=False))
|
||||||
|
QObject.connect(md.actions()[6], SIGNAL('triggered(bool)'),
|
||||||
|
partial(self.download_metadata, covers=True,
|
||||||
|
set_metadata=False))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
self.save_menu = QMenu()
|
self.save_menu = QMenu()
|
||||||
@ -836,7 +841,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
|
|
||||||
############################### Edit metadata ##############################
|
############################### Edit metadata ##############################
|
||||||
|
|
||||||
def download_metadata(self, checked, covers=True):
|
def download_metadata(self, checked, covers=True, set_metadata=True):
|
||||||
rows = self.library_view.selectionModel().selectedRows()
|
rows = self.library_view.selectionModel().selectedRows()
|
||||||
previous = self.library_view.currentIndex()
|
previous = self.library_view.currentIndex()
|
||||||
if not rows or len(rows) == 0:
|
if not rows or len(rows) == 0:
|
||||||
@ -847,10 +852,12 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
db = self.library_view.model().db
|
db = self.library_view.model().db
|
||||||
ids = [db.id(row.row()) for row in rows]
|
ids = [db.id(row.row()) for row in rows]
|
||||||
from calibre.gui2.metadata import DownloadMetadata
|
from calibre.gui2.metadata import DownloadMetadata
|
||||||
self._download_book_metadata = DownloadMetadata(db, ids, get_covers=covers)
|
self._download_book_metadata = DownloadMetadata(db, ids,
|
||||||
|
get_covers=covers, set_metadata=set_metadata)
|
||||||
self._download_book_metadata.start()
|
self._download_book_metadata.start()
|
||||||
|
x = _('covers') if covers and not set_metadata else _('metadata')
|
||||||
self.progress_indicator.start(
|
self.progress_indicator.start(
|
||||||
_('Downloading metadata for %d book(s)')%len(ids))
|
_('Downloading %s for %d book(s)')%(x, len(ids)))
|
||||||
self._book_metadata_download_check = QTimer(self)
|
self._book_metadata_download_check = QTimer(self)
|
||||||
self.connect(self._book_metadata_download_check,
|
self.connect(self._book_metadata_download_check,
|
||||||
SIGNAL('timeout()'), self.book_metadata_download_check)
|
SIGNAL('timeout()'), self.book_metadata_download_check)
|
||||||
|
@ -41,11 +41,12 @@ class Worker(Thread):
|
|||||||
|
|
||||||
class DownloadMetadata(Thread):
|
class DownloadMetadata(Thread):
|
||||||
|
|
||||||
def __init__(self, db, ids, get_covers):
|
def __init__(self, db, ids, get_covers, set_metadata=True):
|
||||||
Thread.__init__(self)
|
Thread.__init__(self)
|
||||||
self.setDaemon(True)
|
self.setDaemon(True)
|
||||||
self.metadata = {}
|
self.metadata = {}
|
||||||
self.covers = {}
|
self.covers = {}
|
||||||
|
self.set_metadata = set_metadata
|
||||||
self.db = db
|
self.db = db
|
||||||
self.updated = set([])
|
self.updated = set([])
|
||||||
self.get_covers = get_covers
|
self.get_covers = get_covers
|
||||||
@ -96,8 +97,9 @@ class DownloadMetadata(Thread):
|
|||||||
self.commit_covers()
|
self.commit_covers()
|
||||||
|
|
||||||
self.commit_covers(True)
|
self.commit_covers(True)
|
||||||
for id in self.fetched_metadata:
|
if self.set_metadata:
|
||||||
self.db.set_metadata(id, self.metadata[id])
|
for id in self.fetched_metadata:
|
||||||
|
self.db.set_metadata(id, self.metadata[id])
|
||||||
self.updated = set(self.fetched_metadata)
|
self.updated = set(self.fetched_metadata)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user