diff options
| author | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-07-31 14:40:51 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-31 14:40:51 +0900 |
| commit | f2a23fb55ef2100bd26e3f2bcd7f939052c2ea09 (patch) | |
| tree | dff9f61bbb387e2e7d871cdf1d83d1580ebef10a /packages/backend/src/core/NoteDeleteService.ts | |
| parent | fix(test): Fix name of a test in e2e/timelines.ts (#16334) (diff) | |
| download | misskey-f2a23fb55ef2100bd26e3f2bcd7f939052c2ea09.tar.gz misskey-f2a23fb55ef2100bd26e3f2bcd7f939052c2ea09.tar.bz2 misskey-f2a23fb55ef2100bd26e3f2bcd7f939052c2ea09.zip | |
ノートの脱CASCADE削除 (#16332)
* wip
* Update CHANGELOG.md
* Update QueryService.ts
* Update QueryService.ts
* wip
* Update MkNoteDetailed.vue
* Update NoteEntityService.ts
* wip
* Update antennas.ts
* Update create.ts
* Update NoteEntityService.ts
* wip
* Update CHANGELOG.md
* Update NoteEntityService.ts
* Update NoteCreateService.ts
* Update note.test.ts
* Update note.test.ts
* Update ClientServerService.ts
* Update ClientServerService.ts
* add error handling
* Update NoteDeleteService.ts
* Update CHANGELOG.md
* Update entities.ts
* Update entities.ts
* Update misskey-js.api.md
Diffstat (limited to 'packages/backend/src/core/NoteDeleteService.ts')
| -rw-r--r-- | packages/backend/src/core/NoteDeleteService.ts | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/packages/backend/src/core/NoteDeleteService.ts b/packages/backend/src/core/NoteDeleteService.ts index e394506a44..af1f0eda9a 100644 --- a/packages/backend/src/core/NoteDeleteService.ts +++ b/packages/backend/src/core/NoteDeleteService.ts @@ -62,7 +62,6 @@ export class NoteDeleteService { */ async delete(user: { id: MiUser['id']; uri: MiUser['uri']; host: MiUser['host']; isBot: MiUser['isBot']; }, note: MiNote, quiet = false, deleter?: MiUser) { const deletedAt = new Date(); - const cascadingNotes = await this.findCascadingNotes(note); if (note.replyId) { await this.notesRepository.decrement({ id: note.replyId }, 'repliesCount', 1); @@ -90,15 +89,6 @@ export class NoteDeleteService { this.deliverToConcerned(user, note, content); } - - // also deliver delete activity to cascaded notes - const federatedLocalCascadingNotes = (cascadingNotes).filter(note => !note.localOnly && note.userHost == null); // filter out local-only notes - for (const cascadingNote of federatedLocalCascadingNotes) { - if (!cascadingNote.user) continue; - if (!this.userEntityService.isLocalUser(cascadingNote.user)) continue; - const content = this.apRendererService.addContext(this.apRendererService.renderDelete(this.apRendererService.renderTombstone(`${this.config.url}/notes/${cascadingNote.id}`), cascadingNote.user)); - this.deliverToConcerned(cascadingNote.user, cascadingNote, content); - } //#endregion this.notesChart.update(note, false); @@ -118,9 +108,6 @@ export class NoteDeleteService { } } - for (const cascadingNote of cascadingNotes) { - this.searchService.unindexNote(cascadingNote); - } this.searchService.unindexNote(note); await this.notesRepository.delete({ @@ -141,29 +128,6 @@ export class NoteDeleteService { } @bindThis - private async findCascadingNotes(note: MiNote): Promise<MiNote[]> { - const recursive = async (noteId: string): Promise<MiNote[]> => { - const query = this.notesRepository.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(); - - return [ - replies, - ...await Promise.all(replies.map(reply => recursive(reply.id))), - ].flat(); - }; - - const cascadingNotes: MiNote[] = await recursive(note.id); - - return cascadingNotes; - } - - @bindThis private async getMentionedRemoteUsers(note: MiNote) { const where = [] as any[]; |