diff --git a/fedireads/connectors/openlibrary.py b/fedireads/connectors/openlibrary.py index 842d31d40..53be173df 100644 --- a/fedireads/connectors/openlibrary.py +++ b/fedireads/connectors/openlibrary.py @@ -167,7 +167,7 @@ class Connector(AbstractConnector): } author = update_from_mappings(author, data, mappings) # TODO this is making some BOLD assumption - name = data['name'] + name = data.get('name') author.last_name = name.split(' ')[-1] author.first_name = ' '.join(name.split(' ')[:-1]) author.save() @@ -204,8 +204,9 @@ def set_default_edition(work): options, key=lambda e: e.published_date.year if e.published_date else None ) - options[0].default = True - options[0].save() + if len(options): + options[0].default = True + options[0].save() def get_description(description_blob): diff --git a/fedireads/outgoing.py b/fedireads/outgoing.py index dc60b2c03..48019ffbb 100644 --- a/fedireads/outgoing.py +++ b/fedireads/outgoing.py @@ -167,6 +167,10 @@ def handle_import_books(user, items): identifier=item.shelf, user=user ) + if isinstance(item.book, models.Work): + item.book = item.book.default_edition + if not item.book: + continue _, created = models.ShelfBook.objects.get_or_create( book=item.book, shelf=desired_shelf, added_by=user) if created: