diff --git a/vrobbler/apps/books/models.py b/vrobbler/apps/books/models.py index a1224ca..0996ebb 100644 --- a/vrobbler/apps/books/models.py +++ b/vrobbler/apps/books/models.py @@ -269,11 +269,14 @@ class Book(LongPlayScrobblableMixin): @classmethod def find_or_create(cls, lookup_id: str, author: str = "") -> "Book": - data = lookup_book_from_openlibrary(lookup_id, author) + book = cls.objects.filter(openlibrary_id=lookup_id).first() - book, book_created = cls.objects.get_or_create(isbn=data["isbn"]) - if book_created: - book.fix_metadata(data=data) + if not book: + data = lookup_book_from_openlibrary(lookup_id, author) + + book, book_created = cls.objects.get_or_create(isbn=data["isbn"]) + if book_created: + book.fix_metadata(data=data) return book