From 786072ec8acc9f447f6d1018c4f85b0de118455e Mon Sep 17 00:00:00 2001 From: Thomas Sileo Date: Wed, 6 Jul 2022 21:13:33 +0200 Subject: [PATCH] Bug fixes --- app/httpsig.py | 4 ++-- app/utils/opengraph.py | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/httpsig.py b/app/httpsig.py index 6488f95..6a4194e 100644 --- a/app/httpsig.py +++ b/app/httpsig.py @@ -167,8 +167,8 @@ async def enforce_httpsig( # Special case for Mastoodon instance that keep resending Delete # activities for actor we don't know about if we raise a 401 if httpsig_info.is_ap_actor_gone: - logger.info("Let's make Mastodon happy, returning a 204") - raise fastapi.HTTPException(status_code=204) + logger.info("Let's make Mastodon happy, returning a 202") + raise fastapi.HTTPException(status_code=202) raise fastapi.HTTPException(status_code=401, detail="Invalid HTTP sig") diff --git a/app/utils/opengraph.py b/app/utils/opengraph.py index f75a022..c25d65d 100644 --- a/app/utils/opengraph.py +++ b/app/utils/opengraph.py @@ -40,6 +40,11 @@ def _scrap_og_meta(html: str) -> OpenGraphMeta | None: def _urls_from_note(note: ap.RawObject) -> set[str]: note_host = urlparse(ap.get_id(note["id"]) or "").netloc + tags_hrefs = set() + for tag in note.get("tag", []): + if tag_href := tag.get("href"): + tags_hrefs.add(tag_href) + urls = set() if "content" in note: soup = BeautifulSoup(note["content"], "html5lib") @@ -58,7 +63,7 @@ def _urls_from_note(note: ap.RawObject) -> set[str]: ): urls.add(h) - return urls + return urls - tags_hrefs async def _og_meta_from_url(url: str) -> OpenGraphMeta | None: