diff options
Diffstat (limited to 'src/services/i/update.ts')
| -rw-r--r-- | src/services/i/update.ts | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/services/i/update.ts b/src/services/i/update.ts index 887cecb04c..7dba472e78 100644 --- a/src/services/i/update.ts +++ b/src/services/i/update.ts @@ -1,29 +1,26 @@ -import * as mongo from 'mongodb'; -import User, { isLocalUser, isRemoteUser } from '../../models/user'; -import Following from '../../models/following'; -import renderPerson from '../../remote/activitypub/renderer/person'; import renderUpdate from '../../remote/activitypub/renderer/update'; import { renderActivity } from '../../remote/activitypub/renderer'; import { deliver } from '../../queue'; +import { Followings, Users } from '../../models'; +import { User } from '../../models/entities/user'; +import { renderPerson } from '../../remote/activitypub/renderer/person'; -export async function publishToFollowers(userId: mongo.ObjectID) { - const user = await User.findOne({ - _id: userId +export async function publishToFollowers(userId: User['id']) { + const user = await Users.findOne({ + id: userId }); - const followers = await Following.find({ - followeeId: user._id + const followers = await Followings.find({ + followeeId: user.id }); const queue: string[] = []; // フォロワーがリモートユーザーかつ投稿者がローカルユーザーならUpdateを配信 - if (isLocalUser(user)) { + if (Users.isLocalUser(user)) { for (const following of followers) { - const follower = following._follower; - - if (isRemoteUser(follower)) { - const inbox = follower.sharedInbox || follower.inbox; + if (following.followerHost !== null) { + const inbox = following.followerSharedInbox || following.followerInbox; if (!queue.includes(inbox)) queue.push(inbox); } } |