fix(cses): remove verdict poll loop from submit

Problem: The submit method polled for a verdict for up to 120s, but
verdicts are never displayed in cp.nvim by design.

Solution: Remove the poll loop and `SUBMIT_POLL_TIMEOUT` constant.
After a successful POST, immediately return `SubmitResult(success=True)`.
This commit is contained in:
Barrett Ruth 2026-03-06 21:47:52 -05:00
parent c7f2af16d4
commit fc2331c242
Signed by: barrett
GPG key ID: A6C96C9349D2FC81
2 changed files with 3 additions and 36 deletions

View file

@ -9,7 +9,7 @@ from typing import Any
import httpx
from .base import BaseScraper, extract_precision
from .timeouts import HTTP_TIMEOUT, SUBMIT_POLL_TIMEOUT
from .timeouts import HTTP_TIMEOUT
from .models import (
ContestListResult,
ContestSummary,
@ -465,40 +465,8 @@ class CSESScraper(BaseScraper):
err = r.text
return self._submit_error(f"Submit request failed: {err}")
info = r.json()
submission_id = str(info.get("id", ""))
for _ in range(60):
await asyncio.sleep(2)
try:
r = await client.get(
f"{API_URL}/{SUBMIT_SCOPE}/submissions/{submission_id}",
params={"poll": "true"},
headers={
"X-Auth-Token": token,
**HEADERS,
},
timeout=SUBMIT_POLL_TIMEOUT,
)
if r.status_code == 200:
info = r.json()
if not info.get("pending", True):
verdict = info.get("result", "unknown")
return SubmitResult(
success=True,
error="",
submission_id=submission_id,
verdict=verdict,
)
except Exception:
pass
return SubmitResult(
success=True,
error="",
submission_id=submission_id,
verdict="submitted (poll timed out)",
)
submission_id = str(r.json().get("id", ""))
return SubmitResult(success=True, error="", submission_id=submission_id)
if __name__ == "__main__":

View file

@ -13,4 +13,3 @@ BROWSER_TURNSTILE_POLL = 5000
BROWSER_ELEMENT_WAIT = 10000
BROWSER_SETTLE_DELAY = 500
SUBMIT_POLL_TIMEOUT = 30.0