cp.nvim/scrapers
Barrett Ruth ba5ae8df69
fix(kattis): fix nil display_name in contest picker (#332)
## Problem

`ContestSummary.display_name` defaults to `None`, which serializes to
JSON `null` → Lua `vim.NIL`. The contest picker displayed "vim.NIL" for
every entry. Additionally, `start_time` was always stored even when
null, because `vim.NIL` is truthy in Lua.

## Solution

Pass `display_name=name` explicitly in `_parse_contests_page` so JSON
never emits `null`. In `cache.lua` `set_contest_summaries`, coerce
`display_name` via a `~= vim.NIL` guard and apply the same guard before
storing `start_time`.
2026-03-06 13:25: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: implement login and submit for USACO, Kattis, and CodeChef (#325) 2026-03-06 00:09:16 -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 fix(kattis): fix nil display_name in contest picker (#332) 2026-03-06 13:25:17 -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(scrapers): fix Kattis and USACO login and submit (#330) 2026-03-06 12:38:32 -05:00