diff --git a/src/calibre/db/cache.py b/src/calibre/db/cache.py index 611efc80f8..be3a5ab5fb 100644 --- a/src/calibre/db/cache.py +++ b/src/calibre/db/cache.py @@ -1480,7 +1480,7 @@ class Cache(object): if title: if isbytestring(title): title = title.decode(preferred_encoding, 'replace') - q = icu_lower(title) + q = icu_lower(title).strip() for title in self.fields['title'].table.book_col_map.itervalues(): if q == icu_lower(title): return True diff --git a/src/calibre/ebooks/metadata/worker.py b/src/calibre/ebooks/metadata/worker.py index cb9c1de179..795e6b0304 100644 --- a/src/calibre/ebooks/metadata/worker.py +++ b/src/calibre/ebooks/metadata/worker.py @@ -60,11 +60,13 @@ def run_import_plugins(paths, group_id, tdir): final_paths.append(path) return final_paths +def has_book(mi, data_for_has_book): + return mi.title and icu_lower(mi.title.strip()) in data_for_has_book + def read_metadata(paths, group_id, tdir, common_data=None): paths = run_import_plugins(paths, group_id, tdir) mi, opf, has_cover = serialize_metadata_for(paths, tdir, group_id) duplicate_info = None - if common_data is not None: - if isinstance(common_data, (set, frozenset)): - duplicate_info = mi.title and icu_lower(mi.title) in common_data + if isinstance(common_data, (set, frozenset)): + duplicate_info = has_book(mi, common_data) return paths, opf, has_cover, duplicate_info