From 4368c182a01782e6c0ff7c7c8b5bc317d4cf472c Mon Sep 17 00:00:00 2001 From: Ozzieisaacs Date: Wed, 6 May 2020 20:57:54 +0200 Subject: [PATCH] Make goodreads compatible for betterreads dependency --- cps/services/goodreads_support.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/cps/services/goodreads_support.py b/cps/services/goodreads_support.py index 55161c7a..cc871161 100644 --- a/cps/services/goodreads_support.py +++ b/cps/services/goodreads_support.py @@ -20,7 +20,10 @@ from __future__ import division, print_function, unicode_literals import time from functools import reduce -from goodreads.client import GoodreadsClient +try: + from goodreads.client import GoodreadsClient +except ImportError: + from betterreads.client import GoodreadsClient try: import Levenshtein except ImportError: Levenshtein = False @@ -54,7 +57,7 @@ def connect(key=None, secret=None, enabled=True): def get_author_info(author_name): now = time.time() - author_info = _AUTHORS_CACHE.get(author_name, None) + author_info = None # _AUTHORS_CACHE.get(author_name, None) if author_info: if now < author_info._timestamp + _CACHE_TIMEOUT: return author_info @@ -95,8 +98,12 @@ def get_other_books(author_info, library_books=None): for book in author_info.books: if book.isbn in identifiers: continue - if book.gid["#text"] in identifiers: - continue + if isinstance(book.gid, int): + if book.gid in identifiers: + continue + else: + if book.gid["#text"] in identifiers: + continue if Levenshtein and library_titles: goodreads_title = book._book_dict['title_without_series']