cp.nvim/scrapers
Barrett Ruth 7e48ba05cf feat(kattis): rewrite scraper to support real contests
Problem: scrape_contest_list paginated the entire Kattis problem database
(3000+ problems) treating each as a "contest". scrape_contest_metadata
only handled single-problem access. stream_tests_for_category_async could
not fetch tests for multiple problems in a real contest.

Solution: replace the paginated problem loop with a single GET to
/contests that returns ~150 real timed contests. Add contest-aware path
to scrape_contest_metadata that fetches /contests/{id}/problems and
returns all problem slugs; fall back to single-problem path when the ID
is not a contest. Add _stream_single_problem helper and update
stream_tests_for_category_async to fan out concurrently over all contest
problem slugs before falling back to the single-problem path.
2026-03-03 16:02:09 -05:00
..
__init__.py lol 2025-09-24 21:23:06 -04:00
atcoder.py fix: resolve typecheck errors in cache, atcoder, cses, and usaco 2026-03-03 15:09:41 -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 fix: resolve typecheck errors in cache, atcoder, cses, and usaco 2026-03-03 15:09:41 -05:00
kattis.py feat(kattis): rewrite scraper to support real contests 2026-03-03 16:02:09 -05:00
language_ids.py feat(submit): add solution submission UI 2026-03-03 15:09:41 -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