From 209875f0e6df5706c26a07b10e43192d615fa8aa Mon Sep 17 00:00:00 2001 From: Colin Powell Date: Sat, 27 Jan 2024 01:14:26 -0500 Subject: [PATCH] Import fix, and don't overwrite KoReader data when OL conflicts --- vrobbler/apps/books/models.py | 11 +++++++++-- vrobbler/apps/books/tests/test_openlibrary.py | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/vrobbler/apps/books/models.py b/vrobbler/apps/books/models.py index 9fcaa95..2c4ffd8 100644 --- a/vrobbler/apps/books/models.py +++ b/vrobbler/apps/books/models.py @@ -22,6 +22,7 @@ from scrobbles.mixins import ( ) from scrobbles.utils import get_scrobbles_for_media from taggit.managers import TaggableManager +from thefuzz import fuzz from vrobbler.apps.books.locg import ( lookup_comic_by_locg_slug, @@ -176,10 +177,16 @@ class Book(LongPlayScrobblableMixin): ol_title = data.get("title", "") # Kick out a little warning if we're about to change KoReader's title - if ol_title.lower() != str(self.title).lower(): + if ( + fuzz.ratio(ol_title.lower(), str(self.title).lower()) < 80 + and not force_update + ): logger.warn( - f"OL and KoReader disagree on this book title {self.title} != {ol_title}" + f"OL and KoReader disagree on this book title {self.title} != {ol_title}, check manually" ) + self.openlibrary_id = data.get("openlibrary_id") + self.save(update_fields=["openlibrary_id"]) + return # If we don't know pages, don't overwrite existing with None if "pages" in data.keys() and data.get("pages") == None: diff --git a/vrobbler/apps/books/tests/test_openlibrary.py b/vrobbler/apps/books/tests/test_openlibrary.py index 294303a..369de7f 100644 --- a/vrobbler/apps/books/tests/test_openlibrary.py +++ b/vrobbler/apps/books/tests/test_openlibrary.py @@ -2,7 +2,7 @@ from unittest import skip import pytest -from vrobbler.apps.books.openlibrary import lookup_book_from_openlibrary +from books.openlibrary import lookup_book_from_openlibrary def test_lookup_modern_book():