From 32651a283a5ba6ce668572c460765f0dceff4bd3 Mon Sep 17 00:00:00 2001 From: undefined Date: Mon, 21 Mar 2022 08:38:25 +0800 Subject: [PATCH] core: import: auto pid --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/import.ts | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index ef44e77cf..a1ba561ae 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.10.2", + "version": "3.10.3", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/handler/import.ts b/packages/hydrooj/src/handler/import.ts index 428b394ec..73b4d3cf1 100644 --- a/packages/hydrooj/src/handler/import.ts +++ b/packages/hydrooj/src/handler/import.ts @@ -51,8 +51,11 @@ class ProblemImportHydroHandler extends Handler { if (!files.includes('problem.yaml')) continue; const content = fs.readFileSync(path.join(tmpdir, i, 'problem.yaml'), 'utf-8'); const pdoc: ProblemDoc = yaml.load(content) as any; - const current = await problem.get(domainId, pdoc.pid); - const pid = current ? undefined : pdoc.pid; + let pid = pdoc?.pid; + if (pid) { + const current = await problem.get(domainId, pid); + if (current) pid = undefined; + } const overrideContent = findOverrideContent(path.join(tmpdir, i)); const docId = await problem.add( domainId, pid, pdoc.title, overrideContent || pdoc.content,