Fix: Delete is not deliver (#4950)

* Fix: Delete is not deliver

* fix
This commit is contained in:
MeiMei 2019-05-20 13:34:51 +09:00 committed by syuilo
parent 202cb3048a
commit 5a3ea38bbf

View file

@ -8,7 +8,6 @@ import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc';
import { User } from '../../models/entities/user'; import { User } from '../../models/entities/user';
import { Note } from '../../models/entities/note'; import { Note } from '../../models/entities/note';
import { Notes, Users, Followings, Instances } from '../../models'; import { Notes, Users, Followings, Instances } from '../../models';
import { Not } from 'typeorm';
import { notesChart, perUserNotesChart, instanceChart } from '../chart'; import { notesChart, perUserNotesChart, instanceChart } from '../chart';
/** /**
@ -38,13 +37,21 @@ export default async function(user: User, note: Note, quiet = false) {
if (Users.isLocalUser(user)) { if (Users.isLocalUser(user)) {
const content = renderActivity(renderDelete(renderTombstone(`${config.url}/notes/${note.id}`), user)); const content = renderActivity(renderDelete(renderTombstone(`${config.url}/notes/${note.id}`), user));
const followings = await Followings.find({ const queue: string[] = [];
followeeId: user.id,
followerHost: Not(null) const followers = await Followings.find({
followeeId: note.userId
}); });
for (const following of followings) { for (const following of followers) {
deliver(user, content, following.followerInbox); 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 //#endregion