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); }