cp.nvim/scrapers
Barrett Ruth 82640709d6
fix(kattis,usaco): precision, open URLs, and Kattis submit error surface (#335)
## Problem

Kattis and USACO problem tests never extracted float precision, so
epsilon problems got no tolerance. Kattis `scrape_contest_metadata`
omitted `contest_url` and `standings_url`, breaking `:CP open
contest/standings`. Kattis submit always returned success even when the
server responded with an error (e.g. "You need to join the contest").

## Solution

Call `extract_precision` on problem HTML in both scrapers and emit it in
the JSON payload. Set `contest_url` and `standings_url` on Kattis
metadata paths. After Kattis submit, check for `Submission ID:` in the
response and surface the error text if absent.
2026-03-06 15:23:55 -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 fix(codechef): rewrite contest list, drop curl_cffi (#333) 2026-03-06 13:25:31 -05:00
codeforces.py fix: replace curl_cffi with scrapling in codeforces metadata (#334) 2026-03-06 13:25:44 -05:00
cses.py feat(commands): implement :CP open [problem|contest|standings] (#319) 2026-03-05 19:16:05 -05:00
kattis.py fix(kattis,usaco): precision, open URLs, and Kattis submit error surface (#335) 2026-03-06 15:23:55 -05:00
language_ids.py fix(scrapers): fix Kattis and USACO login and submit (#330) 2026-03-06 12:38:32 -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 fix(kattis,usaco): precision, open URLs, and Kattis submit error surface (#335) 2026-03-06 15:23:55 -05:00