fix(scrapers): login fast paths and re-auth hardening for httpx platforms (#357)

## Problem

On CSES, Kattis, and USACO, `:CP <platform> login` always prompted
for credentials and ran a full web login even when a valid session was
already cached. Submit also had weak stale-session detection.

## Solution

`credentials.lua` now tries cached credentials first before prompting,
delegating fast-path detection to each scraper. CSES `login()` checks
the cached API token and returns immediately if valid. USACO `login()`
and `submit()` call `_check_usaco_login()` upfront. Kattis `submit()`
emits `checking_login` consistently and also triggers re-auth on HTTP
400/403, not just on the `"Request validation failed"` text match.
The premature `Submitting...` log emitted by Lua before the scraper
started is removed — Python's own status events are sufficient.
This commit is contained in:
Barrett Ruth 2026-03-07 02:23:43 -05:00 committed by GitHub
parent 6e9829a115
commit eb0dea777e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 88 additions and 48 deletions

View file

@ -79,7 +79,6 @@ function M.submit(opts)
prompt_credentials(platform, function(creds)
vim.cmd.update()
logger.log('Submitting...', { level = vim.log.levels.INFO, override = true })
require('cp.scraper').submit(
platform,