ci: remove unused var
This commit is contained in:
parent
3ecd200da7
commit
38cd0482f0
6 changed files with 186 additions and 3 deletions
67
t/cf_cli_debug.py
Normal file
67
t/cf_cli_debug.py
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Reproduce CLI hang: go through asyncio.to_thread like the real code."""
|
||||
import asyncio
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
sys.path.insert(0, ".")
|
||||
|
||||
from scrapers.atcoder import _ensure_browser, _solve_turnstile
|
||||
from scrapers.codeforces import BASE_URL, _wait_for_gate_reload
|
||||
from scrapers.timeouts import BROWSER_SESSION_TIMEOUT
|
||||
|
||||
|
||||
def _test_submit():
|
||||
from scrapling.fetchers import StealthySession
|
||||
|
||||
_ensure_browser()
|
||||
|
||||
cookie_cache = Path.home() / ".cache" / "cp-nvim" / "codeforces-cookies.json"
|
||||
saved_cookies = []
|
||||
if cookie_cache.exists():
|
||||
try:
|
||||
saved_cookies = json.loads(cookie_cache.read_text())
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
logged_in = False
|
||||
|
||||
def check_login(page):
|
||||
nonlocal logged_in
|
||||
logged_in = page.evaluate(
|
||||
"() => Array.from(document.querySelectorAll('a'))"
|
||||
".some(a => a.textContent.includes('Logout'))"
|
||||
)
|
||||
print(f"logged_in: {logged_in}", flush=True)
|
||||
|
||||
def submit_action(page):
|
||||
print(f"ENTERED submit_action: url={page.url}", flush=True)
|
||||
|
||||
with StealthySession(
|
||||
headless=True,
|
||||
timeout=BROWSER_SESSION_TIMEOUT,
|
||||
google_search=False,
|
||||
cookies=saved_cookies,
|
||||
) as session:
|
||||
print("fetch homepage...", flush=True)
|
||||
session.fetch(f"{BASE_URL}/", page_action=check_login, network_idle=True)
|
||||
|
||||
print("fetch submit page...", flush=True)
|
||||
session.fetch(
|
||||
f"{BASE_URL}/contest/1933/submit",
|
||||
page_action=submit_action,
|
||||
)
|
||||
print("DONE", flush=True)
|
||||
|
||||
return "ok"
|
||||
|
||||
|
||||
async def main():
|
||||
print("Running via asyncio.to_thread...", flush=True)
|
||||
result = await asyncio.to_thread(_test_submit)
|
||||
print(f"Result: {result}", flush=True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Loading…
Add table
Add a link
Reference in a new issue