添加上传fps文件的支持

This commit is contained in:
undefined committed 2020-09-02 23:17:57 +08:00
1 parent 327fec1fea
commit 7fc721676e
3 files changed
+14 -5

No files matched your search

+4 -4
View File
@@ -85,16 +85,16 @@ class FpsProblemImportHandler extends Handler {
testdata.addFile(`${i + 1}.in`, Buffer.from(p.test_input[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(`${i + 1}.out`, Buffer.from(p.test_output[i]));
} }
const file = path.resolve(os.tmpdir(), 'hydro', `${Math.random()}.zip`); const f = path.resolve(os.tmpdir(), 'hydro', `${Math.random()}.zip`);
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
testdata.writeZip(file, (err) => { testdata.writeZip(f, (err) => {
if (err) reject(err); if (err) reject(err);
resolve(); resolve();
}); });
}); });
await problem.setTestdata(domainId, pid, file); await problem.setTestdata(domainId, pid, f);
await problem.edit(domainId, pid, { html: true }); await problem.edit(domainId, pid, { html: true });
await fs.unlink(file); await fs.unlink(f);
} }
this.response.body = { count: result.fps.item.length }; this.response.body = { count: result.fps.item.length };
this.response.redirect = this.url('problem_main'); this.response.redirect = this.url('problem_main');
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@hydrooj/fps-importer", "name": "@hydrooj/fps-importer",
"version": "1.0.5", "version": "1.0.6",
"description": "Import FPS problems", "description": "Import FPS problems",
"main": "package.json", "main": "package.json",
"repository": "https://github.com/hydro-dev/Hydro.git", "repository": "https://github.com/hydro-dev/Hydro.git",
@@ -21,6 +21,15 @@
</button> </button>
</div></div> </div></div>
</form> </form>
<form method="post" enctype="multipart/form-data">
<input type="hidden" name="csrfToken" value="{{ handler.csrfToken }}">
<p>{{ _('Upload file') }}:
<input type="text" name="title" value="FPS_IMPORT">
<input type="text" name="redirect" value="{{ url('problem_import_fps') }}">
<input type="file" name="file">
<input type="submit" value="{{ _('Upload') }}" class="rounded primary button">
</p>
</form>
</div> </div>
</div> </div>
</div> </div>