Fix processing for forwarded transient activities

main
Thomas Sileo 2022-07-27 18:50:10 +02:00
parent 3af56bf2dc
commit a006ba2cc4
2 changed files with 7 additions and 1 deletions

View File

@ -240,7 +240,7 @@ def object_visibility(ap_activity: RawObject, actor: "Actor") -> VisibilityEnum:
def get_actor_id(activity: RawObject) -> str:
if activity["type"] in ["Note", "Article", "Video", "Question", "Page"]:
if "attributedTo" in activity:
attributed_to = as_list(activity["attributedTo"])
return get_id(attributed_to[0])
else:

View File

@ -1239,6 +1239,12 @@ async def save_to_inbox(
except Exception:
raise fastapi.HTTPException(status_code=401, detail="Invalid LD sig")
# Transient activities from Mastodon like Like are not fetchable and
# will return the actor instead
if raw_object["id"] != raw_object_id:
logger.info(f"Unable to fetch {raw_object_id}")
return None
if (
await db_session.scalar(
select(func.count(models.InboxObject.id)).where(