diff --git a/.eslintrc.js b/.eslintrc.js index 7fbb5bd94..485cdfd98 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -20,6 +20,7 @@ module.exports = { 'guard-for-in': 'off', 'implicit-arrow-linebreak': 'off', 'import/extensions': 'off', + 'import/no-extraneous-dependencies': 'off', 'import/no-named-as-default-member': 'off', 'import/prefer-default-export': 'off', indent: ['warn', 4], diff --git a/packages/fps-importer/handler.ts b/packages/fps-importer/handler.ts index 89ca165a7..7eac3fbeb 100644 --- a/packages/fps-importer/handler.ts +++ b/packages/fps-importer/handler.ts @@ -4,7 +4,7 @@ import os from 'os'; import fs from 'fs-extra'; import AdmZip from 'adm-zip'; import xml2js from 'xml2js'; -import { ObjectID } from 'mongodb'; +import { ObjectID } from 'bson'; import { LocalProblemConfig } from 'hydrooj'; import { Route, Handler, param, Types, @@ -25,7 +25,7 @@ class FpsProblemImportHandler extends Handler { } else this.response.template = 'problem_import_fps.html'; } - @param('input', Types.String, true) + @param('input', Types.String) async post(domainId: string, input: string) { const result = await xml2js.parseStringPromise(input); const problem = global.Hydro.model.problem; @@ -80,10 +80,17 @@ class FpsProblemImportHandler extends Handler { memory: p.memory_limit[0]._ + p.memory_limit[0].$.unit, }; const pid = await problem.add(domainId, null, p.title.join(' '), content.join('\n'), this.user._id, p.source, []); - testdata.addFile('config.yaml', Buffer.from(`time:${config.time}\nmemory:${config.memory}`)); - for (let i = 0; i < p.test_input.length; i++) { - testdata.addFile(`${i + 1}.in`, Buffer.from(p.test_input[i])); - testdata.addFile(`${i + 1}.out`, Buffer.from(p.test_output[i])); + testdata.addFile('config.yaml', Buffer.from(`time: ${config.time}\nmemory: ${config.memory}`)); + if (p.test_output) { + for (let i = 0; i < p.test_input.length; i++) { + testdata.addFile(`${i + 1}.in`, Buffer.from(p.test_input[i])); + testdata.addFile(`${i + 1}.out`, Buffer.from(p.test_output[i])); + } + } else { + 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])); + } } const f = path.resolve(os.tmpdir(), 'hydro', `${Math.random()}.zip`); await new Promise((resolve, reject) => { diff --git a/packages/fps-importer/package.json b/packages/fps-importer/package.json index 9ca7fb0fc..16c1e5226 100644 --- a/packages/fps-importer/package.json +++ b/packages/fps-importer/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/fps-importer", - "version": "1.0.6", + "version": "1.0.7", "description": "Import FPS problems", "main": "package.json", "repository": "https://github.com/hydro-dev/Hydro.git", @@ -9,12 +9,14 @@ "dependencies": { "adm-zip": "^0.4.16", "fs-extra": "^9.0.1", - "hydrooj": "^2.12.22", - "mongodb": "^3.6.1", "xml2js": "^0.4.23" }, "devDependencies": { - "@types/xml2js": "^0.4.5" + "@types/xml2js": "^0.4.5", + "bson": "^4.1.0" + }, + "peerDependencies": { + "hydrooj": "^2.12.22" }, "scripts": { "build": "tsc", diff --git a/packages/fps-importer/template/problem_import_fps.html b/packages/fps-importer/template/problem_import_fps.html index e35667c05..7df08766f 100644 --- a/packages/fps-importer/template/problem_import_fps.html +++ b/packages/fps-importer/template/problem_import_fps.html @@ -21,11 +21,11 @@ -
+

{{ _('Upload file') }}: - - + +

diff --git a/packages/geoip/package.json b/packages/geoip/package.json index 6066dac56..dfd5d11e8 100644 --- a/packages/geoip/package.json +++ b/packages/geoip/package.json @@ -1,12 +1,14 @@ { "name": "@hydrooj/geoip", - "version": "1.1.10", + "version": "1.1.11", "main": "package.json", "repository": "git@github.com:hydro-dev/Hydro.git", "author": "undefined ", "license": "MIT", "dependencies": { - "hydrooj": "^2.12.0", "maxmind": "^4.1.3" + }, + "peerDependencies": { + "hydrooj": "^2.12.0" } } \ No newline at end of file diff --git a/packages/html2md/package.json b/packages/html2md/package.json index a78fecdc9..dc5489087 100644 --- a/packages/html2md/package.json +++ b/packages/html2md/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/html2md", - "version": "1.0.0", + "version": "1.0.1", "description": "turn html into markdown", "main": "lib.js", "typings": "lib.d.ts", @@ -8,7 +8,6 @@ "author": "undefined ", "license": "AGPL-3.0-only", "dependencies": { - "hydrooj": "^2.12.22", "jsdom": "^16.4.0", "turndown": "^6.0.0" }, @@ -16,6 +15,9 @@ "@types/jsdom": "^16.2.3", "@types/turndown": "^5.0.0" }, + "peerDependencies": { + "hydrooj": "^2.12.22" + }, "scripts": { "build": "tsc", "lint": "eslint . --ext ts --fix" diff --git a/packages/login-with-github/package.json b/packages/login-with-github/package.json index 6aeeb79cc..11ba4b0ec 100644 --- a/packages/login-with-github/package.json +++ b/packages/login-with-github/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/login-with-github", - "version": "0.0.5", + "version": "0.0.6", "main": "package.json", "repository": "git@github.com:hydro-dev/Hydro.git", "author": "undefined ", @@ -13,8 +13,10 @@ "@types/superagent": "^4.1.8", "@types/superagent-proxy": "^2.0.0" }, + "peerDependencies": { + "hydrooj": "^2.12.1" + }, "dependencies": { - "hydrooj": "^2.12.1", "superagent": "^6.0.0", "superagent-proxy": "^2.0.0" } diff --git a/packages/login-with-google/package.json b/packages/login-with-google/package.json index bf05200e8..d4b9a704b 100644 --- a/packages/login-with-google/package.json +++ b/packages/login-with-google/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/login-with-google", - "version": "0.0.5", + "version": "0.0.6", "main": "package.json", "repository": "git@github.com:hydro-dev/Hydro.git", "author": "undefined ", @@ -13,8 +13,10 @@ "@types/superagent": "^4.1.8", "@types/superagent-proxy": "^2.0.0" }, + "peerDependencies": { + "hydrooj": "^2.12.1" + }, "dependencies": { - "hydrooj": "^2.12.1", "superagent": "^6.0.0", "superagent-proxy": "^2.0.0" } diff --git a/packages/login-with-osu/package.json b/packages/login-with-osu/package.json index 1fea35676..5cde9798f 100644 --- a/packages/login-with-osu/package.json +++ b/packages/login-with-osu/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/login-with-osu", - "version": "0.0.5", + "version": "0.0.6", "main": "package.json", "repository": "git@github.com:hydro-dev/Hydro.git", "author": "undefined ", @@ -13,8 +13,10 @@ "@types/superagent": "^4.1.8", "@types/superagent-proxy": "^2.0.0" }, + "peerDependencies": { + "hydrooj": "^2.12.1" + }, "dependencies": { - "hydrooj": "^2.12.1", "superagent": "^6.0.0", "superagent-proxy": "^2.0.0" } diff --git a/packages/login-with-qq/package.json b/packages/login-with-qq/package.json index e7a3d8c48..9a51be6e4 100644 --- a/packages/login-with-qq/package.json +++ b/packages/login-with-qq/package.json @@ -9,8 +9,10 @@ "lint": "eslint lib.ts service.ts --fix", "build": "tsc" }, + "peerDependencies": { + "hydrooj": "^2.12.1" + }, "dependencies": { - "hydrooj": "^2.12.1", "ws": "^7.3.1" }, "devDependencies": { diff --git a/packages/migrate-vijos/package.json b/packages/migrate-vijos/package.json index 776305d19..4fa3c643c 100644 --- a/packages/migrate-vijos/package.json +++ b/packages/migrate-vijos/package.json @@ -13,8 +13,10 @@ "@types/js-yaml": "^3.12.5", "@types/mongodb": "^3.5.26" }, + "peerDependencies": { + "hydrooj": "^2.12.3" + }, "dependencies": { - "hydrooj": "^2.12.3", "js-yaml": "^3.14.0", "mongodb": "^3.6.0" }