diff --git a/src/api/activitypub.js b/src/api/activitypub.js index e48446f56a..8edbe3eb24 100644 --- a/src/api/activitypub.js +++ b/src/api/activitypub.js @@ -131,7 +131,7 @@ activitypubApi.update.profile = enabledCheck(async (caller, { uid }) => { }); }); -activitypubApi.update.note = enabledCheck(async (caller, { post }) => { +activitypubApi.update.note = enabledCheck(async (caller, { post, eid }) => { const object = await activitypub.mocks.note(post); const { targets } = await buildRecipients(object, post.user.uid); @@ -142,6 +142,7 @@ activitypubApi.update.note = enabledCheck(async (caller, { post }) => { } const payload = { + id: `${nconf.get('url')}/api/v3/events/${eid}`, type: 'Update', to: object.to, cc: object.cc, diff --git a/src/api/posts.js b/src/api/posts.js index 4533b4464c..ca12816a7b 100644 --- a/src/api/posts.js +++ b/src/api/posts.js @@ -112,16 +112,16 @@ postsAPI.edit = async function (caller, data) { if (editResult.topic.isMainPost) { await topics.thumbs.migrate(data.uuid, editResult.topic.tid); } - const selfPost = parseInt(caller.uid, 10) === parseInt(editResult.post.uid, 10); - if (!selfPost && editResult.post.changed) { - await events.log({ + let eid; + if (editResult.post.changed) { + ({ eid } = await events.log({ type: `post-edit`, uid: caller.uid, ip: caller.ip, pid: editResult.post.pid, oldContent: editResult.post.oldContent, newContent: editResult.post.newContent, - }); + })); } if (editResult.topic.renamed) { @@ -140,7 +140,9 @@ postsAPI.edit = async function (caller, data) { if (!editResult.post.deleted) { websockets.in(`topic_${editResult.topic.tid}`).emit('event:post_edited', editResult); - await require('.').activitypub.update.note(caller, { post: postObj[0] }); + if (eid) { + await require('.').activitypub.update.note(caller, { post: postObj[0], eid }); + } return returnData; } diff --git a/src/events.js b/src/events.js index 7329aa486e..2a2c3ce20d 100644 --- a/src/events.js +++ b/src/events.js @@ -96,6 +96,8 @@ events.log = async function (data) { db.setObject(`event:${eid}`, data), ]); plugins.hooks.fire('action:events.log', { data: data }); + + return { eid }; }; events.getEvents = async function (filter, start, stop, from, to) {