From 3561dc98cf0d8314b5007db0af07e76dff65ff2f Mon Sep 17 00:00:00 2001 From: tamaina Date: Sat, 30 Aug 2025 20:41:57 +0900 Subject: [PATCH] =?UTF-8?q?Resolver.resolve=E3=81=8Cacct=20like=20url?= =?UTF-8?q?=E3=82=92=E8=A7=A3=E6=B1=BA=E3=81=A7=E3=81=8D=E3=82=8B=E5=BF=85?= =?UTF-8?q?=E8=A6=81=E6=80=A7=E3=81=AF=E3=81=84=E3=81=A3=E3=81=95=E3=81=84?= =?UTF-8?q?=E3=81=AA=E3=81=95=E3=81=9D=E3=81=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/core/activitypub/ApResolverService.ts | 24 ++++++------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/packages/backend/src/core/activitypub/ApResolverService.ts b/packages/backend/src/core/activitypub/ApResolverService.ts index c5c43bbc12..97e91de2bc 100644 --- a/packages/backend/src/core/activitypub/ApResolverService.ts +++ b/packages/backend/src/core/activitypub/ApResolverService.ts @@ -16,8 +16,8 @@ import { LoggerService } from '@/core/LoggerService.js'; import type Logger from '@/logger.js'; import { SystemAccountService } from '@/core/SystemAccountService.js'; import { IdentifiableError } from '@/misc/identifiable-error.js'; -import { getApId, isCollectionOrOrderedCollection } from './type.js'; -import { ApDbResolverService, type UriParseResult } from './ApDbResolverService.js'; +import { isCollectionOrOrderedCollection } from './type.js'; +import { ApDbResolverService } from './ApDbResolverService.js'; import { ApRendererService } from './ApRendererService.js'; import { ApRequestService } from './ApRequestService.js'; import { FetchAllowSoftFailMask } from './misc/check-against-url.js'; @@ -96,9 +96,8 @@ export class Resolver { this.history.add(value); const host = this.utilityService.extractDbHost(value); - const parsed = this.apDbResolverService.parseLocalUri(value); - if (parsed.local === true) { - return await this.resolveLocal(getApId(value), parsed); + if (this.utilityService.isSelfHost(host)) { + return await this.resolveLocal(value); } if (!this.utilityService.isFederationAllowedHost(host)) { @@ -125,18 +124,9 @@ export class Resolver { } @bindThis - private resolveLocal(url: string, parsed: UriParseResult): Promise { - if (parsed.local === false || 'uri' in parsed) { - throw new IdentifiableError('02b40cd0-fa92-4b0c-acc9-fb2ada952ab8', 'resolveLocal: not local'); - } - - if ('acct' in parsed) { - return this.usersRepository.findOneByOrFail({ - usernameLower: parsed.acct.username.toLowerCase(), - host: IsNull(), - }) - .then(user => this.apRendererService.renderPerson(user as MiLocalUser)); - } + private resolveLocal(url: string): Promise { + const parsed = this.apDbResolverService.parseLocalUri(url); + if (!parsed.local) throw new IdentifiableError('02b40cd0-fa92-4b0c-acc9-fb2ada952ab8', 'resolveLocal: not local'); switch (parsed.type) { case 'notes':