From 5c1217dc60d5d52a15c60dcc82d80094935cc4e4 Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 3 Apr 2022 16:38:56 +0800 Subject: [PATCH] core: fix record_download --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/record.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 46fadeafd..ea604b279 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.11.5", + "version": "3.11.6", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/handler/record.ts b/packages/hydrooj/src/handler/record.ts index c0d72de34..0a7ea9bc7 100644 --- a/packages/hydrooj/src/handler/record.ts +++ b/packages/hydrooj/src/handler/record.ts @@ -105,7 +105,6 @@ class RecordDetailHandler extends Handler { @param('rid', Types.ObjectID) @param('download', Types.Boolean) async get(domainId: string, rid: ObjectID, download = false) { - this.response.template = 'record_detail.html'; const rdoc = await record.get(domainId, rid); if (!rdoc) throw new RecordNotFoundError(rid); let tdoc; @@ -143,6 +142,7 @@ class RecordDetailHandler extends Handler { if (download) { const lang = langs[rdoc.lang]?.pretest || rdoc.lang; this.response.body = rdoc.code; + this.response.type = 'text/plain'; this.response.disposition = `attachment; filename="${langs[lang].code_file || `foo.${rdoc.lang}`}"`; return; } @@ -150,6 +150,7 @@ class RecordDetailHandler extends Handler { if (!problem.canViewBy(pdoc, this.user)) throw new PermissionError(PERM.PERM_VIEW_PROBLEM_HIDDEN); } + this.response.template = 'record_detail.html'; this.response.body = { udoc, rdoc, pdoc, tdoc, };