mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-16 18:56:15 +01:00
fix: #7788, fix another edge case
ignore pids in topics that were purged/deleted
This commit is contained in:
@@ -37,15 +37,26 @@ module.exports = function (Categories) {
|
||||
};
|
||||
|
||||
Categories.updateRecentTidForCid = async function (cid) {
|
||||
const pids = await db.getSortedSetRevRange('cid:' + cid + ':pids', 0, 0);
|
||||
if (!pids.length) {
|
||||
return;
|
||||
let recentTid;
|
||||
let topicData;
|
||||
let index = 0;
|
||||
do {
|
||||
/* eslint-disable no-await-in-loop */
|
||||
const pids = await db.getSortedSetRevRange('cid:' + cid + ':pids', index, index);
|
||||
if (!pids.length) {
|
||||
return;
|
||||
}
|
||||
recentTid = await posts.getPostField(pids[0], 'tid');
|
||||
if (!recentTid) {
|
||||
return;
|
||||
}
|
||||
topicData = await topics.getTopicData(recentTid);
|
||||
index += 1;
|
||||
} while (!topicData || topicData.deleted);
|
||||
|
||||
if (recentTid) {
|
||||
await Categories.updateRecentTid(cid, recentTid);
|
||||
}
|
||||
const tid = await posts.getPostField(pids[0], 'tid');
|
||||
if (!tid) {
|
||||
return;
|
||||
}
|
||||
await Categories.updateRecentTid(cid, tid);
|
||||
};
|
||||
|
||||
Categories.getRecentTopicReplies = async function (categoryData, uid) {
|
||||
|
||||
Reference in New Issue
Block a user