fix(kattis): fix login, language ID, and submit path

Problem: Kattis login used `/login/email` without a CSRF token (always
failed), the homepage login check used GET requests that Kattis blocks
from httpx, the C++ language ID was `"C++17"` (rejected by the API),
and `submit.lua` passed a relative source file path to Python whose cwd
is the plugin directory.

Solution: Switch login to `POST /login` with `script=true` (200 =
success, 403 = bad credentials), remove the broken `_check_kattis_login`
entirely, add a submit retry on `"Request validation failed"`, correct
the Kattis cpp language ID to `"C++"`, and absolutize the source file
path in `submit.lua` via `fnamemodify(..., ':p')` before spawning.
This commit is contained in:
Barrett Ruth 2026-03-06 12:00:38 -05:00
parent 543480a4fe
commit 01fc2f26e9
Signed by: barrett
GPG key ID: A6C96C9349D2FC81
3 changed files with 25 additions and 28 deletions

View file

@ -54,6 +54,7 @@ function M.submit(opts)
logger.log('Source file not found', { level = vim.log.levels.ERROR })
return
end
source_file = vim.fn.fnamemodify(source_file, ':p')
prompt_credentials(platform, function(creds)
vim.cmd.update()