feat: add filter:categories.updateRecentTid

v1.18.x
Barış Soner Uşaklı 5 years ago
parent 478ed6c16f
commit 51933c1fcb

@ -1,13 +1,14 @@
'use strict';
var _ = require('lodash');
const _ = require('lodash');
var db = require('../database');
var posts = require('../posts');
var topics = require('../topics');
var privileges = require('../privileges');
var batch = require('../batch');
const db = require('../database');
const posts = require('../posts');
const topics = require('../topics');
const privileges = require('../privileges');
const plugins = require('../plugins');
const batch = require('../batch');
module.exports = function (Categories) {
Categories.getRecentReplies = async function (cid, uid, count) {
@ -25,15 +26,16 @@ module.exports = function (Categories) {
db.getObjectField('category:' + cid, 'numRecentReplies'),
]);
if (count < numRecentReplies) {
return await db.sortedSetAdd('cid:' + cid + ':recent_tids', Date.now(), tid);
}
const data = await db.getSortedSetRangeWithScores('cid:' + cid + ':recent_tids', 0, count - numRecentReplies);
const shouldRemove = !(data.length === 1 && count === 1 && data[0].value === String(tid));
if (data.length && shouldRemove) {
await db.sortedSetsRemoveRangeByScore(['cid:' + cid + ':recent_tids'], '-inf', data[data.length - 1].score);
if (count >= numRecentReplies) {
const data = await db.getSortedSetRangeWithScores('cid:' + cid + ':recent_tids', 0, count - numRecentReplies);
const shouldRemove = !(data.length === 1 && count === 1 && data[0].value === String(tid));
if (data.length && shouldRemove) {
await db.sortedSetsRemoveRangeByScore(['cid:' + cid + ':recent_tids'], '-inf', data[data.length - 1].score);
}
}
await db.sortedSetAdd('cid:' + cid + ':recent_tids', Date.now(), tid);
await plugins.fireHook('filter:categories.updateRecentTid', { cid: cid, tid: tid });
};
Categories.updateRecentTidForCid = async function (cid) {

Loading…
Cancel
Save