|
|
|
@ -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']
|
|
|
|
|