From a988445597ecc135aadc932784724d2ecf38dfed Mon Sep 17 00:00:00 2001 From: undefined Date: Tue, 26 Oct 2021 15:00:07 +0800 Subject: [PATCH] core: contest: detail fix --- packages/hydrojudge/src/sandbox.ts | 1 - packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/training.ts | 1 - packages/hydrooj/src/model/discussion.ts | 1 - packages/hydrooj/src/upgrade.ts | 21 ++++++--------------- packages/hydrooj/src/utils.ts | 1 - packages/ui-default/.eslintrc.js | 1 - packages/ui-default/handler.ts | 1 - packages/ui-default/hydro.ts | 3 --- packages/utils/lib/utils.ts | 9 +++------ 10 files changed, 10 insertions(+), 31 deletions(-) diff --git a/packages/hydrojudge/src/sandbox.ts b/packages/hydrojudge/src/sandbox.ts index 69e851c07..686a97d86 100644 --- a/packages/hydrojudge/src/sandbox.ts +++ b/packages/hydrojudge/src/sandbox.ts @@ -123,7 +123,6 @@ export async function del(fileId: string) { export async function run(execute, params?) { let result; - // eslint-disable-next-line no-return-await if (typeof execute === 'object') return await runMultiple(execute); try { if (!supportOptional) { diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 47bb87f67..3112b6c59 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.1.5", + "version": "3.1.6", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/handler/training.ts b/packages/hydrooj/src/handler/training.ts index e1ea7ac48..6aa8caebc 100644 --- a/packages/hydrooj/src/handler/training.ts +++ b/packages/hydrooj/src/handler/training.ts @@ -38,7 +38,6 @@ async function _parseDagJson(domainId: string, _dag: string): Promise { - // @ts-ignore return document.getSub(domainId, document.TYPE_DISCUSSION_REPLY, drid, 'reply', drrid); } diff --git a/packages/hydrooj/src/upgrade.ts b/packages/hydrooj/src/upgrade.ts index abb4d5aee..4fbdf1037 100644 --- a/packages/hydrooj/src/upgrade.ts +++ b/packages/hydrooj/src/upgrade.ts @@ -601,27 +601,18 @@ const scripts: UpgradeScript[] = [ doc.domainId, document.TYPE_CONTEST, { docId: doc.docId }, ).toArray(); for (const ctdoc of ctdocs) { - const cmark = ctdoc.journal?.filter((i) => isStringPid(i.pid)).length - || ctdoc.detail?.filter((i) => isStringPid(i.pid)).length; - if (!cmark) continue; - const $set: any = {}; - if (ctdoc.journal?.filter((i) => isStringPid(i.pid)).length) { - $set.journal = await Promise.all(ctdoc.journal.map(async (i) => { + if (!ctdoc.journal?.filter((i) => isStringPid(i.pid)).length) continue; + const $set = { + journal: await Promise.all(ctdoc.journal.map(async (i) => { const pdoc = await getProblem(doc.domainId, i.pid); if (pdoc) i.pid = pdoc.docId; return i; - })); - } - if (ctdoc.detail?.filter((i) => isStringPid(i.pid)).length) { - $set.detail = await Promise.all(ctdoc.detail.map(async (i) => { - const pdoc = await getProblem(doc.domainId, i.pid); - if (pdoc) i.pid = pdoc.docId; - return i; - })); - } + })), + }; await document.setStatus(doc.domainId, doc.docType, doc.docId, ctdoc.uid, $set); } await contest.edit(doc.domainId, doc.docId, { pids }); + await contest.recalcStatus(doc.domainId, doc.docId); } } await db.collection('record').updateMany({}, { $unset: { pdomain: '' } }); diff --git a/packages/hydrooj/src/utils.ts b/packages/hydrooj/src/utils.ts index ac78c1c15..21a9f17f8 100644 --- a/packages/hydrooj/src/utils.ts +++ b/packages/hydrooj/src/utils.ts @@ -8,7 +8,6 @@ export function buildProjection(fields: string[]): Record { export const log2 = (val: bigint | number) => { if (typeof val === 'bigint') { - // @ts-ignore for (let i = 0n; ; i++) if (!(val >> i)) return +i.toString() - 1; } else { for (let i = 0; ; i++) if (!(val >> i)) return i - 1; diff --git a/packages/ui-default/.eslintrc.js b/packages/ui-default/.eslintrc.js index a79c4a2c9..06327cdaf 100644 --- a/packages/ui-default/.eslintrc.js +++ b/packages/ui-default/.eslintrc.js @@ -1,4 +1,3 @@ -// eslint-disable-next-line import/no-extraneous-dependencies const path = require('path'); module.exports = { diff --git a/packages/ui-default/handler.ts b/packages/ui-default/handler.ts index 1aad41351..613b8db1d 100644 --- a/packages/ui-default/handler.ts +++ b/packages/ui-default/handler.ts @@ -91,7 +91,6 @@ class WikiHelpHandler extends Handler { async get({ domainId }) { const LANGS = setting.langs; const languages = {}; - // eslint-disable-next-line guard-for-in for (const key in LANGS) { if (LANGS[key].domain && !LANGS[key].domain.includes(domainId)) continue; languages[`${LANGS[key].display}(${key})`] = LANGS[key].compile || LANGS[key].execute; diff --git a/packages/ui-default/hydro.ts b/packages/ui-default/hydro.ts index 722fcfc21..dd2b2a30f 100644 --- a/packages/ui-default/hydro.ts +++ b/packages/ui-default/hydro.ts @@ -47,7 +47,6 @@ async function load() { ...buildSequence(includedPages, 'after'), ...buildSequence(currentPage, 'after'), ]; - // eslint-disable-next-line no-restricted-syntax for (const { page, func, type } of loadSequence) { const ts = new Date().getTime(); try { @@ -69,13 +68,11 @@ async function load() { $element: $(section), })); console.log('done! %d ms', new Date().getTime() - start.getTime()); - // eslint-disable-next-line no-restricted-syntax for (const { $element, shouldDelay } of sections) { $element.addClass('visible'); if (shouldDelay) await delay(50); } await delay(500); - // eslint-disable-next-line no-restricted-syntax for (const { $element } of sections) $element.trigger('vjLayout'); $(document).trigger('vjPageFullyInitialized'); } diff --git a/packages/utils/lib/utils.ts b/packages/utils/lib/utils.ts index 1fc1d6a7a..319d448f3 100644 --- a/packages/utils/lib/utils.ts +++ b/packages/utils/lib/utils.ts @@ -130,12 +130,9 @@ Set.union = function Union(setA: Set, setB: Set) { return union; }; -Set.intersection = function Intersection(setA: Set, setB: Set): Set { - const intersection = new Set(); - for (const elem of setB) { - if (setA.has(elem)) intersection.add(elem); - } - // @ts-ignore +Set.intersection = function Intersection(setA: Set, setB: Set) { + const intersection = new Set(); + for (const elem of setB) if (setA.has(elem)) intersection.add(elem); return intersection; };