Problem: CF and AtCoder always did a full browser login on every `login` invocation, even with valid cookies. AtCoder submit never persisted cookies, re-logging in on every submit. CF's cookie guard used `X-User-Handle` (no longer set by CF — now `X-User-Sha1`), so cookies were never saved. CF `login_action` was missing `wait_for_selector` for the form that appears after the Cloudflare gate reloads. AtCoder submit injected source via CodeMirror which doesn't exist on AtCoder (it uses ACE editor). Solution: Added cookie fast paths to CF and AtCoder login — emit `checking_login` and return early if the existing session is valid. `checking_login` is only emitted when cookies actually exist; fresh starts go straight to `logging_in`. Fixed CF cookie guard to `X-User-Sha1` and added `wait_for_selector` for the login form. Rewrote AtCoder submit to use `set_input_files` on the real source file path, with `wait_for_function` on `#plain-textarea` to confirm the ACE editor populated before clicking submit. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| atcoder.py | ||
| base.py | ||
| codechef.py | ||
| codeforces.py | ||
| cses.py | ||
| kattis.py | ||
| language_ids.py | ||
| models.py | ||
| timeouts.py | ||
| usaco.py | ||