diff --git a/packages/import-qduoj/index.ts b/packages/import-qduoj/index.ts index 98f13939..8ce6ffcf 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 10fe45ee..c31d5bf7 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",