From f8f4038547fdc850b964e6230bbf7349a72f34e0 Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 9 Jul 2023 22:03:12 +0800 Subject: [PATCH] import-qduoj: add pid validity check --- packages/import-qduoj/index.ts | 8 ++++++-- packages/import-qduoj/package.json | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/import-qduoj/index.ts b/packages/import-qduoj/index.ts index 98f139394..8ce6ffcf1 100644 --- a/packages/import-qduoj/index.ts +++ b/packages/import-qduoj/index.ts @@ -77,8 +77,12 @@ class ImportQduojHandler extends Handler { }); } if (+pdoc.display_id) pdoc.display_id = `P${pdoc.display_id}`; - const n = await ProblemModel.get(domainId, pdoc.display_id); - if (n) pdoc.display_id = null; + const isValidPid = async (id: string) => { + if (!(/^[A-Za-z]+[0-9A-Za-z]*$/.test(id))) return false; + if (await ProblemModel.get(domainId, id)) return false; + return true; + }; + if (!await isValidPid(pdoc.display_id)) pdoc.display_id = null; const pid = await ProblemModel.add( domainId, pdoc.display_id, pdoc.title, buildContent(content, 'html'), this.user._id, pdoc.tags || [], diff --git a/packages/import-qduoj/package.json b/packages/import-qduoj/package.json index 10fe45ee6..c31d5bf7a 100644 --- a/packages/import-qduoj/package.json +++ b/packages/import-qduoj/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/import-qduoj", - "version": "1.5.3", + "version": "1.5.4", "description": "Import QDUOJ problem export", "main": "index.ts", "repository": "https://github.com/hydro-dev/Hydro.git",