Fix openlibrary lookups
This commit is contained in:
@ -102,10 +102,20 @@ def lookup_book_from_openlibrary(
|
||||
|
||||
top = None
|
||||
for result in results.get("docs"):
|
||||
# These Summary things suck and ruin our one-shot search
|
||||
if "Summary of" not in result.get("title"):
|
||||
if title.lower() == result.get("title", "").lower():
|
||||
top = result
|
||||
break
|
||||
|
||||
if not top:
|
||||
for result in results.get("docs"):
|
||||
# These Summary things suck and ruin our one-shot search
|
||||
if "Summary of" in result.get("title"):
|
||||
continue
|
||||
|
||||
if title.lower() in result.get("title", "").lower():
|
||||
top = result
|
||||
|
||||
if not top and len(results.get("docs")) > 0:
|
||||
top = results.get("docs")[0]
|
||||
|
||||
if not top:
|
||||
logger.warn(f"No book found for query {query}")
|
||||
|
||||
28
vrobbler/apps/books/tests/test_openlibrary.py
Normal file
28
vrobbler/apps/books/tests/test_openlibrary.py
Normal file
@ -0,0 +1,28 @@
|
||||
import pytest
|
||||
|
||||
from vrobbler.apps.books.openlibrary import (
|
||||
lookup_book_from_openlibrary,
|
||||
)
|
||||
|
||||
|
||||
def test_lookup_modern_book():
|
||||
book = lookup_book_from_openlibrary("Matrix", "Lauren Groff")
|
||||
assert book.get("title") == "Matrix"
|
||||
assert book.get("openlibrary_id") == "OL47572299M"
|
||||
assert book.get("ol_author_id") == "OL3675729A"
|
||||
|
||||
|
||||
def test_lookup_classic_book():
|
||||
book = lookup_book_from_openlibrary(
|
||||
"The Life of Castruccio Castracani", "Machiavelli"
|
||||
)
|
||||
assert book.get("title") == "The Life of Castruccio Castracani of Lucca"
|
||||
assert book.get("openlibrary_id") == "OL8950869M"
|
||||
assert book.get("ol_author_id") == "OL23135A"
|
||||
|
||||
|
||||
def test_lookup_foreign_book():
|
||||
book = lookup_book_from_openlibrary("Ravagé", "René Barjavel")
|
||||
assert book.get("title") == "Ravage"
|
||||
assert book.get("openlibrary_id") == "OL8837839M"
|
||||
assert book.get("ol_author_id") == "OL152472A"
|
||||
Reference in New Issue
Block a user