增加验收设备管理与动态资源调度
This commit is contained in:
@@ -22,6 +22,8 @@ from playwright.sync_api import sync_playwright
|
||||
from config import Config
|
||||
from crawler_client import (
|
||||
collect_keyword_sources,
|
||||
create_xapi_device,
|
||||
delete_xapi_device,
|
||||
fetch_content_detail,
|
||||
get_wen_resources,
|
||||
list_xhs_wen_xapi_devices,
|
||||
@@ -1162,13 +1164,16 @@ def _copy_acceptance_task(public_id: str, *, trigger_source: str = "acceptance")
|
||||
WHERE task_id=? AND secret_type='custom_cookie'""",
|
||||
(task["id"],),
|
||||
).fetchone()
|
||||
current_device_count = task["device_count"]
|
||||
if task["acceptance_method"] in {"screenshot", "combined"} and task["use_all_devices"]:
|
||||
current_device_count = max(1, int(get_wen_resources().get("device_count") or 0))
|
||||
child = create_acceptance_task({
|
||||
"name": task["name"],
|
||||
"acceptance_method": task["acceptance_method"],
|
||||
"feishu_links": links,
|
||||
"keywords": keywords,
|
||||
"match_keywords": match_keywords,
|
||||
"device_count": task["device_count"],
|
||||
"device_count": current_device_count,
|
||||
"created_by_id": task["created_by_id"],
|
||||
"created_by_name": task["created_by_name"],
|
||||
"custom_cookie": secret["secret_value"] if secret else None,
|
||||
@@ -1176,8 +1181,9 @@ def _copy_acceptance_task(public_id: str, *, trigger_source: str = "acceptance")
|
||||
})
|
||||
with connection() as conn:
|
||||
conn.execute(
|
||||
"UPDATE acceptance_tasks SET scheduled_from_task_id=? WHERE public_task_id=?",
|
||||
(task["id"], child["task_id"]),
|
||||
"""UPDATE acceptance_tasks SET scheduled_from_task_id=?,dashboard_batch_key=?,
|
||||
use_all_devices=? WHERE public_task_id=?""",
|
||||
(task["id"], task["dashboard_batch_key"], task["use_all_devices"], child["task_id"]),
|
||||
)
|
||||
return get_acceptance_task(child["task_id"])
|
||||
|
||||
@@ -1663,6 +1669,8 @@ def _task_dict(conn, task) -> dict[str, Any]:
|
||||
"acceptance_method": task["acceptance_method"], "status": task["status"],
|
||||
"progress_percent": task["progress_percent"], "device_count": task["device_count"],
|
||||
"cookie_count": task["cookie_count"],
|
||||
"dashboard_batch_key": task["dashboard_batch_key"],
|
||||
"use_all_devices": bool(task["use_all_devices"]),
|
||||
"schedule_enabled": bool(task["schedule_enabled"]),
|
||||
"schedule_weekday": task["schedule_weekday"],
|
||||
"schedule_weekdays": _decode_json(task["schedule_weekdays"], None) or (
|
||||
@@ -1700,6 +1708,18 @@ def list_acceptance_tasks() -> dict[str, Any]:
|
||||
return {"items": items, "total": len(items)}
|
||||
|
||||
|
||||
def create_acceptance_device(data: dict[str, Any]) -> dict[str, Any]:
|
||||
result = create_xapi_device(data)
|
||||
result["resources"] = get_acceptance_resources()
|
||||
return result
|
||||
|
||||
|
||||
def remove_acceptance_device(account_id: str) -> dict[str, Any]:
|
||||
result = delete_xapi_device(account_id)
|
||||
result["resources"] = get_acceptance_resources()
|
||||
return result
|
||||
|
||||
|
||||
def list_acceptance_notes(public_id: str) -> dict[str, Any]:
|
||||
with connection() as conn:
|
||||
task = conn.execute("SELECT id FROM acceptance_tasks WHERE public_task_id=?", (public_id,)).fetchone()
|
||||
|
||||
Reference in New Issue
Block a user