cp.nvim/scrapers
Barrett Ruth caf4a2e026 feat(codechef): implement login and submit
Problem: CodeChef login and submit were stub-only. Language IDs were
also missing for USACO, Kattis, and CodeChef.

Solution: Add StealthySession browser-based login (checks `__NEXT_DATA__`
for current user, fills email/password form) and submit (navigates to
`/{contest_id}/submit/{problem_id}`, selects language via select element
or custom dropdown fallback, sets code via Monaco/CodeMirror/textarea JS,
clicks submit). Cookie cache at `~/.cache/cp-nvim/codechef-cookies.json`.
Add language IDs for all three new platforms to `language_ids.py`.
2026-03-06 00:05:17 -05:00
..
__init__.py lol 2025-09-24 21:23:06 -04:00
atcoder.py feat(commands): implement :CP open [problem|contest|standings] (#319) 2026-03-05 19:16:05 -05:00
base.py feat: validate credentials on :CP <platform> login (#310) 2026-03-05 15:12:09 -05:00
codechef.py feat(codechef): implement login and submit 2026-03-06 00:05:17 -05:00
codeforces.py feat(commands): implement :CP open [problem|contest|standings] (#319) 2026-03-05 19:16:05 -05:00
cses.py feat(commands): implement :CP open [problem|contest|standings] (#319) 2026-03-05 19:16:05 -05:00
kattis.py feat(kattis): implement login, submit, and contest list filter 2026-03-06 00:05:10 -05:00
language_ids.py feat(codechef): implement login and submit 2026-03-06 00:05:17 -05:00
models.py feat(commands): implement :CP open [problem|contest|standings] (#319) 2026-03-05 19:16:05 -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 feat(usaco): implement login and submit 2026-03-06 00:05:04 -05:00