summaryrefslogtreecommitdiff
path: root/src/services/note/delete.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/note/delete.ts')
-rw-r--r--src/services/note/delete.ts6
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) {