diff options
Diffstat (limited to 'src/services/note/delete.ts')
| -rw-r--r-- | src/services/note/delete.ts | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/services/note/delete.ts b/src/services/note/delete.ts index 11b52cd135..1972801ab7 100644 --- a/src/services/note/delete.ts +++ b/src/services/note/delete.ts @@ -13,6 +13,7 @@ import { notesChart, perUserNotesChart, instanceChart } from '../chart'; import { deliverToFollowers } from '../../remote/activitypub/deliver-manager'; import { countSameRenotes } from '../../misc/count-same-renotes'; import { deliverToRelays } from '../relay'; +import { Brackets } from 'typeorm'; /** * 投稿を削除します。 @@ -59,6 +60,7 @@ export default async function(user: User, note: Note, quiet = false) { if (!Users.isLocalUser(cascadingNote.user)) continue; const content = renderActivity(renderDelete(renderTombstone(`${config.url}/notes/${cascadingNote.id}`), cascadingNote.user)); deliverToFollowers(cascadingNote.user, content); + deliverToRelays(cascadingNote.user, content); } //#endregion @@ -86,6 +88,10 @@ async function findCascadingNotes(note: Note) { const recursive = async (noteId: string) => { const query = Notes.createQueryBuilder('note') .where('note.replyId = :noteId', { noteId }) + .orWhere(new Brackets(q => { + q.where('note.renoteId = :noteId', { noteId }) + .andWhere('note.text IS NOT NULL'); + })) .leftJoinAndSelect('note.user', 'user'); const replies = await query.getMany(); for (const reply of replies) { |