diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index e88c64c7c..98f3a22c3 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,7 +1,7 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "2.5.3", + "version": "2.5.4", "main": "package.json", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/packages/hydrojudge/src/cases.ts b/packages/hydrojudge/src/cases.ts index c93cb6237..1e5828953 100644 --- a/packages/hydrojudge/src/cases.ts +++ b/packages/hydrojudge/src/cases.ts @@ -20,17 +20,17 @@ interface Re1 extends Re0 { const RE0: Re0[] = [ { - reg: /^([a-z+_\-A-Z]*)([0-9]+).in$/, + reg: /^([^\d]*)([0-9]+).in$/, output: (a) => `${a[1] + a[2]}.out`, id: (a) => parseInt(a[2], 10), }, { - reg: /^([a-z+_\-A-Z]*)([0-9]+).in$/, + reg: /^([^\d]*)([0-9]+).in$/, output: (a) => `${a[1] + a[2]}.ans`, id: (a) => parseInt(a[2], 10), }, { - reg: /^([a-z+_\-A-Z0-9]*)\.in([0-9]+)$/, + reg: /^([^\d]*)\.in([0-9]+)$/, output: (a) => `${a[1]}.ou${a[2]}`, id: (a) => parseInt(a[2], 10), }, @@ -40,17 +40,17 @@ const RE0: Re0[] = [ id: (a) => parseInt(a[2], 10), }, { - reg: /^input\/([a-z+_\-A-Z]*)([0-9]+).in$/, + reg: /^input\/([^\d]*)([0-9]+).in$/, output: (a) => `output/${a[1] + a[2]}.out`, id: (a) => parseInt(a[2], 10), }, { - reg: /^input\/([a-z+_\-A-Z]*)([0-9]+).in$/, + reg: /^input\/([^\d]*)([0-9]+).in$/, output: (a) => `output/${a[1] + a[2]}.ans`, id: (a) => parseInt(a[2], 10), }, { - reg: /^input\/([a-z+_\-A-Z0-9]*)\.in([0-9]+)$/, + reg: /^input\/([^\d]*)\.in([0-9]+)$/, output: (a) => `output/${a[1]}.ou${a[2]}`, id: (a) => parseInt(a[2], 10), }, @@ -228,9 +228,9 @@ export default async function readCases(folder: string, cfg: Record throw changeErrorType(e, FormatError); } if (!(result.outputs || result.subtasks.length)) { - const c = await readAutoCases(folder, args, cfg); - config.subtasks = c.subtasks; - config.count = c.count; + const c = await readAutoCases(folder, args, config); + result.subtasks = c.subtasks; + result.count = c.count; } isValidConfig(result); return result; diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index d662457d0..a5b464214 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.23.2", + "version": "2.23.3", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/handler/problem.ts b/packages/hydrooj/src/handler/problem.ts index e014a7cef..4b3aae837 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -186,6 +186,12 @@ export class ProblemDetailHandler extends ProblemHandler { ], }; this.extraTitleContent = this.pdoc.title; + // Get time and memory limit + try { + this.response.body.pdoc.config = await parseConfig(this.pdoc.config); + } catch (e) { + this.response.body.pdoc.config = `Cannot parse: ${e.message}`; + } } // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -194,12 +200,6 @@ export class ProblemDetailHandler extends ProblemHandler { // e.g. ![img](a.jpg) will navigate to ![img](./pid/file/a.jpg) this.response.body.pdoc.content = this.response.body.pdoc.content .replace(/\(file:\/\//g, `(./${this.pdoc.docId}/file/`); - // Get time and memory limit - try { - this.response.body.pdoc.config = await parseConfig(this.pdoc.config); - } catch (e) { - this.response.body.pdoc.config = `Cannot parse: ${e.message}`; - } if (this.pdoc.psdoc) { this.response.body.rdoc = await record.get(this.domainId, this.pdoc.psdoc.rid); }