From 5545ddf9ddefa5620c58ea34b2e6fdf18fdac30a Mon Sep 17 00:00:00 2001 From: piuvas Date: Tue, 27 May 2025 13:25:06 -0300 Subject: [PATCH] requested changes. --- locales/index.d.ts | 4 +- .../backend/src/models/json-schema/user.ts | 2 +- .../src/server/web/UrlPreviewService.ts | 18 ++++---- .../frontend/src/components/MkUrlPreview.vue | 41 +++++++++---------- .../frontend/src/pages/settings/profile.vue | 2 - sharkey-locales/en-US.yml | 2 +- sharkey-locales/pt-PT.yml | 2 +- 7 files changed, 32 insertions(+), 39 deletions(-) diff --git a/locales/index.d.ts b/locales/index.d.ts index 1070318fa2..f809613e7a 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -13138,9 +13138,9 @@ export interface Locale extends ILocale { */ "attributionDomainsDescription": string; /** - * Written by + * Written by {user} */ - "writtenBy": string; + "writtenBy": ParameterizedString<"user">; } declare const locales: { [lang: string]: Locale; 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); } } diff --git a/packages/frontend/src/components/MkUrlPreview.vue b/packages/frontend/src/components/MkUrlPreview.vue index ca8f6848e5..0cba73ef05 100644 --- a/packages/frontend/src/components/MkUrlPreview.vue +++ b/packages/frontend/src/components/MkUrlPreview.vue @@ -65,13 +65,14 @@ SPDX-License-Identifier: AGPL-3.0-only - + + +