Skip to content

Commit bf8ffbf

Browse files
authored
Merge pull request #128 from online-judge-tools/feature/remove-codeforces
Remove the feature to submit to Codeforces
2 parents 476f79d + 44b069c commit bf8ffbf

File tree

3 files changed

+5
-55
lines changed

3 files changed

+5
-55
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ $ pip3 install online-judge-api-client
2727
| [Anarchy Golf](http://golf.shinh.org/) | :heavy_check_mark: | :grey_question: (same to samples) | | | | |
2828
| [AtCoder](https://atcoder.jp/) | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
2929
| [CodeChef](https://www.codechef.com/) | :x: [issue](https://github.com/online-judge-tools/api-client/issues/49) | | | | | |
30-
| [Codeforces](https://codeforces.com/) | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
30+
| [Codeforces](https://codeforces.com/) | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: [issue](https://github.com/online-judge-tools/api-client/issues/127) |
3131
| [CS Academy](https://csacademy.com/) | :heavy_check_mark: | | | | | |
3232
| [Facebook Hacker Cup](https://www.facebook.com/hackercup/) | :heavy_check_mark: | | | | | |
3333
| [Google Code Jam](https://codingcompetitions.withgoogle.com/codejam) | :heavy_check_mark: | | | | | |

onlinejudge/_implementation/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ def request(self, session: requests.Session, method: str = None, action: Optiona
110110
if headers is None:
111111
headers = {}
112112
if 'Referer' not in headers:
113-
headers['Referer'] = url
113+
headers['Referer'] = self.url
114114
return request(method, url, session=session, raise_for_status=raise_for_status, data=self.payload, files=self.files, headers=headers, **kwargs)
115115

116116

onlinejudge/service/codeforces.py

Lines changed: 3 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -357,62 +357,12 @@ def get_available_languages(self, *, session: Optional[requests.Session] = None)
357357

358358
def submit_code(self, code: bytes, language_id: LanguageId, *, filename: Optional[str] = None, session: Optional[requests.Session] = None) -> onlinejudge.type.Submission:
359359
"""
360-
:raises NotLoggedInError:
361360
:raises SubmissionError:
362361
"""
363362

364-
session = session or utils.get_default_session()
365-
366-
# get
367-
url = self.get_contest().get_url() + '/submit'
368-
resp = utils.request('GET', url, session=session)
369-
370-
# parse
371-
soup = bs4.BeautifulSoup(resp.content.decode(resp.encoding), utils.HTML_PARSER)
372-
form = soup.find('form', class_='submit-form')
373-
if form is None:
374-
logger.error('not logged in')
375-
raise NotLoggedInError
376-
logger.debug('form: %s', str(form))
377-
378-
# make data
379-
form = utils.FormSender(form, url=resp.url)
380-
form.set('submittedProblemIndex', str(self.index))
381-
form.set('programTypeId', language_id)
382-
form.set_file('sourceFile', filename or 'code', code)
383-
384-
# post
385-
preserved_user_agent = session.headers.get('User-Agent')
386-
logger.debug('User-Agent is temporarily disabled. The old User-Agent is %s', repr(preserved_user_agent))
387-
try:
388-
if preserved_user_agent is not None:
389-
del session.headers['User-Agent']
390-
resp = form.request(session=session, raise_for_status=False)
391-
try:
392-
resp.raise_for_status()
393-
except requests.exceptions.HTTPError as e:
394-
logger.exception(e)
395-
if resp.status_code == 403:
396-
logger.warning('You may use wrong User-Agent: %s', repr(session.headers.get('User-Agent')))
397-
raise e
398-
finally:
399-
if preserved_user_agent is not None:
400-
session.headers['User-Agent'] = preserved_user_agent
401-
402-
# result
403-
if resp.url.endswith('/my'):
404-
# example: https://codeforces.com/contest/598/my
405-
logger.info('success: result: %s', resp.url)
406-
return utils.DummySubmission(resp.url, problem=self)
407-
else:
408-
logger.error('failure')
409-
# parse error messages
410-
soup = bs4.BeautifulSoup(resp.content.decode(resp.encoding), utils.HTML_PARSER)
411-
msgs = [] # type: List[str]
412-
for span in soup.findAll('span', class_='error'):
413-
msgs += [span.string]
414-
logger.warning('Codeforces says: "%s"', span.string)
415-
raise SubmissionError('it may be the "You have submitted exactly the same code before" error: ' + str(msgs))
363+
msg = 'The feature to submit to Codeforces is now removed. Please read https://github.com/online-judge-tools/api-client/issues/127'
364+
logger.error('%s', msg)
365+
raise SubmissionError(msg)
416366

417367
def get_url(self) -> str:
418368
table = {}

0 commit comments

Comments
 (0)