From 4ca5715945bc3662027114016bafac2da0c8f8c6 Mon Sep 17 00:00:00 2001 From: momoirodouhu Date: Wed, 6 Nov 2024 15:06:46 +0000 Subject: [PATCH] =?UTF-8?q?Acct=E3=81=AE=E3=83=91=E3=83=BC=E3=82=B9?= =?UTF-8?q?=E3=82=92=E6=97=A2=E5=AD=98=E3=81=AE=E3=83=91=E3=83=BC=E3=82=B5?= =?UTF-8?q?=E3=83=BC=E3=81=A7=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/src/server/ActivityPubServerService.ts | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/packages/backend/src/server/ActivityPubServerService.ts b/packages/backend/src/server/ActivityPubServerService.ts index 4373676b90..a46b62a3eb 100644 --- a/packages/backend/src/server/ActivityPubServerService.ts +++ b/packages/backend/src/server/ActivityPubServerService.ts @@ -29,6 +29,7 @@ import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { bindThis } from '@/decorators.js'; import { IActivity } from '@/core/activitypub/type.js'; import { isQuote, isRenote } from '@/misc/is-renote.js'; +import * as Acct from '@/misc/acct.js'; import type { FastifyInstance, FastifyRequest, FastifyReply, FastifyPluginOptions, FastifyBodyParser } from 'fastify'; import type { FindOptionsWhere } from 'typeorm'; @@ -673,18 +674,11 @@ export class ActivityPubServerService { fastify.get<{ Params: { acct: string; } }>('/@:acct', { constraints: { apOrHtml: 'ap' } }, async (request, reply) => { vary(reply.raw, 'Accept'); - const spritedAcct = request.params.acct.toLowerCase().split('@'); - - //@foo@bar@baz なんてないはず - if (spritedAcct.length > 2) { - reply.code(400); - } - - console.log(spritedAcct); + const acct = Acct.parse(request.params.acct) const user = await this.usersRepository.findOneBy({ - usernameLower: spritedAcct[0], - host: spritedAcct[1] ?? IsNull(), + usernameLower: acct.username, + host: acct.host ?? IsNull(), isSuspended: false, });