fix(scrapers): fix Kattis and USACO login and submit (#330)
## Problem Kattis and USACO login and submit were broken in multiple ways discovered during manual end-to-end testing. Neither platform could successfully authenticate or submit through the plugin. ## Solution **Kattis:** switch login from `POST /login/email` (requires CSRF fetch) to `POST /login` with `script=true` (200 = success, 403 = bad credentials); remove `_check_kattis_login` entirely since Kattis blocks all GET requests from httpx; add submit retry on `"Request validation failed"` to handle expired sessions; fix language ID `"C++17"` → `"C++"`. **USACO:** fix login field `user` → `uname`; fix success check to `code==1`; fix submit endpoint to `submit-solution.php`, file field to `sourcefile`, hidden field extraction off-by-one (`group(2)` → `group(1)`); fix `_pick_lang_option` loop order (keywords outer, options inner) so specific keywords like `"c++17"` match before broad ones like `"c++"`. **`submit.lua`:** absolutize source file path via `fnamemodify(..., ':p')` before passing to the scraper — Python is spawned with `cwd=plugin_path` so relative paths silently fail with `FileNotFoundError`. **Both platforms:** remove cookie fast path from `login` subcommand so credentials are always validated, preventing stale cookies from masking wrong credentials.
This commit is contained in:
parent
543480a4fe
commit
b6d3df03e3
4 changed files with 42 additions and 53 deletions
|
|
@ -16,7 +16,7 @@ LANGUAGE_IDS = {
|
|||
"python": "python",
|
||||
},
|
||||
"kattis": {
|
||||
"cpp": "C++17",
|
||||
"cpp": "C++",
|
||||
"python": "Python 3",
|
||||
},
|
||||
"codechef": {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue