vjudge: fix codeforces result fetch (picked from #599)

This commit is contained in:
undefined committed 2023-06-30 00:49:43 +08:00
1 parent a104b75bc0
commit 807bfb53e3
1 file changed
+7 -3
+7 -3
View File
@@ -302,7 +302,8 @@ export default class CodeforcesProvider extends BasicFetcher implements IBasicPr
? '/problemset/status?my=on'
: `/gym/${contestId}/my`);
this.csrf = document.querySelector('meta[name="X-Csrf-Token"]').getAttribute('content');
return document.querySelector('[data-submission-id]').getAttribute('data-submission-id');
const submission = document.querySelector('[data-submission-id]').getAttribute('data-submission-id');
return type !== 'GYM' ? submission : `${contestId}#${submission}`;
}
async waitForSubmission(id: string, next, end) {
@@ -310,9 +311,12 @@ export default class CodeforcesProvider extends BasicFetcher implements IBasicPr
// eslint-disable-next-line no-constant-condition
while (true) {
await sleep(3000);
const { body } = await this.post('/data/submitSource').send({
const contestId = id.includes('#') ? id.split('#')[0] : null;
const { body } = await this.post('/data/submitSource')
.set('referer', contestId ? `https://codeforces.com/gym/${contestId}/my` : 'https://codeforces.com/problemset/status?my=on')
.send({
csrf_token: this.csrf,
submissionId: id,
submissionId: contestId ? id.split('#')[1] : id,
});
if (body.compilationError === 'true') {
return await end({