cp.nvim/scrapers
Barrett Ruth 297c71e7c7
fix: replace curl_cffi with scrapling in codeforces metadata
Problem: `codeforces.py` used `curl_cffi` to bypass Cloudflare when
fetching contest problem HTML, making it unavailable in the nix python
env and requiring an extra dependency.

Solution: rewrite `_fetch_problems_html` to use scrapling
`StealthySession` with `solve_cloudflare=True`, matching the existing
CF submit pattern. Extend `needs_browser` in `scraper.lua` to route CF
`metadata` and `tests` through the FHS env on NixOS. Remove `curl-cffi`
from `pyproject.toml`, `flake.nix`, and test mocks.
2026-03-06 13:18:06 -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: implement login and submit for USACO, Kattis, and CodeChef (#325) 2026-03-06 00:09:16 -05:00
codeforces.py fix: replace curl_cffi with scrapling in codeforces metadata 2026-03-06 13:18:06 -05:00
cses.py feat(commands): implement :CP open [problem|contest|standings] (#319) 2026-03-05 19:16:05 -05:00
kattis.py feat: implement login and submit for USACO, Kattis, and CodeChef (#325) 2026-03-06 00:09:16 -05:00
language_ids.py feat: implement login and submit for USACO, Kattis, and CodeChef (#325) 2026-03-06 00:09:16 -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: implement login and submit for USACO, Kattis, and CodeChef (#325) 2026-03-06 00:09:16 -05:00