From 8713ebb0b17c2b8ac6d1cfad9dcc1f4796c1bcbe Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 31 Jul 2013 18:00:10 +0530 Subject: [PATCH] newdb: Fix duplicates during adding creating blank book record Fixes #1206830 [Problem when adding duplicate title](https://bugs.launchpad.net/calibre/+bug/1206830) --- src/calibre/db/legacy.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/calibre/db/legacy.py b/src/calibre/db/legacy.py index bd595fb36f..a97e107c0e 100644 --- a/src/calibre/db/legacy.py +++ b/src/calibre/db/legacy.py @@ -202,7 +202,8 @@ class LibraryDatabase(object): # Adding books {{{ def create_book_entry(self, mi, cover=None, add_duplicates=True, force_id=None): ret = self.new_api.create_book_entry(mi, cover=cover, add_duplicates=add_duplicates, force_id=force_id) - self.data.books_added((ret,)) + if ret is not None: + self.data.books_added((ret,)) return ret def add_books(self, paths, formats, metadata, add_duplicates=True, return_ids=False): @@ -217,7 +218,8 @@ class LibraryDatabase(object): paths.append(path) duplicates = (paths, formats, metadata) ids = book_ids if return_ids else len(book_ids) - self.data.books_added(book_ids) + if book_ids: + self.data.books_added(book_ids) return duplicates or None, ids def import_book(self, mi, formats, notify=True, import_hooks=True, apply_import_tags=True, preserve_uuid=False): @@ -229,7 +231,8 @@ class LibraryDatabase(object): format_map[ext] = path book_ids, duplicates = self.new_api.add_books( [(mi, format_map)], add_duplicates=True, apply_import_tags=apply_import_tags, preserve_uuid=preserve_uuid, dbapi=self, run_hooks=import_hooks) - self.data.books_added(book_ids) + if book_ids: + self.data.books_added(book_ids) if notify: self.notify('add', book_ids) return book_ids[0] @@ -250,12 +253,14 @@ class LibraryDatabase(object): def add_catalog(self, path, title): book_id = add_catalog(self.new_api, path, title) - self.data.books_added((book_id,)) + if book_id is not None: + self.data.books_added((book_id,)) return book_id def add_news(self, path, arg): book_id = add_news(self.new_api, path, arg) - self.data.books_added((book_id,)) + if book_id is not None: + self.data.books_added((book_id,)) return book_id def add_format(self, index, fmt, stream, index_is_id=False, path=None, notify=True, replace=True, copy_function=None):