diff --git a/app/actor.py b/app/actor.py index 0e611e7..33d57e9 100644 --- a/app/actor.py +++ b/app/actor.py @@ -160,9 +160,9 @@ async def save_actor(db_session: AsyncSession, ap_actor: ap.RawObject) -> "Actor async def fetch_actor( db_session: AsyncSession, actor_id: str, -) -> Union["ActorModel", RemoteActor]: +) -> "ActorModel": if actor_id == LOCAL_ACTOR.ap_id: - return LOCAL_ACTOR + raise ValueError("local actor should not be fetched") from app import models existing_actor = ( diff --git a/app/utils/opengraph.py b/app/utils/opengraph.py index 7308859..c9eed6c 100644 --- a/app/utils/opengraph.py +++ b/app/utils/opengraph.py @@ -7,7 +7,6 @@ import httpx from bs4 import BeautifulSoup # type: ignore from pydantic import BaseModel -from loguru import logger from app import ap_object from app import config from app.actor import LOCAL_ACTOR @@ -66,9 +65,13 @@ async def external_urls( if tag_href := tag.get("href"): tags_hrefs.add(tag_href) if tag.get("type") == "Mention": - mentioned_actor = await fetch_actor(db_session, tag["href"]) - tags_hrefs.add(mentioned_actor.url) - tags_hrefs.add(mentioned_actor.ap_id) + if tag["href"] != LOCAL_ACTOR.ap_id: + mentioned_actor = await fetch_actor(db_session, tag["href"]) + tags_hrefs.add(mentioned_actor.url) + tags_hrefs.add(mentioned_actor.ap_id) + else: + tags_hrefs.add(LOCAL_ACTOR.ap_id) + tags_hrefs.add(LOCAL_ACTOR.url) urls = set() if ro.content: