From c033464b924a91c8e80bd8a315153037450dcf96 Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Sun, 8 Sep 2019 11:30:44 +0900 Subject: AP Undo Announce (#5400) * AP Undo Announce * Use activity id --- src/services/note/delete.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/services/note') diff --git a/src/services/note/delete.ts b/src/services/note/delete.ts index 95776f7287..0f087de420 100644 --- a/src/services/note/delete.ts +++ b/src/services/note/delete.ts @@ -1,5 +1,7 @@ import { publishNoteStream } from '../stream'; import renderDelete from '../../remote/activitypub/renderer/delete'; +import renderAnnounce from '../../remote/activitypub/renderer/announce'; +import renderUndo from '../../remote/activitypub/renderer/undo'; import { renderActivity } from '../../remote/activitypub/renderer'; import { deliver } from '../../queue'; import renderTombstone from '../../remote/activitypub/renderer/tombstone'; @@ -35,7 +37,17 @@ export default async function(user: User, note: Note, quiet = false) { //#region ローカルの投稿なら削除アクティビティを配送 if (Users.isLocalUser(user)) { - const content = renderActivity(renderDelete(renderTombstone(`${config.url}/notes/${note.id}`), user)); + let renote: Note | undefined; + + if (note.renoteId && note.text == null && !note.hasPoll && (note.fileIds == null || note.fileIds.length == 0)) { + renote = await Notes.findOne({ + id: note.renoteId + }); + } + + const content = renderActivity(renote + ? renderUndo(renderAnnounce(renote.uri || `${config.url}/notes/${renote.id}`, note), user) + : renderDelete(renderTombstone(`${config.url}/notes/${note.id}`), user)); const queue: string[] = []; -- cgit v1.2.3-freya