From 7bf411383e6acc7cf4abdcb60375d08653432b13 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 29 Oct 2024 10:36:35 -0400 Subject: [PATCH] fix: use `categories.getTopicIds` instead of duplicating existing logic to get world tids --- src/controllers/activitypub/topics.js | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/src/controllers/activitypub/topics.js b/src/controllers/activitypub/topics.js index d232edfad2..e53030044e 100644 --- a/src/controllers/activitypub/topics.js +++ b/src/controllers/activitypub/topics.js @@ -2,7 +2,6 @@ const nconf = require('nconf'); -const db = require('../../database'); const user = require('../../user'); const topics = require('../../topics'); @@ -30,14 +29,6 @@ controller.list = async function (req, res) { const start = Math.max(0, (page - 1) * topicsPerPage); const stop = start + topicsPerPage - 1; - const sortToSet = { - recently_replied: `cid:-1:tids`, - recently_created: `cid:-1:tids:create`, - most_posts: `cid:-1:tids:posts`, - most_votes: `cid:-1:tids:votes`, - most_views: `cid:-1:tids:views`, - }; - const [userPrivileges, tagData, userSettings, rssToken] = await Promise.all([ privileges.categories.get('-1', req.uid), helpers.getSelectedTag(req.query.tag), @@ -45,16 +36,8 @@ controller.list = async function (req, res) { user.auth.getFeedToken(req.uid), ]); const sort = validSorts.includes(req.query.sort) ? req.query.sort : userSettings.categoryTopicSort; - - let tids = await db.getSortedSetRevRange(sortToSet[sort], 0, 499); - const isMembers = await db.isSortedSetMembers(`uid:${req.uid}:inbox`, tids); - tids = tids.filter((tid, idx) => isMembers[idx]); - const count = tids.length; - tids = tids.slice(start, stop + 1); - const targetUid = await user.getUidByUserslug(req.query.author); - - const data = await categories.getCategoryById({ + const cidQuery = { uid: req.uid, cid: '-1', start: start, @@ -64,12 +47,14 @@ controller.list = async function (req, res) { query: req.query, tag: req.query.tag, targetUid: targetUid, - }); + }; + const data = await categories.getCategoryById(cidQuery); data.name = '[[activitypub:world.name]]'; delete data.children; - data.topicCount = count; + const tids = await categories.getTopicIds(cidQuery); + data.topicCount = tids.length; data.topics = await topics.getTopicsByTids(tids, { uid: req.uid }); topics.calculateTopicIndices(data.topics, start);