From b062aa84bf8276d227eb7155e3589ca430771ba9 Mon Sep 17 00:00:00 2001 From: undefined Date: Tue, 25 May 2021 13:58:01 +0800 Subject: [PATCH] =?UTF-8?q?core:=20=E5=AF=BC=E5=87=BA=E6=AF=94=E8=B5=9B?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/contest.ts | 10 ++++------ packages/hydrooj/src/handler/homework.ts | 6 +++--- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index b3c1efff0..dba98b543 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.27.1", + "version": "2.27.2", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/handler/contest.ts b/packages/hydrooj/src/handler/contest.ts index adb6a3c78..1a10a6e80 100644 --- a/packages/hydrooj/src/handler/contest.ts +++ b/packages/hydrooj/src/handler/contest.ts @@ -372,15 +372,13 @@ class ContestCodeHandler extends Handler { const [tdoc, tsdocs] = await contest.getAndListStatus(domainId, tid); const rnames = {}; for (const tsdoc of tsdocs) { - for (const pdetail of tsdoc.detail || []) { - rnames[pdetail.rid] = `U${tsdoc.uid}_P${pdetail.pid}_R${pdetail.rid}`; + for (const pid in tsdoc.detail || {}) { + rnames[tsdoc.detail[pid].rid] = `U${tsdoc.uid}_P${pid}_R${tsdoc.detail[pid].rid}`; } } const zip = new AdmZip(); const rdocs = await record.getMulti(domainId, { - _id: { - $in: Array.from(Object.keys(rnames)).map((id) => new ObjectID(id)), - }, + _id: { $in: Array.from(Object.keys(rnames)).map((id) => new ObjectID(id)) }, }).toArray(); for (const rdoc of rdocs) { zip.addFile(`${rnames[rdoc._id.toHexString()]}.${rdoc.lang}`, Buffer.from(rdoc.code)); @@ -393,7 +391,7 @@ class ContestCreateHandler extends Handler { async get() { this.response.template = 'contest_edit.html'; const rules = {}; - for (const i in contest.RULES) { rules[i] = contest.RULES[i].TEXT; } + for (const i in contest.RULES) rules[i] = contest.RULES[i].TEXT; const now = new Date(); let ts = now.getTime(); ts = ts - (ts % (15 * 60 * 1000)) + 15 * 60 * 1000; diff --git a/packages/hydrooj/src/handler/homework.ts b/packages/hydrooj/src/handler/homework.ts index 0f6798d18..2ffb0923b 100644 --- a/packages/hydrooj/src/handler/homework.ts +++ b/packages/hydrooj/src/handler/homework.ts @@ -405,8 +405,8 @@ class HomeworkCodeHandler extends Handler { ); const rnames = {}; for (const tsdoc of tsdocs) { - for (const pdetail of tsdoc.detail || []) { - rnames[pdetail.rid] = `U${tsdoc.uid}_P${pdetail.pid}_R${pdetail.rid}`; + for (const pid in tsdoc.detail || {}) { + rnames[tsdoc.detail[pid].rid] = `U${tsdoc.uid}_P${pid}_R${tsdoc.detail[pid].rid}`; } } const zip = new AdmZip(); @@ -418,7 +418,7 @@ class HomeworkCodeHandler extends Handler { for (const rdoc of rdocs) { zip.addFile(`${rnames[rdoc._id.toHexString()]}.${rdoc.lang}`, Buffer.from(rdoc.code)); } - await this.binary(zip.toBuffer(), `${tdoc.title}.zip`); + this.binary(zip.toBuffer(), `${tdoc.title}.zip`); } }