From 43b248009f04007eb213ffb7b80d82ca6b9af3cf Mon Sep 17 00:00:00 2001 From: undefined Date: Mon, 21 Jun 2021 15:24:49 +0800 Subject: [PATCH] vjudge: codeforces: ignore 1510G --- packages/vjudge/package.json | 2 +- packages/vjudge/src/model.ts | 1 + packages/vjudge/src/providers/codeforces.ts | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/vjudge/package.json b/packages/vjudge/package.json index f8eb29ccd..73b891cb0 100644 --- a/packages/vjudge/package.json +++ b/packages/vjudge/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/vjudge", - "version": "1.0.2", + "version": "1.0.3", "description": "Submit problems to remote oj", "main": "package.json", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/packages/vjudge/src/model.ts b/packages/vjudge/src/model.ts index a38ee45cc..0ec41958e 100644 --- a/packages/vjudge/src/model.ts +++ b/packages/vjudge/src/model.ts @@ -39,6 +39,7 @@ class Service { for (const pid of pids) { if (await ProblemModel.get(domainId, pid)) continue; const res = await this.api.getProblem(pid); + if (!res) continue; const id = await ProblemModel.add(domainId, pid, res.title, res.content, 1, res.tag, false); for (const key in res.files) { await ProblemModel.addAdditionalFile(domainId, id, key, res.files[key]); diff --git a/packages/vjudge/src/providers/codeforces.ts b/packages/vjudge/src/providers/codeforces.ts index ee8590475..17ccb574f 100644 --- a/packages/vjudge/src/providers/codeforces.ts +++ b/packages/vjudge/src/providers/codeforces.ts @@ -99,6 +99,7 @@ export default class CodeforcesProvider implements IBasicProvider { logger.info(id); const [, contestId, problemId] = /^P(\d+)([A-Z][0-9]?)$/.exec(id); const res = await this.get(`/problemset/problem/${contestId}/${problemId}`); + if (!res.text) return null; const $dom = new JSDOM(res.text.replace(/\$\$\$/g, '$')); const tag = Array.from($dom.window.document.querySelectorAll('.tag-box')).map((i) => i.textContent.trim()); const text = $dom.window.document.querySelector('.problem-statement').innerHTML; @@ -113,7 +114,7 @@ export default class CodeforcesProvider implements IBasicProvider { files[`${fid}.png`] = file; ele.setAttribute('src', `%file%://${fid}.png`); }); - const title = document.querySelector('.title').innerHTML.trim().substr(3, 100); + const title = document.querySelector('.title').innerHTML.trim().split('. ')[1]; const time = parseInt(document.querySelector('.time-limit').innerHTML.substr(53, 2), 10); const memory = parseInt(document.querySelector('.memory-limit').innerHTML.substr(55, 4), 10); document.body.firstChild.remove();