diff --git a/packages/hydrooj/src/handler/manage.ts b/packages/hydrooj/src/handler/manage.ts index 514527aa1..a1b94e194 100644 --- a/packages/hydrooj/src/handler/manage.ts +++ b/packages/hydrooj/src/handler/manage.ts @@ -98,9 +98,9 @@ class SystemScriptHandler extends SystemHandler { if (!global.Hydro.script[id]) throw new ValidationError('id'); const args = JSON.parse(raw); validate(global.Hydro.script[id].validate, args); - const rid = await record.add(domainId, -1, this.user._id, '-', id, false, { input: 'raw' }); + const rid = await record.add(domainId, -1, this.user._id, '-', id, false, 'raw'); const report = (data) => judge.next({ domainId, rid, ...data }); - report({ message: `Running script: ${id}`, status: STATUS.STATUS_JUDGING }); + report({ message: `Running script: ${id} `, status: STATUS.STATUS_JUDGING }); const start = new Date().getTime(); // Maybe async? global.Hydro.script[id].run(args, report) @@ -122,7 +122,7 @@ class SystemScriptHandler extends SystemHandler { domainId, rid, status: STATUS.STATUS_SYSTEM_ERROR, - message: `${err}\n${err.stack}`, + message: `${err} \n${err.stack} `, judger: 1, time, memory: 0, @@ -149,8 +149,8 @@ class SystemSettingHandler extends SystemHandler { for (const key in args) { if (typeof args[key] === 'object') { for (const subkey in args[key]) { - if (typeof set(`${key}.${subkey}`, args[key][subkey]) !== 'undefined') { - tasks.push(system.set(`${key}.${subkey}`, set(`${key}.${subkey}`, args[key][subkey]))); + if (typeof set(`${key}.${subkey} `, args[key][subkey]) !== 'undefined') { + tasks.push(system.set(`${key}.${subkey} `, set(`${key}.${subkey} `, args[key][subkey]))); } } } else if (typeof set(key, args[key]) !== 'undefined') { diff --git a/packages/hydrooj/src/handler/problem.ts b/packages/hydrooj/src/handler/problem.ts index fe85c553f..db629539c 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -260,16 +260,11 @@ export class ProblemPretestHandler extends ProblemDetailHandler { @param('lang', Types.String) @param('code', Types.String) @param('input', Types.String, true) - async post(domainId: string, lang: string, code: string, input: string = '') { + async post(domainId: string, lang: string, code: string, input = '') { this.limitRate('add_record', 3600, 100); const rid = await record.add( domainId, this.pdoc.docId, this.user._id, - lang, code, true, - { - input, - time: '1s', - memory: '512m', - }, + lang, code, true, input, ); const rdoc = await record.get(domainId, rid); bus.boardcast('record/change', rdoc); diff --git a/packages/hydrooj/src/interface.ts b/packages/hydrooj/src/interface.ts index c2e16204e..b3afc7df9 100644 --- a/packages/hydrooj/src/interface.ts +++ b/packages/hydrooj/src/interface.ts @@ -410,7 +410,7 @@ export interface ContestRule { export type ContestRules = Dictionary; export type ProblemImporter = (url: string, handler: any) => - Promise<[Pdoc, fs.ReadStream?]> | [Pdoc, fs.ReadStream?]; +Promise<[Pdoc, fs.ReadStream?]> | [Pdoc, fs.ReadStream?]; export interface Script { run: (args: any, report: Function) => any, diff --git a/packages/hydrooj/src/model/record.ts b/packages/hydrooj/src/model/record.ts index d7151e59e..2bc44df7c 100644 --- a/packages/hydrooj/src/model/record.ts +++ b/packages/hydrooj/src/model/record.ts @@ -72,9 +72,8 @@ export async function stat(domainId?: string) { }; } -export async function judge(domainId: string, rid: ObjectID, priority = 1) { +export async function judge(domainId: string, rid: ObjectID, priority = 1, config: ProblemConfig = {}) { const rdoc = await get(domainId, rid); - const config: RunConfig | ProblemConfig = rdoc.config || {}; let data = []; if (rdoc.pid) { const pdoc = await problem.get(domainId, rdoc.pid);