From 9583f0d49b040d82130051f9958b64fb50c476a9 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 15 Oct 2025 11:24:08 -0400 Subject: [PATCH] feat: execute 1b12 rebroadcast logic on all tids even if not posted to a local cid --- src/activitypub/feps.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/activitypub/feps.js b/src/activitypub/feps.js index b8bf765bef..cc49f2a8aa 100644 --- a/src/activitypub/feps.js +++ b/src/activitypub/feps.js @@ -3,6 +3,7 @@ const nconf = require('nconf'); const posts = require('../posts'); +const topics = require('../topics'); const utils = require('../utils'); const activitypub = module.parent.exports; @@ -13,8 +14,16 @@ Feps.announce = async function announce(id, activity) { if (String(id).startsWith(nconf.get('url'))) { ({ id: localId } = await activitypub.helpers.resolveLocalId(id)); } - const cid = await posts.getCidByPid(localId || id); - if (cid === -1 || !utils.isNumber(cid)) { // local cids only + + /** + * Re-broadcasting occurs on + * - local cids (for all tids), and + * - local tids (posted to remote cids) only + */ + const tid = await posts.getPostField(localId || id, 'tid'); + const cid = await topics.getTopicField(tid, 'cid'); + const shouldAnnounce = (utils.isNumber(cid) && cid > 0) || utils.isNumber(tid); + if (!shouldAnnounce) { // inverse conditionals can kiss my ass. return; }