Compare commits

..

No commits in common. "afda9290fa8b119b18068132930877b2ecb2150a" and "d627490c67a7e894a6d2c896696ec6f0fb2ffc05" have entirely different histories.

View File

@ -10,23 +10,23 @@ const logger = new Logger('remote/atcoder');
const LANGS_MAP = { const LANGS_MAP = {
C: { C: {
name: 'C (GCC 12.2.0)', name: 'C (GCC 9.2.1)',
id: 5017, id: 4001,
comment: '//', comment: '//',
}, },
'C++': { 'C++': {
name: 'C++ 20 (GCC 12.2.0)', name: 'C++ (GCC 9.2.1)',
id: 5001, id: 4003,
comment: '//', comment: '//',
}, },
Pascal: { Pascal: {
name: 'Pascal (FPC 3.2.2)', name: 'Pascal (FPC 3.0.4)',
id: 5041, id: 4041,
comment: '//', comment: '//',
}, },
Python3: { Python3: {
name: 'Python (CPython 3.11.4)', name: 'Python (3.8.2)',
id: 5055, id: 4006,
comment: '#', comment: '#',
}, },
}; };
@ -193,8 +193,9 @@ export default class AtcoderProvider implements IBasicProvider {
} }
const [contestId, problemId] = parseProblemId(id); const [contestId, problemId] = parseProblemId(id);
const referer = `/contests/${contestId}/tasks/${problemId}`; const csrf = await this.getCsrfToken(
const csrf = await this.getCsrfToken(referer); `/contests/${contestId}/tasks/${problemId}`
);
logger.debug( logger.debug(
'Submitting', 'Submitting',
@ -207,13 +208,11 @@ export default class AtcoderProvider implements IBasicProvider {
await next({ status: 'Submitting to AtCoder...' }); await next({ status: 'Submitting to AtCoder...' });
// TODO: check submit time to ensure submission // TODO: check submit time to ensure submission
const res = await this.post(`/contests/${contestId}/submit`) const res = await this.post(`/contests/${contestId}/submit`).send({
.set('Referer', referer) csrf_token: csrf,
.send({
'data.TaskScreenName': problemId, 'data.TaskScreenName': problemId,
'data.LanguageId': programType.id, 'data.LanguageId': programType.id,
sourceCode: code, sourceCode: code,
csrf_token: csrf,
}); });
if (res.error) { if (res.error) {
@ -234,9 +233,7 @@ export default class AtcoderProvider implements IBasicProvider {
const { text: status, header: status_header } = await this.get( const { text: status, header: status_header } = await this.get(
`/contests/${contestId}/submissions/me` `/contests/${contestId}/submissions/me`
) ).retry(3);
.set('Referer', referer)
.retry(3);
if (status_header['set-cookie']) { if (status_header['set-cookie']) {
this.cookie = status_header['set-cookie']; this.cookie = status_header['set-cookie'];