diff --git a/blueprints/tasks.py b/blueprints/tasks.py index bbd76eb..2d8ebfb 100644 --- a/blueprints/tasks.py +++ b/blueprints/tasks.py @@ -265,7 +265,9 @@ def task_cache_actor() -> _Response: # Fetch the Open Grah metadata if it's a `Create` if activity.has_type(ap.ActivityType.CREATE): - Tasks.fetch_og_meta(iri) + links = opengraph.links_from_note(activity.get_object().to_dict()) + if links: + Tasks.fetch_og_meta(iri) if activity.has_type(ap.ActivityType.FOLLOW): if actor.id == config.ID: @@ -475,8 +477,6 @@ def task_process_new_activity() -> _Response: DB.activities.update_one({"remote_id": activity.id}, {"$set": flags}) app.logger.info(f"new activity {iri} processed") - if not activity.has_type(ap.ActivityType.DELETE): - Tasks.cache_actor(iri) except (ActivityGoneError, ActivityNotFoundError): app.logger.exception(f"dropping activity {iri}, skip processing") return "" diff --git a/core/activitypub.py b/core/activitypub.py index 43f2f5e..4d1e728 100644 --- a/core/activitypub.py +++ b/core/activitypub.py @@ -174,9 +174,10 @@ def post_to_inbox(activity: ap.BaseActivity) -> None: return save(Box.INBOX, activity) + logger.info(f"spawning tasks for {activity!r}") + if not activity.has_type(ap.ActivityType.DELETE): + Tasks.cache_actor(activity.id) Tasks.process_new_activity(activity.id) - - logger.info(f"spawning task for {activity!r}") Tasks.finish_post_to_inbox(activity.id)