Handle servers that return wrong webfinger payload (#415)

This commit is contained in:
Michael Manfre 2023-01-14 16:19:47 -05:00 committed by GitHub
parent f69c7304c1
commit 1f44e93518
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -683,14 +683,18 @@ class Identity(StatorModel):
"JSON parse error fetching webfinger",
response.content,
)
if data["subject"].startswith("acct:"):
data["subject"] = data["subject"][5:]
for link in data["links"]:
if (
link.get("type") == "application/activity+json"
and link.get("rel") == "self"
):
return link["href"], data["subject"]
try:
if data["subject"].startswith("acct:"):
data["subject"] = data["subject"][5:]
for link in data["links"]:
if (
link.get("type") == "application/activity+json"
and link.get("rel") == "self"
):
return link["href"], data["subject"]
except KeyError:
# Server returning wrong payload structure
pass
return None, None
async def fetch_actor(self) -> bool: