diff --git a/src/calibre/library/database.py b/src/calibre/library/database.py index f14a1174fc..ecf272618f 100644 --- a/src/calibre/library/database.py +++ b/src/calibre/library/database.py @@ -1551,9 +1551,6 @@ ALTER TABLE books ADD COLUMN isbn TEXT DEFAULT "" COLLATE NOCASE; - def has_book(self, mi): - return bool(self.conn.get('SELECT id FROM books where title=?', (mi.title,), all=False)) - def has_id(self, id): return self.conn.get('SELECT id FROM books where id=?', (id,), all=False) is not None diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index e39736baf6..da41dba57f 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -561,7 +561,15 @@ class LibraryDatabase2(LibraryDatabase): img.loadFromData(f.read()) return img return f if as_file else f.read() - + + def has_book(self, mi): + title = mi.title + if title: + if not isinstance(title, unicode): + title = title.decode(preferred_encoding, 'replace') + return bool(self.conn.get('SELECT id FROM books where title=?', (title,), all=False)) + return False + def has_cover(self, index, index_is_id=False): id = index if index_is_id else self.id(index) path = os.path.join(self.library_path, self.path(id, index_is_id=True), 'cover.jpg')