mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
Adding books: When duplicates are found, show the list of possible duplicates in calibre with title and author.
This commit is contained in:
commit
e577d39347
@ -11,7 +11,7 @@ from calibre.gui2.dialogs.progress import ProgressDialog
|
|||||||
from calibre.gui2 import (question_dialog, error_dialog, info_dialog, gprefs,
|
from calibre.gui2 import (question_dialog, error_dialog, info_dialog, gprefs,
|
||||||
warning_dialog, available_width)
|
warning_dialog, available_width)
|
||||||
from calibre.ebooks.metadata.opf2 import OPF
|
from calibre.ebooks.metadata.opf2 import OPF
|
||||||
from calibre.ebooks.metadata import MetaInformation
|
from calibre.ebooks.metadata import MetaInformation, authors_to_string
|
||||||
from calibre.constants import preferred_encoding, filesystem_encoding, DEBUG
|
from calibre.constants import preferred_encoding, filesystem_encoding, DEBUG
|
||||||
from calibre.utils.config import prefs
|
from calibre.utils.config import prefs
|
||||||
from calibre import prints, force_unicode, as_unicode
|
from calibre import prints, force_unicode, as_unicode
|
||||||
@ -382,12 +382,25 @@ class Adder(QObject): # {{{
|
|||||||
if not duplicates:
|
if not duplicates:
|
||||||
return self.duplicates_processed()
|
return self.duplicates_processed()
|
||||||
self.pd.hide()
|
self.pd.hide()
|
||||||
files = [_('%(title)s by %(author)s')%dict(title=x[0].title,
|
duplicate_message = []
|
||||||
author=x[0].format_field('authors')[1]) for x in duplicates]
|
for x in duplicates:
|
||||||
|
duplicate_message.append(_('Already in calibre:'))
|
||||||
|
matching_books = self.db.books_with_same_title(x[0])
|
||||||
|
for book_id in matching_books:
|
||||||
|
aut = [a.replace('|', ',') for a in (self.db.authors(book_id,
|
||||||
|
index_is_id=True) or '').split(',')]
|
||||||
|
duplicate_message.append('\t'+ _('%(title)s by %(author)s')%
|
||||||
|
dict(title=self.db.title(book_id, index_is_id=True),
|
||||||
|
author=authors_to_string(aut)))
|
||||||
|
duplicate_message.append(_('You are trying to add:'))
|
||||||
|
duplicate_message.append('\t'+_('%(title)s by %(author)s')%
|
||||||
|
dict(title=x[0].title,
|
||||||
|
author=x[0].format_field('authors')[1]))
|
||||||
|
duplicate_message.append('')
|
||||||
if question_dialog(self._parent, _('Duplicates found!'),
|
if question_dialog(self._parent, _('Duplicates found!'),
|
||||||
_('Books with the same title as the following already '
|
_('Books with the same title as the following already '
|
||||||
'exist in the database. Add them anyway?'),
|
'exist in calibre. Add them anyway?'),
|
||||||
'\n'.join(files)):
|
'\n'.join(duplicate_message)):
|
||||||
pd = QProgressDialog(_('Adding duplicates...'), '', 0, len(duplicates),
|
pd = QProgressDialog(_('Adding duplicates...'), '', 0, len(duplicates),
|
||||||
self._parent)
|
self._parent)
|
||||||
pd.setCancelButton(None)
|
pd.setCancelButton(None)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user