From eaec936fa6a53d0fd1004a613ea09f482198f366 Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Tue, 4 Sep 2018 18:33:16 +0900 Subject: Fix remote follow (#2606) --- src/services/following/create.ts | 7 +------ src/services/following/requests/accept.ts | 2 ++ src/services/following/requests/create.ts | 2 -- src/services/following/requests/reject.ts | 5 ++++- 4 files changed, 7 insertions(+), 9 deletions(-) (limited to 'src/services') diff --git a/src/services/following/create.ts b/src/services/following/create.ts index bd39b8e183..dd2fa544dc 100644 --- a/src/services/following/create.ts +++ b/src/services/following/create.ts @@ -11,7 +11,7 @@ import { deliver } from '../../queue'; import createFollowRequest from './requests/create'; export default async function(follower: IUser, followee: IUser) { - if (followee.isLocked) { + if (followee.isLocked || isLocalUser(follower) && isRemoteUser(followee)) { await createFollowRequest(follower, followee); } else { const following = await Following.insert({ @@ -72,11 +72,6 @@ export default async function(follower: IUser, followee: IUser) { notify(followee._id, follower._id, 'follow'); } - if (isLocalUser(follower) && isRemoteUser(followee)) { - const content = pack(renderFollow(follower, followee)); - deliver(follower, content, followee.inbox); - } - if (isRemoteUser(follower) && isLocalUser(followee)) { const content = pack(renderAccept(renderFollow(follower, followee))); deliver(followee, content, follower.inbox); diff --git a/src/services/following/requests/accept.ts b/src/services/following/requests/accept.ts index bf8ed99e13..5e38879a49 100644 --- a/src/services/following/requests/accept.ts +++ b/src/services/following/requests/accept.ts @@ -75,4 +75,6 @@ export default async function(followee: IUser, follower: IUser) { packUser(followee, followee, { detail: true }).then(packed => publishUserStream(followee._id, 'meUpdated', packed)); + + packUser(followee, follower).then(packed => publishUserStream(follower._id, 'follow', packed)); } diff --git a/src/services/following/requests/create.ts b/src/services/following/requests/create.ts index 4c7c90cc08..946c22568c 100644 --- a/src/services/following/requests/create.ts +++ b/src/services/following/requests/create.ts @@ -7,8 +7,6 @@ import { deliver } from '../../../queue'; import FollowRequest from '../../../models/follow-request'; export default async function(follower: IUser, followee: IUser) { - if (!followee.isLocked) throw '対象のアカウントは鍵アカウントではありません'; - await FollowRequest.insert({ createdAt: new Date(), followerId: follower._id, diff --git a/src/services/following/requests/reject.ts b/src/services/following/requests/reject.ts index affcd2ef5a..eda6716321 100644 --- a/src/services/following/requests/reject.ts +++ b/src/services/following/requests/reject.ts @@ -1,9 +1,10 @@ -import User, { IUser, isRemoteUser, ILocalUser } from '../../../models/user'; +import User, { IUser, isRemoteUser, ILocalUser, pack as packUser } from '../../../models/user'; import FollowRequest from '../../../models/follow-request'; import pack from '../../../remote/activitypub/renderer'; import renderFollow from '../../../remote/activitypub/renderer/follow'; import renderReject from '../../../remote/activitypub/renderer/reject'; import { deliver } from '../../../queue'; +import { publishUserStream } from '../../../stream'; export default async function(followee: IUser, follower: IUser) { if (isRemoteUser(follower)) { @@ -21,4 +22,6 @@ export default async function(followee: IUser, follower: IUser) { pendingReceivedFollowRequestsCount: -1 } }); + + packUser(followee, follower).then(packed => publishUserStream(follower._id, 'unfollow', packed)); } -- cgit v1.2.3-freya