diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 0dbc537c4..201826656 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.39.10", + "version": "2.39.11", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/handler/contest.ts b/packages/hydrooj/src/handler/contest.ts index 70cf29681..5eab15ccb 100644 --- a/packages/hydrooj/src/handler/contest.ts +++ b/packages/hydrooj/src/handler/contest.ts @@ -381,7 +381,7 @@ export class ContestDetailProblemSubmitHandler extends ContestProblemHandler { throw new BadRequestError('Language not allowed.'); } await this.limitRate('add_record', 60, system.get('limit.submission')); - const rid = await record.add(domainId, pid, this.user._id, lang, code, true, pretest ? input : tid); + const rid = await record.add(domainId, pid, this.user._id, lang, code, true, pretest ? input : tid, !pretest); const rdoc = await record.get(domainId, rid); if (!rdoc) throw new RecordNotFoundError(domainId, rid); if (!pretest) { diff --git a/packages/hydrooj/src/model/record.ts b/packages/hydrooj/src/model/record.ts index df2969c9d..958c0c94d 100644 --- a/packages/hydrooj/src/model/record.ts +++ b/packages/hydrooj/src/model/record.ts @@ -97,7 +97,7 @@ class RecordModel { static async add( domainId: string, pid: ExternalProblemId | number, uid: number, - lang: string, code: string, addTask: boolean, contestOrConfig?: ObjectID | string, + lang: string, code: string, addTask: boolean, tidOrInput?: ObjectID | string, isContest?: boolean ) { let pdomain = domainId; if (typeof pid === 'string') { @@ -123,15 +123,11 @@ class RecordModel { judgeAt: null, rejudged: false, }; - let isContest = false; - if (typeof contestOrConfig === 'string') { + if (typeof tidOrInput === 'string') { // is Run - data.input = contestOrConfig; + data.input = tidOrInput; data.contest = new ObjectID('000000000000000000000000'); - } else { - data.contest = contestOrConfig; - isContest = true; - } + } else data.contest = tidOrInput; const res = await RecordModel.coll.insertOne(data); if (addTask) { const priority = await RecordModel.submissionPriority(uid, isContest ? 50 : 0);