fps: 支持导入题解

pull/23/head
undefined 4 years ago
parent addda1b789
commit 34a2259dd9

@ -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"
}
}

@ -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 };

@ -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": {

@ -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"

@ -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",

Loading…
Cancel
Save