fix: #7788, fix another edge case

ignore pids in topics that were purged/deleted
v1.18.x
Baris Usakli 6 years ago
parent d98313b5f6
commit 053ff510bb

@ -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;
}
const tid = await posts.getPostField(pids[0], 'tid');
if (!tid) {
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);
}
await Categories.updateRecentTid(cid, tid);
};
Categories.getRecentTopicReplies = async function (categoryData, uid) {

Loading…
Cancel
Save