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:
parent
c7f2af16d4
commit
fc2331c242
2 changed files with 3 additions and 36 deletions
|
|
@ -9,7 +9,7 @@ from typing import Any
|
||||||
import httpx
|
import httpx
|
||||||
|
|
||||||
from .base import BaseScraper, extract_precision
|
from .base import BaseScraper, extract_precision
|
||||||
from .timeouts import HTTP_TIMEOUT, SUBMIT_POLL_TIMEOUT
|
from .timeouts import HTTP_TIMEOUT
|
||||||
from .models import (
|
from .models import (
|
||||||
ContestListResult,
|
ContestListResult,
|
||||||
ContestSummary,
|
ContestSummary,
|
||||||
|
|
@ -465,40 +465,8 @@ class CSESScraper(BaseScraper):
|
||||||
err = r.text
|
err = r.text
|
||||||
return self._submit_error(f"Submit request failed: {err}")
|
return self._submit_error(f"Submit request failed: {err}")
|
||||||
|
|
||||||
info = r.json()
|
submission_id = str(r.json().get("id", ""))
|
||||||
submission_id = str(info.get("id", ""))
|
return SubmitResult(success=True, error="", submission_id=submission_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)",
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
|
||||||
|
|
@ -13,4 +13,3 @@ BROWSER_TURNSTILE_POLL = 5000
|
||||||
BROWSER_ELEMENT_WAIT = 10000
|
BROWSER_ELEMENT_WAIT = 10000
|
||||||
BROWSER_SETTLE_DELAY = 500
|
BROWSER_SETTLE_DELAY = 500
|
||||||
|
|
||||||
SUBMIT_POLL_TIMEOUT = 30.0
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue