From 96934ce984a5b9dc89f21cf6c3daaad4f3696f0d Mon Sep 17 00:00:00 2001 From: undefined Date: Thu, 4 Jan 2024 17:59:48 +0800 Subject: [PATCH] core: ranking: ignore rp=0 --- packages/hydrooj/src/handler/domain.ts | 7 ++----- packages/hydrooj/src/handler/home.ts | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/hydrooj/src/handler/domain.ts b/packages/hydrooj/src/handler/domain.ts index 48d4e255f..b0738d39f 100644 --- a/packages/hydrooj/src/handler/domain.ts +++ b/packages/hydrooj/src/handler/domain.ts @@ -63,11 +63,8 @@ class DomainRankHandler extends Handler { page, 100, ); - let udocs = []; - for (const dudoc of dudocs) { - udocs.push(user.getById(domainId, dudoc.uid)); - } - udocs = await Promise.all(udocs); + const udict = await user.getList(domainId, dudocs.map((dudoc) => dudoc.uid)); + const udocs = Object.values(udict); this.response.template = 'ranking.html'; this.response.body = { udocs, upcount, ucount, page, diff --git a/packages/hydrooj/src/handler/home.ts b/packages/hydrooj/src/handler/home.ts index 2ffbf471b..63258c3bd 100644 --- a/packages/hydrooj/src/handler/home.ts +++ b/packages/hydrooj/src/handler/home.ts @@ -110,7 +110,7 @@ export class HomeHandler extends Handler { async getRanking(domainId: string, limit = 50) { if (!this.user.hasPerm(PERM.PERM_VIEW_RANKING)) return []; - const dudocs = await domain.getMultiUserInDomain(domainId, { uid: { $gt: 1 } }) + const dudocs = await domain.getMultiUserInDomain(domainId, { uid: { $gt: 1 }, rp: { $gt: 0 } }) .sort({ rp: -1 }).project({ uid: 1 }).limit(limit).toArray(); const uids = dudocs.map((dudoc) => dudoc.uid); this.collectUser(uids);