diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index c4f696af8..90a21aeec 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.28.33", + "version": "2.28.34", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/handler/domain.ts b/packages/hydrooj/src/handler/domain.ts index 298592968..046bc7af1 100644 --- a/packages/hydrooj/src/handler/domain.ts +++ b/packages/hydrooj/src/handler/domain.ts @@ -24,7 +24,7 @@ class DomainRankHandler extends Handler { @query('page', Types.PositiveInt, true) async get(domainId: string, page = 1) { const [dudocs, upcount, ucount] = await paginate( - domain.getMultiUserInDomain(domainId).sort({ rp: -1 }), + domain.getMultiUserInDomain(domainId, { uid: { $nin: [0, 1] } }).sort({ rp: -1 }), page, 100, ); diff --git a/packages/hydrooj/src/handler/home.ts b/packages/hydrooj/src/handler/home.ts index 3faffe12f..c5f698a0c 100644 --- a/packages/hydrooj/src/handler/home.ts +++ b/packages/hydrooj/src/handler/home.ts @@ -87,7 +87,7 @@ class HomeHandler extends Handler { async getRanking(domainId: string, limit: number = 50) { if (this.user.hasPerm(PERM.PERM_VIEW_RANKING)) { - const dudocs = await domain.getMultiUserInDomain(domainId) + const dudocs = await domain.getMultiUserInDomain(domainId, { uid: { $nin: [0, 1] } }) .sort({ rp: -1 }).project({ uid: 1 }).limit(limit).toArray(); const uids = dudocs.map((dudoc) => dudoc.uid); this.collectUser(uids); diff --git a/packages/hydrooj/src/script/rating.ts b/packages/hydrooj/src/script/rating.ts index a169257ea..0ab565b91 100644 --- a/packages/hydrooj/src/script/rating.ts +++ b/packages/hydrooj/src/script/rating.ts @@ -95,6 +95,7 @@ export async function calcLevel(domainId: string, report: Function) { let bulk = coll.initializeUnorderedBulkOp(); while (await ducur.hasNext()) { const dudoc = await ducur.next(); + if ([0, 1].includes(dudoc.uid)) continue; count++; if (!dudoc.rp) dudoc.rp = null; if (dudoc.rp !== last.rp) rank = count;