diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index e5cf030c..f5a323d7 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "4.0.2", + "version": "4.0.3", "bin": "bin/hydrooj.js", "main": "src/plugin-api", "module": "src/plugin-api", diff --git a/packages/hydrooj/src/handler/judge.ts b/packages/hydrooj/src/handler/judge.ts index b7c13570..08c600e9 100644 --- a/packages/hydrooj/src/handler/judge.ts +++ b/packages/hydrooj/src/handler/judge.ts @@ -1,5 +1,6 @@ import assert from 'assert'; import yaml from 'js-yaml'; +import { omit } from 'lodash'; import { ObjectID } from 'mongodb'; import { JudgeResultBody, ProblemConfigFile, RecordDoc, TestCase, @@ -209,7 +210,7 @@ class JudgeConnectionHandler extends ConnectionHandler { } async message(msg) { - if (msg.key !== 'ping' && msg.key !== 'prio') logger[['status', 'next'].includes(msg.key) ? 'debug' : 'info']('%o', msg); + if (msg.key !== 'ping' && msg.key !== 'prio') logger[['status', 'next'].includes(msg.key) ? 'debug' : 'info']('%o', omit(msg, 'key')); if (msg.key === 'next') await next(msg); else if (msg.key === 'end') { if (!msg.nop) await end({ judger: this.user._id, ...msg }).catch((e) => logger.error(e)); diff --git a/packages/hydrooj/src/handler/record.ts b/packages/hydrooj/src/handler/record.ts index 4a03611d..23ddf5c0 100644 --- a/packages/hydrooj/src/handler/record.ts +++ b/packages/hydrooj/src/handler/record.ts @@ -1,4 +1,4 @@ -import { debounce, omit } from 'lodash'; +import { omit, throttle } from 'lodash'; import { FilterQuery, ObjectID } from 'mongodb'; import { ContestNotAttendedError, ContestNotFoundError, ForbiddenError, PermissionError, @@ -303,7 +303,7 @@ class RecordDetailConnectionHandler extends ConnectionHandler { cleanup: bus.Disposable = () => { }; rid: string = ''; disconnectTimeout: NodeJS.Timeout; - debounceSend: any; + throttleSend: any; @param('rid', Types.ObjectID) async prepare(domainId: string, rid: ObjectID) { @@ -334,7 +334,7 @@ class RecordDetailConnectionHandler extends ConnectionHandler { if (!problem.canViewBy(pdoc, this.user)) throw new PermissionError(PERM.PERM_VIEW_PROBLEM_HIDDEN); } - this.debounceSend = debounce(this.send, 1000); + this.throttleSend = throttle(this.send, 1000); this.rid = rid.toString(); this.cleanup = bus.on('record/change', this.onRecordChange.bind(this)); this.onRecordChange(rdoc); @@ -359,7 +359,7 @@ class RecordDetailConnectionHandler extends ConnectionHandler { if (![STATUS.STATUS_WAITING, STATUS.STATUS_JUDGING, STATUS.STATUS_COMPILING, STATUS.STATUS_FETCHED].includes(rdoc.status)) { this.sendUpdate(rdoc); this.disconnectTimeout = setTimeout(() => this.close(4001, 'Ended'), 30000); - } else this.debounceSend(rdoc); + } else this.throttleSend(rdoc); } } diff --git a/packages/utils/lib/utils.ts b/packages/utils/lib/utils.ts index 7ca8f1e9..6f4c1ced 100644 --- a/packages/utils/lib/utils.ts +++ b/packages/utils/lib/utils.ts @@ -9,11 +9,11 @@ import { ObjectID } from 'mongodb'; import Logger from 'reggol'; Logger.levels.base = process.env.DEV ? 3 : 2; -Logger.targets[0].showTime = 'MM/dd hh:mm:ss'; +Logger.targets[0].showTime = 'dd hh:mm:ss'; Logger.targets[0].label = { align: 'right', - width: 10, - margin: 2, + width: 9, + margin: 1, }; export { Logger };