From 58ab74fcfcb508cb69d76349372368166e748d29 Mon Sep 17 00:00:00 2001 From: undefined Date: Mon, 1 Aug 2022 19:10:58 +0800 Subject: [PATCH] core: submissionPriority: count STATUS_JUDGING --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/model/record.ts | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index e4bb3792e..d1126c177 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.15.0", + "version": "3.15.1", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/model/record.ts b/packages/hydrooj/src/model/record.ts index b488f3faf..79c2a0da9 100644 --- a/packages/hydrooj/src/model/record.ts +++ b/packages/hydrooj/src/model/record.ts @@ -27,9 +27,11 @@ class RecordModel { ]; static async submissionPriority(uid: number, base: number = 0) { - const pending = await task.count({ uid, rejudged: { $ne: true } }); const timeRecent = await RecordModel.coll - .find({ _id: { $gte: Time.getObjectID(moment().add(-30, 'minutes')) }, uid }).project({ time: 1 }).toArray(); + .find({ _id: { $gte: Time.getObjectID(moment().add(-30, 'minutes')) }, uid }).project({ time: 1, status: 1 }).toArray(); + const pending = timeRecent.filter((i) => [ + STATUS.STATUS_FETCHED, STATUS.STATUS_COMPILING, STATUS.STATUS_JUDGING, + ].includes(i.status)).length; return base - ((pending * 1000 + 1) * (sum(timeRecent.map((i) => i.time || 0)) / 10000) + 1); }