Fix openlibrary lookups

This commit is contained in:
2024-01-26 23:47:13 -05:00
parent dfc1365fa3
commit 0b3bc53704
2 changed files with 41 additions and 3 deletions

View File

@ -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}")

View 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"