cp.nvim/scrapers
Barrett Ruth f4055b071b feat(codeforces): implement submit via headless browser
Problem: Codeforces submit was a stub returning "not yet implemented".

Solution: use StealthySession (same pattern as AtCoder) to handle
Cloudflare Turnstile on the login page, fill credentials, navigate to
the contest submit form, upload source via file input, and cache
cookies at `~/.cache/cp-nvim/codeforces-cookies.json` so repeat
submits skip the login entirely. Uses a single browser page action
that checks for the submit form before navigating, avoiding redundant
page loads and Turnstile challenges.
2026-03-05 01:31:30 -05:00
..
__init__.py lol 2025-09-24 21:23:06 -04:00
atcoder.py feat(atcoder): extract submit helpers; add live status notifications (#294) 2026-03-04 19:27:29 -05:00
base.py ci: format 2026-03-03 15:09:41 -05:00
codechef.py ci: format 2026-03-03 15:09:41 -05:00
codeforces.py feat(codeforces): implement submit via headless browser 2026-03-05 01:31:30 -05:00
cses.py perf(cses): cache API token across submits 2026-03-05 01:18:16 -05:00
kattis.py feat(kattis): rewrite scraper to support real contests 2026-03-03 16:02:09 -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 precision extraction, start_time, and submit support 2026-03-03 15:09:41 -05:00
usaco.py fix: resolve typecheck errors in cache, atcoder, cses, and usaco 2026-03-03 15:09:41 -05:00