diff --git a/src/services/note/delete.ts b/src/services/note/delete.ts index c03c742ee..95776f728 100644 --- a/src/services/note/delete.ts +++ b/src/services/note/delete.ts @@ -8,7 +8,6 @@ import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; import { User } from '../../models/entities/user'; import { Note } from '../../models/entities/note'; import { Notes, Users, Followings, Instances } from '../../models'; -import { Not } from 'typeorm'; import { notesChart, perUserNotesChart, instanceChart } from '../chart'; /** @@ -38,13 +37,21 @@ export default async function(user: User, note: Note, quiet = false) { if (Users.isLocalUser(user)) { const content = renderActivity(renderDelete(renderTombstone(`${config.url}/notes/${note.id}`), user)); - const followings = await Followings.find({ - followeeId: user.id, - followerHost: Not(null) + const queue: string[] = []; + + const followers = await Followings.find({ + followeeId: note.userId }); - for (const following of followings) { - deliver(user, content, following.followerInbox); + for (const following of followers) { + if (Followings.isRemoteFollower(following)) { + const inbox = following.followerSharedInbox || following.followerInbox; + if (!queue.includes(inbox)) queue.push(inbox); + } + } + + for (const inbox of queue) { + deliver(user as any, content, inbox); } } //#endregion