From 145389768d434c46bd24662488294eead7d3addb Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Sun, 10 May 2020 18:42:31 +0900 Subject: pub-relay (#6341) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * pub-relay * relay actorをApplicationにする * Disable koa-compress * Homeはリレーに送らない * Disable debug * UI * cleanupなど --- src/remote/activitypub/kernel/accept/follow.ts | 7 +++++++ src/remote/activitypub/kernel/reject/follow.ts | 7 +++++++ 2 files changed, 14 insertions(+) (limited to 'src/remote/activitypub/kernel') diff --git a/src/remote/activitypub/kernel/accept/follow.ts b/src/remote/activitypub/kernel/accept/follow.ts index c067f7622a..71c1bed9de 100644 --- a/src/remote/activitypub/kernel/accept/follow.ts +++ b/src/remote/activitypub/kernel/accept/follow.ts @@ -2,6 +2,7 @@ import { IRemoteUser } from '../../../../models/entities/user'; import accept from '../../../../services/following/requests/accept'; import { IFollow } from '../../type'; import DbResolver from '../../db-resolver'; +import { relayAccepted } from '../../../../services/relay'; export default async (actor: IRemoteUser, activity: IFollow): Promise => { // ※ activityはこっちから投げたフォローリクエストなので、activity.actorは存在するローカルユーザーである必要がある @@ -17,6 +18,12 @@ export default async (actor: IRemoteUser, activity: IFollow): Promise => return `skip: follower is not a local user`; } + // relay + const match = activity.id?.match(/follow-relay\/(\w+)/); + if (match) { + return await relayAccepted(match[1]); + } + await accept(actor, follower); return `ok`; }; diff --git a/src/remote/activitypub/kernel/reject/follow.ts b/src/remote/activitypub/kernel/reject/follow.ts index 49e82c7afc..d97ced46b3 100644 --- a/src/remote/activitypub/kernel/reject/follow.ts +++ b/src/remote/activitypub/kernel/reject/follow.ts @@ -2,6 +2,7 @@ import { IRemoteUser } from '../../../../models/entities/user'; import reject from '../../../../services/following/requests/reject'; import { IFollow } from '../../type'; import DbResolver from '../../db-resolver'; +import { relayRejected } from '../../../../services/relay'; export default async (actor: IRemoteUser, activity: IFollow): Promise => { // ※ activityはこっちから投げたフォローリクエストなので、activity.actorは存在するローカルユーザーである必要がある @@ -17,6 +18,12 @@ export default async (actor: IRemoteUser, activity: IFollow): Promise => return `skip: follower is not a local user`; } + // relay + const match = activity.id?.match(/follow-relay\/(\w+)/); + if (match) { + return await relayRejected(match[1]); + } + await reject(actor, follower); return `ok`; }; -- cgit v1.2.3-freya