From 2d32bc33d746bac9968d302e997437de00c791b8 Mon Sep 17 00:00:00 2001 From: Johann150 Date: Mon, 30 Jan 2023 19:23:12 +0100 Subject: [PATCH] server: fix error for invalid URLs in profile fields Co-authored-by: Chloe Kudryavtsev --- .../src/remote/activitypub/renderer/person.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/backend/src/remote/activitypub/renderer/person.ts b/packages/backend/src/remote/activitypub/renderer/person.ts index 7de957882..68f813aa8 100644 --- a/packages/backend/src/remote/activitypub/renderer/person.ts +++ b/packages/backend/src/remote/activitypub/renderer/person.ts @@ -30,12 +30,21 @@ export async function renderPerson(user: ILocalUser) { if (profile.fields) { for (const field of profile.fields) { + let value = field.value; + // try to parse it as a url + try { + if (field.value?.match(/^https?:/)) { + const url = new URL(field.value); + value = `${url.href}`; + } + } catch { + // guess it wasn't a url after all... + } + attachment.push({ type: 'PropertyValue', name: field.name, - value: (field.value != null && field.value.match(/^https?:/)) - ? `${new URL(field.value).href}` - : field.value, + value, }); } }