From eb88920f41ec98b073a53dce25a494ed03969d29 Mon Sep 17 00:00:00 2001 From: piuvas Date: Wed, 28 May 2025 19:55:40 -0300 Subject: [PATCH] requested changes. --- .../src/core/activitypub/models/ApPersonService.ts | 4 ++-- packages/backend/src/models/json-schema/user.ts | 3 ++- packages/frontend/src/components/MkUrlPreview.vue | 9 +++++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/backend/src/core/activitypub/models/ApPersonService.ts b/packages/backend/src/core/activitypub/models/ApPersonService.ts index 744b339254..bf5a5e01d5 100644 --- a/packages/backend/src/core/activitypub/models/ApPersonService.ts +++ b/packages/backend/src/core/activitypub/models/ApPersonService.ts @@ -433,7 +433,7 @@ export class ApPersonService implements OnModuleInit, OnApplicationShutdown { makeNotesFollowersOnlyBefore: (person as any).makeNotesFollowersOnlyBefore ?? null, makeNotesHiddenBefore: (person as any).makeNotesHiddenBefore ?? null, emojis, - attributionDomains: (person as any).attributionDomains, + attributionDomains: person.attributionDomains ?? [], })) as MiRemoteUser; let _description: string | null = null; @@ -617,7 +617,7 @@ export class ApPersonService implements OnModuleInit, OnApplicationShutdown { // We use "!== false" to handle incorrect types, missing / null values, and "default to true" logic. hideOnlineStatus: person.hideOnlineStatus !== false, isExplorable: person.discoverable !== false, - attributionDomains: person.attributionDomains, + attributionDomains: person.attributionDomains ?? [], ...(await this.resolveAvatarAndBanner(exist, person.icon, person.image, person.backgroundUrl).catch(() => ({}))), } as Partial & Pick; diff --git a/packages/backend/src/models/json-schema/user.ts b/packages/backend/src/models/json-schema/user.ts index 82d354cfd0..96369c3ad9 100644 --- a/packages/backend/src/models/json-schema/user.ts +++ b/packages/backend/src/models/json-schema/user.ts @@ -239,8 +239,9 @@ export const packedUserLiteSchema = { attributionDomains: { type: 'array', nullable: false, optional: false, - additionalProperties: { + items: { type: 'string', + nullable: false, optional: false, }, }, }, diff --git a/packages/frontend/src/components/MkUrlPreview.vue b/packages/frontend/src/components/MkUrlPreview.vue index 7029e324f4..69a1540600 100644 --- a/packages/frontend/src/components/MkUrlPreview.vue +++ b/packages/frontend/src/components/MkUrlPreview.vue @@ -259,8 +259,13 @@ function refresh(withFetch = false) { activityPub.value = info?.activityPub ?? null; linkAttribution.value = info?.linkAttribution ?? null; if (linkAttribution.value) { - misskeyApi('users/show', { userId: linkAttribution.value.userId }) - .then(u => attributionUser.value = u); + try { + const response = await misskeyApi('users/show', { userId: linkAttribution.value.userId }); + attributionUser.value = response; + } catch { + // makes the loading ellipsis vanish. + linkAttribution.value = null; + } } theNote.value = null;