From 02002b062b7ccbde92b7db323083d36be8648290 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 6 Mar 2017 10:20:43 +0530 Subject: [PATCH] Fix ISBN-13 searches not matching when using search engines --- src/calibre/ebooks/metadata/sources/amazon.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/calibre/ebooks/metadata/sources/amazon.py b/src/calibre/ebooks/metadata/sources/amazon.py index ebd2e8bab0..b5c17d8d71 100644 --- a/src/calibre/ebooks/metadata/sources/amazon.py +++ b/src/calibre/ebooks/metadata/sources/amazon.py @@ -1026,7 +1026,10 @@ class Amazon(Source): terms.append(asin) elif isbn is not None: q['field-isbn'] = isbn - terms.append(isbn) + if len(isbn) == 13: + terms.extend('({} OR {}-{})'.format(isbn, isbn[:3], isbn[3:]).split()) + else: + terms.append(isbn) else: # Only return book results q['search-alias'] = {'br': 'digital-text', @@ -1448,7 +1451,7 @@ if __name__ == '__main__': # tests {{{ ( {'identifiers': {'isbn': '9783453314979'}}, [title_test('Die letzten Wächter: Roman', - exact=False), authors_test(['Sergej Lukianenko', 'Christiane Pöhlmann']) + exact=False), authors_test(['Sergej Lukianenko']) ] ), @@ -1486,7 +1489,7 @@ if __name__ == '__main__': # tests {{{ ( {'identifiers': {'isbn': '8483460831'}}, [title_test('Tiempos Interesantes', - exact=True), authors_test(['Terry Pratchett']) + exact=False), authors_test(['Terry Pratchett']) ] ),