mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-19 17:38:19 +08:00
vjudge: fix poj content (#429)
This commit is contained in:
1 parent
954d084b4f
commit
8f7d81ddca
2 files changed
+35
-11
No files matched your search
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@hydrooj/vjudge",
|
"name": "@hydrooj/vjudge",
|
||||||
"version": "1.5.0",
|
"version": "1.5.1",
|
||||||
"description": "Submit problems to remote oj",
|
"description": "Submit problems to remote oj",
|
||||||
"main": "package.json",
|
"main": "package.json",
|
||||||
"repository": "https://github.com/hydro-dev/Hydro.git",
|
"repository": "https://github.com/hydro-dev/Hydro.git",
|
||||||
|
|||||||
@@ -59,9 +59,7 @@ poj.6:
|
|||||||
|
|
||||||
const langs = {
|
const langs = {
|
||||||
default: 'en',
|
default: 'en',
|
||||||
'zh-CN': 'zh_CN',
|
'zh-CN': 'zh',
|
||||||
es: 'es',
|
|
||||||
ja: 'ja',
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default class POJProvider implements IBasicProvider {
|
export default class POJProvider implements IBasicProvider {
|
||||||
@@ -129,6 +127,7 @@ export default class POJProvider implements IBasicProvider {
|
|||||||
const memory = info.children[2].innerHTML.split('</b> ')[1].toLowerCase().trim();
|
const memory = info.children[2].innerHTML.split('</b> ')[1].toLowerCase().trim();
|
||||||
const contents = {};
|
const contents = {};
|
||||||
const images = {};
|
const images = {};
|
||||||
|
let tag = '';
|
||||||
for (const lang of languages) {
|
for (const lang of languages) {
|
||||||
await sleep(1000);
|
await sleep(1000);
|
||||||
const { text } = await this.get(`/problem?id=${id.split('P')[1]}&lang=${lang}&change=true`);
|
const { text } = await this.get(`/problem?id=${id.split('P')[1]}&lang=${lang}&change=true`);
|
||||||
@@ -157,6 +156,10 @@ export default class POJProvider implements IBasicProvider {
|
|||||||
if (node.className.includes('pst')) {
|
if (node.className.includes('pst')) {
|
||||||
if (!node.innerHTML.startsWith('Sample ')) {
|
if (!node.innerHTML.startsWith('Sample ')) {
|
||||||
html += `<h2>${htmlEncode(node.innerHTML)}</h2>`;
|
html += `<h2>${htmlEncode(node.innerHTML)}</h2>`;
|
||||||
|
if (node.textContent === 'Source') {
|
||||||
|
tag = node.nextElementSibling.textContent.trim();
|
||||||
|
node.nextElementSibling.innerHTML = tag;
|
||||||
|
}
|
||||||
} else if (node.innerHTML.startsWith('Sample Input')) {
|
} else if (node.innerHTML.startsWith('Sample Input')) {
|
||||||
lastId++;
|
lastId++;
|
||||||
markNext = 'input';
|
markNext = 'input';
|
||||||
@@ -164,16 +167,37 @@ export default class POJProvider implements IBasicProvider {
|
|||||||
markNext = 'output';
|
markNext = 'output';
|
||||||
}
|
}
|
||||||
} else if (node.className.includes('sio')) {
|
} else if (node.className.includes('sio')) {
|
||||||
html += `<pre><code class="language-${markNext}${lastId}">${htmlEncode(node.innerHTML)}</code></pre>`;
|
html += `\n\n<pre><code class="language-${markNext}${lastId}">${node.innerHTML}</code></pre>\n\n`;
|
||||||
} else if (node.className.includes('ptx')) {
|
} else if (node.className.includes('ptx')) {
|
||||||
for (const item of node.innerHTML.split('\n<br>\n<br>')) {
|
for (const primaryTd of node.querySelectorAll('td')) {
|
||||||
const p = page.createElement('p');
|
const td = page.createElement('td');
|
||||||
p.innerHTML = item.trim();
|
td.textContent = primaryTd.textContent;
|
||||||
html += p.outerHTML;
|
if (primaryTd.colSpan > 1) td.colSpan = primaryTd.colSpan;
|
||||||
|
primaryTd.replaceWith(td);
|
||||||
|
}
|
||||||
|
for (const primaryPre of node.querySelectorAll('pre')) {
|
||||||
|
const pre = page.createElement('pre');
|
||||||
|
for (const inner of primaryPre.innerHTML.split('<br>')) {
|
||||||
|
if (inner !== '') {
|
||||||
|
const preP = page.createElement('p');
|
||||||
|
preP.innerHTML = inner;
|
||||||
|
pre.append(preP);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
primaryPre.replaceWith(pre);
|
||||||
|
}
|
||||||
|
for (const item of node.innerHTML.split('\n<br>')) {
|
||||||
|
if (item !== '') {
|
||||||
|
const p = page.createElement('p');
|
||||||
|
p.innerHTML = item.trim().replace(/\$/g, '<span>$</span>');
|
||||||
|
html += p.outerHTML;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else html += node.innerHTML;
|
} else html += node.innerHTML;
|
||||||
}
|
}
|
||||||
contents[langs[lang]] = html;
|
if (lang in langs) {
|
||||||
|
contents[langs[lang]] = html;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
title: main.getElementsByClassName('ptt')[0].innerHTML,
|
title: main.getElementsByClassName('ptt')[0].innerHTML,
|
||||||
@@ -181,7 +205,7 @@ export default class POJProvider implements IBasicProvider {
|
|||||||
'config.yaml': Buffer.from(`time: ${time}\nmemory: ${memory}\ntype: remote_judge\nsubType: poj\ntarget: ${id}`),
|
'config.yaml': Buffer.from(`time: ${time}\nmemory: ${memory}\ntype: remote_judge\nsubType: poj\ntarget: ${id}`),
|
||||||
},
|
},
|
||||||
files,
|
files,
|
||||||
tag: [],
|
tag: [tag],
|
||||||
content: JSON.stringify(contents),
|
content: JSON.stringify(contents),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user