From 5545ddf9ddefa5620c58ea34b2e6fdf18fdac30a Mon Sep 17 00:00:00 2001 From: piuvas Date: Tue, 27 May 2025 13:25:06 -0300 Subject: requested changes. --- packages/backend/src/models/json-schema/user.ts | 2 +- packages/backend/src/server/web/UrlPreviewService.ts | 18 ++++++++---------- 2 files changed, 9 insertions(+), 11 deletions(-) (limited to 'packages/backend/src') diff --git a/packages/backend/src/models/json-schema/user.ts b/packages/backend/src/models/json-schema/user.ts index 9bfb57fc66..82d354cfd0 100644 --- a/packages/backend/src/models/json-schema/user.ts +++ b/packages/backend/src/models/json-schema/user.ts @@ -237,7 +237,7 @@ export const packedUserLiteSchema = { }, }, attributionDomains: { - type: 'object', + type: 'array', nullable: false, optional: false, additionalProperties: { type: 'string', diff --git a/packages/backend/src/server/web/UrlPreviewService.ts b/packages/backend/src/server/web/UrlPreviewService.ts index b50e5d49fd..ccf8fa342d 100644 --- a/packages/backend/src/server/web/UrlPreviewService.ts +++ b/packages/backend/src/server/web/UrlPreviewService.ts @@ -28,7 +28,7 @@ import { ApNoteService } from '@/core/activitypub/models/ApNoteService.js'; import { AuthenticateService, AuthenticationError } from '@/server/api/AuthenticateService.js'; import { SkRateLimiterService } from '@/server/SkRateLimiterService.js'; import { BucketRateLimit, Keyed, sendRateLimitHeaders } from '@/misc/rate-limit-utils.js'; -import type { MiLocalUser } from '@/models/User.js'; +import type { MiLocalUser, MiUser } from '@/models/User.js'; import { getIpHash } from '@/misc/get-ip-hash.js'; import { isRetryableError } from '@/misc/is-retryable-error.js'; import type { FastifyRequest, FastifyReply } from 'fastify'; @@ -36,10 +36,7 @@ import type { FastifyRequest, FastifyReply } from 'fastify'; export type LocalSummalyResult = SummalyResult & { haveNoteLocally?: boolean; linkAttribution?: { - name: string, - username: string, - avatarUrl: string, - avatarBlurhash: string, + user: MiUser, } }; @@ -448,6 +445,10 @@ export class UrlPreviewService { } const array = fediverseCreator.split('@'); + + // make sure we only have username@host. + if (array.length !== 2) return; + const username = array[0].toLowerCase(); let host: string | null = array[1]; if (host.toLowerCase() === this.config.host) { @@ -459,14 +460,11 @@ export class UrlPreviewService { const attributionDomains = user.attributionDomains; if (attributionDomains.some(x => `.${url.host.toLowerCase()}`.endsWith(`.${x}`))) { summary.linkAttribution = { - name: user.name ?? user.username, - username: fediverseCreator, - avatarUrl: user.avatarUrl ?? '', - avatarBlurhash: user.avatarBlurhash ?? '', + user: user, }; } } catch { - console.warn('user not found: ' + fediverseCreator); + this.logger.warn('user not found: ' + fediverseCreator); } } -- cgit v1.2.3-freya