From 76b001305d45f8c3c7873af792e0b82db4d2b638 Mon Sep 17 00:00:00 2001 From: undefined Date: Tue, 8 Sep 2020 23:14:26 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=B5=8B=E6=95=B4=E9=A2=98=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 10 ++++++++++ packages/hydrooj/TODO | 5 ++++- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/problem.ts | 11 +++++++++++ packages/hydrooj/src/loader.ts | 4 ++-- packages/hydrooj/src/model/setting.ts | 3 +++ 6 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..38d921e18 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +# EditorConfig is awesome: https://EditorConfig.org + +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true diff --git a/packages/hydrooj/TODO b/packages/hydrooj/TODO index 3ef3e74d9..63ed2be53 100644 --- a/packages/hydrooj/TODO +++ b/packages/hydrooj/TODO @@ -5,4 +5,7 @@ model.setting.ui.name pdoc.secretConfig? message.markAsRead 基于document的model难以lint,建议拆分 -检查多余的索引 \ No newline at end of file +检查多余的索引 ++hack +评测队列优先级系统 +讨论浏览数量显示 \ No newline at end of file diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 3550a18af..a3be6b68c 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.13.6", + "version": "2.13.7", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/handler/problem.ts b/packages/hydrooj/src/handler/problem.ts index eaa31fbbd..274355b40 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -217,6 +217,17 @@ class ProblemDetailHandler extends ProblemHandler { } this.response.redirect = this.url('problem_settings', { domainId: destDomainId, pid }); } + + @param('pid', Types.UnsignedInt) + async postRejudge(domainId: string, pid: number) { + this.checkPerm(PERM.PERM_REJUDGE_PROBLEM); + // TODO maybe async? + await record.getMulti(domainId, { pid }).forEach(async (doc) => { + await record.reset(domainId, doc._id, true); + await record.judge(domainId, doc._id); + }); + this.back(); + } } class ProblemSubmitHandler extends ProblemDetailHandler { diff --git a/packages/hydrooj/src/loader.ts b/packages/hydrooj/src/loader.ts index f1fa1a35c..69d06da30 100644 --- a/packages/hydrooj/src/loader.ts +++ b/packages/hydrooj/src/loader.ts @@ -207,13 +207,13 @@ export async function load() { const cnt = await entry({ entry: 'master' }); logger.info('Master started'); cluster.on('exit', (worker, code, signal) => { - logger.info(`Worker ${worker.process.pid} ${worker.id} exit: ${code} ${signal}`); + logger.warn(`Worker ${worker.process.pid} ${worker.id} exit: ${code} ${signal}`); }); cluster.on('disconnect', (worker) => { logger.info(`Worker ${worker.process.pid} ${worker.id} disconnected`); }); cluster.on('listening', (worker, address) => { - logger.info(`Worker ${worker.process.pid} ${worker.id} listening at `, address); + logger.success(`Worker ${worker.process.pid} ${worker.id} listening at `, address); }); cluster.on('online', (worker) => { logger.success(`Worker ${worker.process.pid} ${worker.id} is online`); diff --git a/packages/hydrooj/src/model/setting.ts b/packages/hydrooj/src/model/setting.ts index f0430c184..3421badfe 100644 --- a/packages/hydrooj/src/model/setting.ts +++ b/packages/hydrooj/src/model/setting.ts @@ -3,10 +3,12 @@ import moment from 'moment-timezone'; import { Dictionary } from 'lodash'; import * as builtin from './builtin'; import { Setting as _Setting } from '../interface'; +import { Logger } from '../logger'; import * as bus from '../service/bus'; type SettingDict = Dictionary<_Setting>; +const logger = new Logger('model/setting'); const countries = moment.tz.countries(); const tzs = new Set(); for (const country of countries) { @@ -141,6 +143,7 @@ SystemSetting( ); bus.once('app/started', async () => { + logger.debug('Ensuring settings'); for (const setting of SYSTEM_SETTINGS) { if (setting.value) { // @ts-ignore