chore: общие правки

This commit is contained in:
protokey committed 2026-09-10 22:43:52 +04:00
1 parent c0d2d98911
commit 1a45976356
4 files changed
+32 -17

No files matched your search

+22 -11
View File
@@ -25,25 +25,36 @@ async def click(page: Page, act: ActionRequest) -> str | None:
... ...
@register
async def inner_html(page: Page, act: ActionRequest) -> str | None:
assert act.selector
element = await page.query_selector(act.selector)
return await element.inner_html()
@register @register
async def wait_for(page: Page, act: ActionRequest) -> str | None: async def wait_for(page: Page, act: ActionRequest) -> str | None:
try: assert act.selector
assert act.selector assert 1 <= act.timeout <= 7200
await page.wait_for_selector(act.selector, timeout=act.timeout * 1000) await page.wait_for_selector(act.selector, timeout=act.timeout * 1000)
except Exception as e:
return str(e)
else:
return None
async def execute(page: Page, actions: list[ActionRequest]) -> list[str]: async def execute(page: Page, actions: list[ActionRequest]) -> list[dict]:
actions_result = [] actions_result = []
for act in actions: for act in actions:
new_line = {
"type": act.type,
}
try: try:
await _actions[act.type](page, act) result = await _actions[act.type](page, act)
except Exception as e: except Exception as e:
actions_result.append({"type": act.type, "ok": "false", "error": str(e)}) new_line["ok"] = False
new_line["result"] = str(e)
actions_result.append(new_line)
break break
else: else:
actions_result.append({"type": act.type, "ok": "true"}) new_line["ok"] = True
if result:
new_line["result"] = result
actions_result.append(new_line)
return actions_result return actions_result
+1
View File
@@ -24,3 +24,4 @@ class SolveRequest(BaseModel):
timeout: int | None = None timeout: int | None = None
screen: str = "1280x720" screen: str = "1280x720"
user_agent: str | None = None user_agent: str | None = None
html: bool = False
+6 -3
View File
@@ -140,10 +140,13 @@ async def solve(
) )
BROWSER_SLOTS += 1 BROWSER_SLOTS += 1
return { result = {
"status": ["err", "ok"][status], "status": ["err", "ok"][status],
"html": html,
"cookies": cookies, "cookies": cookies,
"actions": actions_result, "actions": actions_result,
"error": error,
} }
if payload.html:
result["html"] = html
if error:
result["error"] = error
return result
+3 -3
View File
@@ -37,14 +37,15 @@ POST http://127.0.0.1:8000/v1/solve
Accept: application/json Accept: application/json
Content-Type: application/json Content-Type: application/json
X-API-Key: <key> X-API-Key: <key>
Cookie: session_id=b8f770a3-38c2-45f2-944b-2703798e3503; Path=/; SameSite=lax Cookie: session_id=2f2100be-6ce7-40d5-bae5-61424b2504c8; Path=/; SameSite=lax
{ {
"url": "https://browserleaks.com/canvas", "url": "https://browserleaks.com/canvas",
"proxy": "-", "proxy": "-",
"actions": [ "actions": [
{"type": "wait_for", "selector": "#gl-image-src1", "timeout": 30} {"type": "wait_for", "selector": "#canvas-hash", "timeout": 10},
{"type": "inner_html", "selector": "#canvas-hash"}
] ]
} }
@@ -53,7 +54,6 @@ POST http://127.0.0.1:8000/v1/solve
Accept: application/json Accept: application/json
Content-Type: application/json Content-Type: application/json
X-API-Key: <key> X-API-Key: <key>
Cookie: session_id=b8f770a3-38c2-45f2-944b-2703798e3503; Path=/; SameSite=lax
{ {