diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index 2e336d3ca..41db55f88 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,7 +1,7 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "3.3.7", + "version": "3.3.8", "main": "./src/index.ts", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/packages/hydrojudge/src/hosts/vj4.ts b/packages/hydrojudge/src/hosts/vj4.ts index a428ce9da..5ed0a6453 100644 --- a/packages/hydrojudge/src/hosts/vj4.ts +++ b/packages/hydrojudge/src/hosts/vj4.ts @@ -255,23 +255,25 @@ export default class VJ4 implements Session { if (iniFile) { const file = await fs.readFile(`${folder}/${iniFile}`, 'utf-8'); await fs.writeFile(`${folder}/config.ini`, file.toLowerCase()); - for (const i of files) { - if (i.toLowerCase() === 'input') await fs.rename(`${folder}/${i}`, `${folder}/input`); - else if (i.toLowerCase() === 'output') await fs.rename(`${folder}/${i}`, `${folder}/output`); - } - files = await fs.readdir(`${folder}/input`); - for (const i of files) { - if (fs.statSync(`${folder}/input/${i}`).size > 64 * 1024 * 1024) { - await fs.rename(`${folder}/input/${i}`, `${folder}/${i.toLowerCase()}`); - } else { - const buffer = await fs.readFile(`${folder}/input/${i}`); - const data = buffer.toString().replace(/\r/g, ''); - await fs.unlink(`${folder}/input/${i}`); - await fs.writeFile(`${folder}/${i.toLowerCase()}`, data); + const input = files.find((i) => i.toLowerCase() === 'input'); + const output = files.find((i) => i.toLowerCase() === 'output'); + if (input) { + for (const i of await fs.readdir(`${folder}/${input}`)) { + if (fs.statSync(`${folder}/${input}/${i}`).size > 64 * 1024 * 1024) { + await fs.rename(`${folder}/${input}/${i}`, `${folder}/${i.toLowerCase()}`); + } else { + const buffer = await fs.readFile(`${folder}/${input}/${i}`); + const data = buffer.toString().replace(/\r/g, ''); + await fs.unlink(`${folder}/${input}/${i}`); + await fs.writeFile(`${folder}/${i.toLowerCase()}`, data); + } + } + } + if (output) { + for (const i of await fs.readdir(`${folder}/${output}`)) { + await fs.rename(`${folder}/${output}/${i}`, `${folder}/${i.toLowerCase()}`); } } - files = await fs.readdir(`${folder}/output`); - for (const i of files) await fs.rename(`${folder}/output/${i.toLowerCase()}`, `${folder}/${i}`); } }