From d287d43c9841049f48cda99e84c35f9730f956a8 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Thu, 26 Jun 2025 13:33:20 +0900 Subject: [PATCH] Update ApInboxService.ts --- .../src/core/activitypub/ApInboxService.ts | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/backend/src/core/activitypub/ApInboxService.ts b/packages/backend/src/core/activitypub/ApInboxService.ts index bd7edf4c44..786f2078d5 100644 --- a/packages/backend/src/core/activitypub/ApInboxService.ts +++ b/packages/backend/src/core/activitypub/ApInboxService.ts @@ -458,8 +458,33 @@ export class ApInboxService { } @bindThis - private async chatMessage(actor: MiRemoteUser, activity: IChatMessage): Promise { - const targetUri = getApId(activity.object); + private async chatMessage(resolver: Resolver, actor: MiRemoteUser, message: IObject): Promise { + const uri = getApId(message); + + if (typeof message === 'object') { + if (actor.uri !== message.attributedTo) { + return 'skip: actor.uri !== message.attributedTo'; + } + + if (typeof message.id === 'string') { + if (this.utilityService.extractDbHost(actor.uri) !== this.utilityService.extractDbHost(message.id)) { + return 'skip: host in actor.uri !== message.id'; + } + } else { + return 'skip: message.id is not a string'; + } + } + + try { + await this.chatService.createMessageViaAp(message, actor, resolver); + return 'ok'; + } catch (err) { + if (err instanceof StatusError && !err.isRetryable) { + return `skip ${err.statusCode}`; + } else { + throw err; + } + } } @bindThis