diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2019-09-08 11:30:44 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2019-09-08 11:30:44 +0900 |
| commit | c033464b924a91c8e80bd8a315153037450dcf96 (patch) | |
| tree | 8e173a83648ec853585e87cce4eba20315deb0a1 /src/services/note/delete.ts | |
| parent | Update README.md [AUTOGEN] (#5402) (diff) | |
| download | sharkey-c033464b924a91c8e80bd8a315153037450dcf96.tar.gz sharkey-c033464b924a91c8e80bd8a315153037450dcf96.tar.bz2 sharkey-c033464b924a91c8e80bd8a315153037450dcf96.zip | |
AP Undo Announce (#5400)
* AP Undo Announce
* Use activity id
Diffstat (limited to 'src/services/note/delete.ts')
| -rw-r--r-- | src/services/note/delete.ts | 14 |
1 files changed, 13 insertions, 1 deletions
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[] = []; |