cp.nvim/scrapers
Barrett Ruth 771dbc7753
fix(scrapers): bad credentials detection and error message cleanup (#367)
## Problem

Wrong credentials produced garbled error messages (`"login failed: Login
failed: bad_credentials"`) and stale credentials remained cached after
failure, causing silent re-use on the next invocation.

## Solution

Standardize all scrapers to emit `"bad_credentials"` as a plain error
code, mapped to a human-readable string via `LOGIN_ERRORS` in
`constants.lua`. Fix `credentials.lua` to clear cached credentials on
failure in both the fresh-prompt and re-prompt paths. For AtCoder and
Codeforces, replace `wait_for_url` with `wait_for_function` to detect
the login error element immediately rather than sitting the full 10s
navigation timeout. Add "Remember me" checkbox on Codeforces login.
2026-03-07 17:58:25 -05:00
..
__init__.py lol 2025-09-24 21:23:06 -04:00
atcoder.py fix(scrapers): bad credentials detection and error message cleanup (#367) 2026-03-07 17:58:25 -05:00
base.py feat: file conflict prompt, empty submit guard, and lint fixes (#366) 2026-03-07 16:30:51 -05:00
codechef.py fix(scrapers): bad credentials detection and error message cleanup (#367) 2026-03-07 17:58:25 -05:00
codeforces.py fix(scrapers): bad credentials detection and error message cleanup (#367) 2026-03-07 17:58:25 -05:00
cses.py fix(scrapers): bad credentials detection and error message cleanup (#367) 2026-03-07 17:58:25 -05:00
kattis.py fix(scrapers): bad credentials detection and error message cleanup (#367) 2026-03-07 17:58:25 -05:00
language_ids.py feat(codechef): implement full CodeChef support (#354) 2026-03-06 23:10:44 -05:00
models.py feat: race countdown support and language version selection (#346) 2026-03-06 18:18:21 -05:00
timeouts.py fix: codechef submit fixes and atcoder cleanup (#355) 2026-03-06 23:40:12 -05:00
usaco.py fix(scrapers): bad credentials detection and error message cleanup (#367) 2026-03-07 17:58:25 -05:00