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' ? '/problemset/status?my=on'
: `/gym/${contestId}/my`); : `/gym/${contestId}/my`);
this.csrf = document.querySelector('meta[name="X-Csrf-Token"]').getAttribute('content'); 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) { 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 // eslint-disable-next-line no-constant-condition
while (true) { while (true) {
await sleep(3000); 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, csrf_token: this.csrf,
submissionId: id, submissionId: contestId ? id.split('#')[1] : id,
}); });
if (body.compilationError === 'true') { if (body.compilationError === 'true') {
return await end({ return await end({