From 34a2259dd9b0fa68b2140384f36452fff0ceded0 Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 20 Nov 2020 13:43:26 +0800 Subject: [PATCH] =?UTF-8?q?fps:=20=E6=94=AF=E6=8C=81=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E9=A2=98=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 4 ++-- packages/fps-importer/handler.ts | 11 ++++++++++- packages/fps-importer/package.json | 4 ++-- packages/hydrojudge/package.json | 2 +- packages/hydrooj/package.json | 6 +++--- 5 files changed, 18 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 319ceddc9..cafc987ef 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@shelf/jest-mongodb": "^1.2.3", "@types/cross-spawn": "^6.0.2", "@types/jest": "^26.0.14", - "@types/node": "^14.14.7", + "@types/node": "^14.14.8", "@types/semver": "^7.3.4", "@typescript-eslint/eslint-plugin": "^3.9.1", "@typescript-eslint/parser": "^3.9.1", @@ -39,6 +39,6 @@ }, "dependencies": { "fs-extra": "^9.0.1", - "yargs": "^16.0.3" + "yargs": "^16.1.1" } } \ No newline at end of file diff --git a/packages/fps-importer/handler.ts b/packages/fps-importer/handler.ts index b853b5c30..f0b845b45 100644 --- a/packages/fps-importer/handler.ts +++ b/packages/fps-importer/handler.ts @@ -14,6 +14,7 @@ import { import { streamToBuffer } from 'hydrooj/dist/utils'; import { ProblemAdd } from 'hydrooj/dist/lib/ui'; import * as file from 'hydrooj/dist/model/file'; +import * as solution from 'hydrooj/dist/model/solution'; import { PERM } from 'hydrooj/dist/model/builtin'; const processing = {}; @@ -116,7 +117,7 @@ class FpsProblemImportHandler extends Handler { testdata.addFile(`${i + 1}.in`, Buffer.from(p.test_input[i])); testdata.addFile(`${i + 1}.out`, Buffer.from(p.test_output[i])); } - } else { + } else if (p.test_input) { for (let i = 0; i < p.test_input.length / 2; i++) { testdata.addFile(`${i + 1}.in`, Buffer.from(p.test_input[2 * i])); testdata.addFile(`${i + 1}.out`, Buffer.from(p.test_input[2 * i + 1])); @@ -131,6 +132,14 @@ class FpsProblemImportHandler extends Handler { }); await problem.setTestdata(domainId, pid, f); await problem.edit(domainId, pid, { html: true }); + if (p.solution) { + let s = ''; + for (const sol of p.solution) { + s += `**${sol.$.language}** : \n\`\`\`\n${sol._}\n\`\`\`\n`; + } + console.log(domainId, pid, this.user._id, s); + await solution.add(domainId, pid, this.user._id, s); + } await fs.unlink(f); } this.response.body = { count: result.fps.item.length }; diff --git a/packages/fps-importer/package.json b/packages/fps-importer/package.json index 736dc61f4..32f64bb1a 100644 --- a/packages/fps-importer/package.json +++ b/packages/fps-importer/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/fps-importer", - "version": "1.1.1", + "version": "1.1.2", "description": "Import FPS problems", "main": "package.json", "repository": "https://github.com/hydro-dev/Hydro.git", @@ -13,7 +13,7 @@ "xml2js": "^0.4.23" }, "devDependencies": { - "@types/xml2js": "^0.4.5", + "@types/xml2js": "^0.4.7", "bson": "^4.1.0" }, "peerDependencies": { diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index 7b0f09753..181c92023 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -16,7 +16,7 @@ "shell-quote": "^1.7.2", "supports-color": "^7.2.0", "systeminformation": "^4.30.1", - "yargs": "^16.1.0" + "yargs": "^16.1.1" }, "peerDependencies": { "hydrooj": "^2.13.3" diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 4c7dfeeb3..cd42bfc2d 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -23,7 +23,7 @@ "koa-static-cache": "^5.1.3", "lodash": "^4.17.20", "lru-cache": "^6.0.0", - "moment-timezone": "^0.5.31", + "moment-timezone": "^0.5.32", "mongodb": "^3.6.3", "nodemailer": "^6.4.16", "ps-list": "^7.2.0", @@ -32,7 +32,7 @@ "superagent": "^6.1.0", "supports-color": "^7.2.0", "systeminformation": "^4.30.1", - "yargs": "^16.0.3" + "yargs": "^16.1.1" }, "devDependencies": { "@types/adm-zip": "^0.4.33", @@ -49,7 +49,7 @@ "@types/sockjs": "^0.3.32", "@types/superagent": "^4.1.8", "@types/supports-color": "^7.2.0", - "@types/yargs": "^15.0.7" + "@types/yargs": "^15.0.10" }, "scripts": { "build": "tsc",