From d0e9eb2ca4cc960fc39124d73bfad120d85c2aed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 5 Jun 2023 19:33:05 -0400 Subject: [PATCH] fix: dont add deleted users to users:online dont set their lastonline field --- src/user/online.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/user/online.js b/src/user/online.js index b7c6b9d45a..94da8f6bc3 100644 --- a/src/user/online.js +++ b/src/user/online.js @@ -10,9 +10,9 @@ module.exports = function (User) { if (!(parseInt(uid, 10) > 0)) { return; } - const userData = await db.getObjectFields(`user:${uid}`, ['status', 'lastonline']); + const userData = await db.getObjectFields(`user:${uid}`, ['userslug', 'status', 'lastonline']); const now = Date.now(); - if (userData.status === 'offline' || now - parseInt(userData.lastonline, 10) < 300000) { + if (!userData.userslug || userData.status === 'offline' || now - parseInt(userData.lastonline, 10) < 300000) { return; } await User.setUserField(uid, 'lastonline', now); @@ -22,9 +22,12 @@ module.exports = function (User) { if (!(parseInt(uid, 10) > 0)) { return; } + const [exists, userOnlineTime] = await Promise.all([ + User.exists(uid), + db.sortedSetScore('users:online', uid), + ]); const now = Date.now(); - const userOnlineTime = await db.sortedSetScore('users:online', uid); - if (now - parseInt(userOnlineTime, 10) < 300000) { + if (!exists || (now - parseInt(userOnlineTime, 10) < 300000)) { return; } await User.onUserOnline(uid, now);