From 625478ac3ae2b0be2087e68a9218c8250ae2a96a Mon Sep 17 00:00:00 2001 From: undefined Date: Mon, 17 May 2021 01:01:26 +0800 Subject: [PATCH] utils: add STATUS_SHORT_TEXTS --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/judge.ts | 1 + packages/hydrooj/src/model/problem.ts | 2 +- packages/utils/lib/status.ts | 14 ++++++++++++++ packages/utils/package.json | 2 +- 5 files changed, 18 insertions(+), 3 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index cb8bbf321..2f92b7af9 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.26.4", + "version": "2.26.5", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/handler/judge.ts b/packages/hydrooj/src/handler/judge.ts index 0e5115703..06a1b42d1 100644 --- a/packages/hydrooj/src/handler/judge.ts +++ b/packages/hydrooj/src/handler/judge.ts @@ -38,6 +38,7 @@ async function _postJudge(rdoc: RecordDoc) { await Promise.all([ record.update(rdoc.domainId, rdoc._id, { effective: true }), problem.edit(pdoc.domainId, pdoc.docId, { difficulty }), + problem.inc(pdoc.domainId, pdoc.docId, `stats.${builtin.STATUS_SHORT_TEXTS[rdoc.status]}`, 1), ]); await bus.serial('record/judge', rdoc, updated); } diff --git a/packages/hydrooj/src/model/problem.ts b/packages/hydrooj/src/model/problem.ts index 7d0795217..d066cb680 100644 --- a/packages/hydrooj/src/model/problem.ts +++ b/packages/hydrooj/src/model/problem.ts @@ -114,7 +114,7 @@ export class ProblemModel { return document.deleteSub(domainId, document.TYPE_PROBLEM, pid, key, values); } - static inc(domainId: string, _id: number, field: NumberKeys, n: number): Promise { + static inc(domainId: string, _id: number, field: NumberKeys | string, n: number): Promise { return document.inc(domainId, document.TYPE_PROBLEM, _id, field, n); } diff --git a/packages/utils/lib/status.ts b/packages/utils/lib/status.ts index f2d2abf9c..da6db8b71 100644 --- a/packages/utils/lib/status.ts +++ b/packages/utils/lib/status.ts @@ -36,6 +36,20 @@ export const STATUS_TEXTS = { [STATUS.STATUS_IGNORED]: 'Ignored', }; +export const STATUS_SHORT_TEXTS = { + [STATUS.STATUS_ACCEPTED]: 'AC', + [STATUS.STATUS_WRONG_ANSWER]: 'WA', + [STATUS.STATUS_TIME_LIMIT_EXCEEDED]: 'TLE', + [STATUS.STATUS_MEMORY_LIMIT_EXCEEDED]: 'MLE', + [STATUS.STATUS_OUTPUT_LIMIT_EXCEEDED]: 'OLE', + [STATUS.STATUS_RUNTIME_ERROR]: 'RE', + [STATUS.STATUS_COMPILE_ERROR]: 'CE', + [STATUS.STATUS_SYSTEM_ERROR]: 'SE', + [STATUS.STATUS_CANCELED]: 'IGN', + [STATUS.STATUS_HACKED]: 'HK', + [STATUS.STATUS_IGNORED]: 'IGN', +}; + export const STATUS_CODES = { 0: 'pending', 1: 'pass', diff --git a/packages/utils/package.json b/packages/utils/package.json index c2427bd67..239a8f944 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/utils", - "version": "1.0.15", + "version": "1.0.16", "description": "hydrooj utils", "main": "package.json", "repository": "https://github.com/hydro-dev/Hydro.git",