From ba187a168a004975b91c1e9ac85192b5551a27f0 Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 9 Sep 2022 10:32:45 +0800 Subject: [PATCH] vjudge: support enableOn option --- packages/vjudge/package.json | 2 +- packages/vjudge/src/interface.ts | 1 + packages/vjudge/src/model.ts | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/vjudge/package.json b/packages/vjudge/package.json index c788178d..fad9e191 100644 --- a/packages/vjudge/package.json +++ b/packages/vjudge/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/vjudge", - "version": "1.5.0-next.12", + "version": "1.5.0-next.13", "description": "Submit problems to remote oj", "main": "package.json", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/packages/vjudge/src/interface.ts b/packages/vjudge/src/interface.ts index 4cf5f196..46cc66c4 100644 --- a/packages/vjudge/src/interface.ts +++ b/packages/vjudge/src/interface.ts @@ -11,6 +11,7 @@ export interface RemoteAccount { query?: string; frozen?: string; problemLists?: string[]; + enableOn?: string[]; } declare module 'hydrooj/src/interface' { interface Collections { diff --git a/packages/vjudge/src/model.ts b/packages/vjudge/src/model.ts index ade04afa..a62fb3a7 100644 --- a/packages/vjudge/src/model.ts +++ b/packages/vjudge/src/model.ts @@ -1,4 +1,5 @@ /* eslint-disable no-await-in-loop */ +import os from 'os'; import { sleep } from '@hydrooj/utils/lib/utils'; import * as Judge from 'hydrooj/src/handler/judge'; import { Logger } from 'hydrooj/src/logger'; @@ -131,6 +132,7 @@ async function loadAccounts() { const accounts = await coll.find().toArray(); for (const account of accounts) { if (!providers[account.type]) continue; + if (account.enableOn && !account.enableOn.includes(os.hostname())) continue; Pool[`${account.type}/${account.handle}`] = new Service(providers[account.type], account); } }