mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-06-19 16:21:11 +02:00
feat: allow passing min,max to sortedSetsCardSum
to get rid of multiple db calls in profile page
This commit is contained in:
@@ -180,8 +180,8 @@ async function getCounts(userData, callerUID) {
|
||||
const cids = await categories.getCidsByPrivilege('categories:cid', callerUID, 'topics:read');
|
||||
const promises = {
|
||||
posts: db.sortedSetsCardSum(cids.map(c => `cid:${c}:uid:${uid}:pids`)),
|
||||
best: Promise.all(cids.map(async c => db.sortedSetCount(`cid:${c}:uid:${uid}:pids:votes`, 1, '+inf'))),
|
||||
controversial: Promise.all(cids.map(async c => db.sortedSetCount(`cid:${c}:uid:${uid}:pids:votes`, '-inf', -1))),
|
||||
best: db.sortedSetsCardSum(cids.map(c => `cid:${c}:uid:${uid}:pids:votes`), 1, '+inf'),
|
||||
controversial: db.sortedSetsCardSum(cids.map(c => `cid:${c}:uid:${uid}:pids:votes`), '-inf', -1),
|
||||
topics: db.sortedSetsCardSum(cids.map(c => `cid:${c}:uid:${uid}:tids`)),
|
||||
};
|
||||
if (userData.isAdmin || userData.isSelf) {
|
||||
@@ -196,8 +196,6 @@ async function getCounts(userData, callerUID) {
|
||||
promises.blocks = user.getUserField(userData.uid, 'blocksCount');
|
||||
}
|
||||
const counts = await utils.promiseParallel(promises);
|
||||
counts.best = counts.best.reduce((sum, count) => sum + count, 0);
|
||||
counts.controversial = counts.controversial.reduce((sum, count) => sum + count, 0);
|
||||
counts.categoriesWatched = counts.categoriesWatched && counts.categoriesWatched.length;
|
||||
counts.groups = userData.groups.length;
|
||||
counts.following = userData.followingCount;
|
||||
|
||||
Reference in New Issue
Block a user