From eac9cd03ca27c0b0f31494a27752f4bd7c4938bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 2 Mar 2022 18:29:17 -0500 Subject: [PATCH] feat: closes #10324, show recently online users as well --- src/controllers/users.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/controllers/users.js b/src/controllers/users.js index 818cb86123..ee57bf1afe 100644 --- a/src/controllers/users.js +++ b/src/controllers/users.js @@ -148,14 +148,22 @@ usersController.getUsers = async function (set, uid, query) { usersController.getUsersAndCount = async function (set, uid, start, stop) { async function getCount() { if (set === 'users:online') { - return await db.sortedSetCount('users:online', Date.now() - (meta.config.onlineCutoff * 60000), '+inf'); + return await db.sortedSetCount('users:online', Date.now() - 86400000, '+inf'); } else if (set === 'users:banned' || set === 'users:flags') { return await db.sortedSetCard(set); } return await db.getObjectField('global', 'userCount'); } + async function getUsers() { + if (set === 'users:online') { + const count = parseInt(stop, 10) === -1 ? stop : stop - start + 1; + const uids = await db.getSortedSetRevRangeByScore(set, start, count, '+inf', Date.now() - 86400000); + return await user.getUsers(uids, uid); + } + return await user.getUsersFromSet(set, uid, start, stop); + } const [usersData, count] = await Promise.all([ - user.getUsersFromSet(set, uid, start, stop), + getUsers(), getCount(), ]); return {