cp.nvim/scrapers
Barrett Ruth e9f72dfbbc
feat(cses): implement submit via REST API (#299)
## Problem

CSES submit was a stub returning "not yet implemented".

## Solution

Authenticate via web login + API token bridge (POST `/login` form, then
POST `/api/login` and confirm the auth page), submit source to
`/api/courses/problemset/submissions` with base64-encoded content, and
poll for verdict. Uses the same username/password credential model as
AtCoder — no browser dependencies needed. Tested end-to-end with a real
CSES account (verdict: `ACCEPTED`).

Also updates `scraper.lua` to pass the full ndjson event object to
`on_status` and handle `credentials` events for future platform use.
2026-03-05 01:07:57 -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 ci: format 2026-03-03 15:09:41 -05:00
cses.py feat(cses): implement submit via REST API (#299) 2026-03-05 01:07:57 -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