cp.nvim/scrapers
Barrett Ruth 077f1124d2
feat(atcoder): implement validated login with browser session
Problem: AtCoder credentials were cached without verification;
authentication failures were only surfaced during submit.

Solution: add `_login_headless()` that opens a StealthySession, checks
cookies, solves Turnstile if needed, fills the login form, and
validates success by checking for the "Sign Out" link. Cookies are
only persisted on confirmed login.
2026-03-05 15:00:06 -05:00
..
__init__.py lol 2025-09-24 21:23:06 -04:00
atcoder.py feat(atcoder): implement validated login with browser session 2026-03-05 15:00:06 -05:00
base.py feat(scraper): add LoginResult model and abstract login() interface 2026-03-05 14:59:46 -05:00
codechef.py fix(submit): use file path over stdin; fix CF CodeMirror textarea (#305) 2026-03-05 14:34:14 -05:00
codeforces.py fix(submit): use file path over stdin; fix CF CodeMirror textarea (#305) 2026-03-05 14:34:14 -05:00
cses.py feat(cses): implement validated login via _check_token/_web_login 2026-03-05 14:59:55 -05:00
kattis.py fix(submit): use file path over stdin; fix CF CodeMirror textarea (#305) 2026-03-05 14:34:14 -05:00
language_ids.py feat(atcoder): extract submit helpers; add live status notifications (#294) 2026-03-04 19:27:29 -05:00
models.py feat(scraper): add LoginResult model and abstract login() interface 2026-03-05 14:59:46 -05:00
timeouts.py fix(submit): use file path over stdin; fix CF CodeMirror textarea (#305) 2026-03-05 14:34:14 -05:00
usaco.py fix(submit): use file path over stdin; fix CF CodeMirror textarea (#305) 2026-03-05 14:34:14 -05:00