From 00ee96a191eaa70b72f3e18304fd7a157fe83a8e Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 3 Aug 2025 20:53:09 +0800 Subject: [PATCH] vjudge: only add language if mapping doesn't exist --- packages/vjudge/src/index.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/vjudge/src/index.ts b/packages/vjudge/src/index.ts index 905e4dd62..7156b4ec2 100644 --- a/packages/vjudge/src/index.ts +++ b/packages/vjudge/src/index.ts @@ -219,9 +219,15 @@ class VJudgeService extends Service { } async updateLangs(provider: string, mapping: Record>) { - const config = yaml.load(SystemModel.get('hydrooj.langs')); + const config = yaml.load(SystemModel.get('hydrooj.langs')) as Record>; const old = yaml.dump(config); + const existingMappings: Set = new Set(); + for (const key in config) { + const target = config[key]?.validAs?.[provider]; + if (target) existingMappings.add(target); + } for (const key in mapping) { + if (existingMappings.has(mapping[key].key)) continue; config[key] ||= { execute: '/bin/echo For remote judge only', hidden: true,