From 3251ef0bf5f88630bb0efcc172687ae0bc6069aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adeodato=20Sim=C3=B3?= Date: Mon, 16 Oct 2023 17:32:26 -0300 Subject: [PATCH] Fix creation of covers for ActivityPub imports `cover` comes as a JSON dict, but the code was looking for URL as an attribute. (This commit leaves the attribute access in place, just in case `cover` is updated to serialize as Document proper.) --- bookwyrm/models/fields.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bookwyrm/models/fields.py b/bookwyrm/models/fields.py index d21c9363d..a505170e1 100644 --- a/bookwyrm/models/fields.py +++ b/bookwyrm/models/fields.py @@ -482,10 +482,12 @@ class ImageField(ActivitypubFieldMixin, models.ImageField): image_slug = value # when it's an inline image (User avatar/icon, Book cover), it's a json # blob, but when it's an attached image, it's just a url - if hasattr(image_slug, "url"): - url = image_slug.url - elif isinstance(image_slug, str): + if isinstance(image_slug, str): url = image_slug + elif isinstance(image_slug, dict): + url = image_slug.get("url") + elif hasattr(image_slug, "url"): # Serialized to Image/Document object? + url = image_slug.url else: return None