From ede8a2625332b89444c52860f936846dfa5caef6 Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 11 Feb 2022 00:13:49 +0800 Subject: [PATCH] judge: support HYDRO_TESTCASE --- packages/hydrojudge/package.json | 2 +- packages/hydrojudge/src/judge/default.ts | 2 +- packages/hydrojudge/src/judge/interactive.ts | 2 +- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/model/discussion.ts | 3 ++- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index 68b05d851..064b7d30a 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,7 +1,7 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "2.13.3", + "version": "2.13.4", "main": "package.json", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/packages/hydrojudge/src/judge/default.ts b/packages/hydrojudge/src/judge/default.ts index 57837be4f..f6ccb41f1 100644 --- a/packages/hydrojudge/src/judge/default.ts +++ b/packages/hydrojudge/src/judge/default.ts @@ -75,7 +75,7 @@ function judgeCase(c: Case, sid: string) { checker_type: ctx.config.checker_type, score: ctxSubtask.subtask.score, detail: ctx.config.detail ?? true, - env: ctx.env, + env: { ...ctx.env, HYDRO_TESTCASE: c.id.toString() }, }); } } else if (status === STATUS.STATUS_RUNTIME_ERROR && code) { diff --git a/packages/hydrojudge/src/judge/interactive.ts b/packages/hydrojudge/src/judge/interactive.ts index 7b128f7ec..81f63ecc8 100644 --- a/packages/hydrojudge/src/judge/interactive.ts +++ b/packages/hydrojudge/src/judge/interactive.ts @@ -35,7 +35,7 @@ function judgeCase(c: Case) { time: ctxSubtask.subtask.time * 2 * ctx.executeInteractor.time, memory: ctxSubtask.subtask.memory * 2, copyOut: ['/w/tout?'], - env: ctx.env, + env: { ...ctx.env, HYDRO_TESTCASE: c.id.toString() }, }, ); // TODO handle tout (maybe pass to checker?) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index db49d51ee..0f47a2cbf 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.4.19", + "version": "3.4.20", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/model/discussion.ts b/packages/hydrooj/src/model/discussion.ts index 458d5ee6f..b616da22c 100644 --- a/packages/hydrooj/src/model/discussion.ts +++ b/packages/hydrooj/src/model/discussion.ts @@ -256,8 +256,9 @@ export function flushNodes(domainId: string) { export async function getVnode(domainId: string, type: number, id: string, uid?: number) { if (type === document.TYPE_PROBLEM) { - const pdoc = await problem.get(domainId, Number.isSafeInteger(+id) ? +id : id); + let pdoc = await problem.get(domainId, Number.isSafeInteger(+id) ? +id : id, problem.PROJECTION_LIST); if (!pdoc) throw new DiscussionNodeNotFoundError(id); + if (pdoc.hidden) pdoc = problem.default; return { ...pdoc, type, id: pdoc.docId }; } if ([document.TYPE_CONTEST, document.TYPE_TRAINING, document.TYPE_HOMEWORK].includes(type as any)) {