## Problem On CSES, Kattis, and USACO, `:CP <platform> login` always prompted for credentials and ran a full web login even when a valid session was already cached. Submit also had weak stale-session detection. ## Solution `credentials.lua` now tries cached credentials first before prompting, delegating fast-path detection to each scraper. CSES `login()` checks the cached API token and returns immediately if valid. USACO `login()` and `submit()` call `_check_usaco_login()` upfront. Kattis `submit()` emits `checking_login` consistently and also triggers re-auth on HTTP 400/403, not just on the `"Request validation failed"` text match. The premature `Submitting...` log emitted by Lua before the scraper started is removed — Python's own status events are sufficient. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| atcoder.py | ||
| base.py | ||
| codechef.py | ||
| codeforces.py | ||
| cses.py | ||
| kattis.py | ||
| language_ids.py | ||
| models.py | ||
| timeouts.py | ||
| usaco.py | ||