Fix openlibrary lookups
This commit is contained in:
@ -102,10 +102,20 @@ def lookup_book_from_openlibrary(
|
|||||||
|
|
||||||
top = None
|
top = None
|
||||||
for result in results.get("docs"):
|
for result in results.get("docs"):
|
||||||
# These Summary things suck and ruin our one-shot search
|
if title.lower() == result.get("title", "").lower():
|
||||||
if "Summary of" not in result.get("title"):
|
|
||||||
top = result
|
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:
|
if not top:
|
||||||
logger.warn(f"No book found for query {query}")
|
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