mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
refactor: remove breaking change in pin expiry
This commit is contained in:
@@ -134,10 +134,6 @@ module.exports = function (Categories) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
Categories.getPinnedTids = async function (data) {
|
Categories.getPinnedTids = async function (data) {
|
||||||
if (!Array.isArray(data.cid)) {
|
|
||||||
data.cid = [data.cid];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (plugins.hasListeners('filter:categories.getPinnedTids')) {
|
if (plugins.hasListeners('filter:categories.getPinnedTids')) {
|
||||||
const result = await plugins.fireHook('filter:categories.getPinnedTids', {
|
const result = await plugins.fireHook('filter:categories.getPinnedTids', {
|
||||||
pinnedTids: [],
|
pinnedTids: [],
|
||||||
@@ -145,10 +141,8 @@ module.exports = function (Categories) {
|
|||||||
});
|
});
|
||||||
return result && result.pinnedTids;
|
return result && result.pinnedTids;
|
||||||
}
|
}
|
||||||
|
const pinnedTids = await db.getSortedSetRevRange('cid:' + data.cid + ':tids:pinned', data.start, data.stop);
|
||||||
const pinnedSets = data.cid.map(cid => `cid:${cid}:tids:pinned`);
|
return await topics.tools.checkPinExpiry(pinnedTids);
|
||||||
const pinnedTids = await db.getSortedSetRevRange(pinnedSets, data.start, data.stop);
|
|
||||||
return topics.tools.checkPinExpiry(pinnedTids);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Categories.modifyTopicsByPrivilege = function (topics, privileges) {
|
Categories.modifyTopicsByPrivilege = function (topics, privileges) {
|
||||||
|
|||||||
@@ -57,21 +57,18 @@ module.exports = function (Topics) {
|
|||||||
|
|
||||||
async function getCidTids(params) {
|
async function getCidTids(params) {
|
||||||
const sets = [];
|
const sets = [];
|
||||||
|
const pinnedSets = [];
|
||||||
params.cids.forEach(function (cid) {
|
params.cids.forEach(function (cid) {
|
||||||
if (params.sort === 'recent') {
|
if (params.sort === 'recent') {
|
||||||
sets.push('cid:' + cid + ':tids');
|
sets.push('cid:' + cid + ':tids');
|
||||||
} else {
|
} else {
|
||||||
sets.push('cid:' + cid + ':tids' + (params.sort ? ':' + params.sort : ''));
|
sets.push('cid:' + cid + ':tids' + (params.sort ? ':' + params.sort : ''));
|
||||||
}
|
}
|
||||||
|
pinnedSets.push('cid:' + cid + ':tids:pinned');
|
||||||
});
|
});
|
||||||
const [tids, pinnedTids] = await Promise.all([
|
let pinnedTids = await db.getSortedSetRevRange(pinnedSets, 0, -1);
|
||||||
db.getSortedSetRevRange(sets, 0, meta.config.recentMaxTopics - 1),
|
pinnedTids = await Topics.tools.checkPinExpiry(pinnedTids);
|
||||||
categories.getPinnedTids({
|
const tids = await db.getSortedSetRevRange(sets, 0, meta.config.recentMaxTopics - 1);
|
||||||
cid: params.cids,
|
|
||||||
start: 0,
|
|
||||||
stop: -1,
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
return pinnedTids.concat(tids);
|
return pinnedTids.concat(tids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user