fix: expand language IDs, fix AtCoder submit, normalize logging (#353)

## Problem

Language version coverage was incomplete across all platforms, AtCoder
submit used a stale cookie fast-path that caused silent failures, and
raw
`vim.notify` calls throughout the codebase produced inconsistent or
missing `[cp.nvim]:` prefixes.

## Solution

Remove cookie persistence from AtCoder login/submit (always fresh
login),
increase the submit nav timeout to 40s, and switch to in-memory buffer
upload with the correct per-language extension from a full
`_LANGUAGE_ID_EXTENSION`
map covering all 116 AtCoder languages. Expand `LANGUAGE_VERSIONS` in
`constants.lua` with all AtCoder languages, 15 new CF languages with
full
version variants, and 50+ Kattis languages. Fix AtCoder `prolog` ID
(`6079`→`6081`, was Pony) and remove the non-existent `racket` entry.
Replace all raw `vim.notify` calls with `logger.log`. Simplify the
submit
language doc to point at `constants.lua` rather than maintaining a
static table.
This commit is contained in:
Barrett Ruth 2026-03-06 21:35:13 -05:00 committed by GitHub
parent 1ac521a126
commit 291de4e137
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 356 additions and 114 deletions

View file

@ -338,13 +338,14 @@ class KattisScraper(BaseScraper):
await _save_kattis_cookies(client)
print(json.dumps({"status": "submitting"}), flush=True)
ext = "py" if "python" in language_id.lower() else "cpp"
lang_lower = language_id.lower()
mainclass = Path(file_path).stem if "java" in lang_lower else ""
data: dict[str, str] = {
"submit": "true",
"script": "true",
"language": language_id,
"problem": problem_id,
"mainclass": "",
"mainclass": mainclass,
"submit_ctr": "2",
}
if contest_id != problem_id:
@ -354,7 +355,7 @@ class KattisScraper(BaseScraper):
return await client.post(
f"{BASE_URL}/submit",
data=data,
files={"sub_file[]": (f"solution.{ext}", source, "text/plain")},
files={"sub_file[]": (Path(file_path).name, source, "text/plain")},
headers=HEADERS,
timeout=HTTP_TIMEOUT,
)