From efde5b339f6ac1e93618188a307d48ed8d2e4f8a Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 12 Nov 2023 23:51:00 +0800 Subject: [PATCH] core&ui&judge: bug fixes and improvements --- packages/hydrojudge/src/testlib.ts | 3 +-- packages/hydrooj/src/handler/contest.ts | 1 + packages/ui-default/api.ts | 1 + packages/ui-default/backendlib/template.js | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/hydrojudge/src/testlib.ts b/packages/hydrojudge/src/testlib.ts index 07a90bede..16ecf89ed 100644 --- a/packages/hydrojudge/src/testlib.ts +++ b/packages/hydrojudge/src/testlib.ts @@ -29,8 +29,7 @@ export function parse(output: string, fullscore: number) { if (p === 1) { status = STATUS.STATUS_ACCEPTED; score = fullscore; - const base = output.replace('points ', '') || ''; - message = base.substring(base.indexOf(' '), 1024); + message = output.replace(/^points [\d.]+ /, '') || ''; } else score = Math.floor(fullscore * p); } while (operation.test(message)) { diff --git a/packages/hydrooj/src/handler/contest.ts b/packages/hydrooj/src/handler/contest.ts index fcd42bb23..43b1aa044 100644 --- a/packages/hydrooj/src/handler/contest.ts +++ b/packages/hydrooj/src/handler/contest.ts @@ -245,6 +245,7 @@ export class ContestDetailHandler extends Handler { @param('tid', Types.ObjectId) @param('code', Types.String, true) async postAttend(domainId: string, tid: ObjectId, code = '') { + this.checkPerm(PERM.PERM_ATTEND_CONTEST); if (contest.isDone(this.tdoc)) throw new ContestNotLiveError(tid); if (this.tdoc._code && code !== this.tdoc._code) throw new InvalidTokenError('Contest Invitation', code); await contest.attend(domainId, tid, this.user._id); diff --git a/packages/ui-default/api.ts b/packages/ui-default/api.ts index 225c78617..f07b133ca 100644 --- a/packages/ui-default/api.ts +++ b/packages/ui-default/api.ts @@ -10,6 +10,7 @@ export { default as Socket } from './components/socket/index'; export { default as uploadFiles } from './components/upload'; export * as redux from 'react-redux'; export * from './components/zipDownloader'; +export * from '@hydrooj/utils/lib/common'; export { default as download } from './components/zipDownloader'; export { default as $ } from 'jquery'; export { default as _ } from 'lodash'; diff --git a/packages/ui-default/backendlib/template.js b/packages/ui-default/backendlib/template.js index 38f870c63..0bd368fca 100644 --- a/packages/ui-default/backendlib/template.js +++ b/packages/ui-default/backendlib/template.js @@ -137,6 +137,7 @@ env.addGlobal('eval', eval); env.addGlobal('Date', Date); env.addGlobal('Object', Object); env.addGlobal('String', String); +env.addGlobal('Array', Array); env.addGlobal('Math', Math); env.addGlobal('process', process); env.addGlobal('global', global);