feat: implement scan terminal dashboard with real-time market data services and interactive visual components

This commit is contained in:
2569718930@qq.com
2026-05-25 16:48:19 +08:00
parent 21a375a198
commit 045121a457
10 changed files with 391 additions and 21 deletions
+4 -1
View File
@@ -27,6 +27,8 @@ async def scan_terminal(
limit: int = 25,
force_refresh: bool = False,
region: str = "",
trading_region: str = "",
skip_polymarket: bool = False,
):
return await get_scan_terminal_payload(
request,
@@ -40,7 +42,8 @@ async def scan_terminal(
time_range=time_range,
limit=limit,
force_refresh=force_refresh,
region=region if region else None,
region=region or trading_region or None,
skip_polymarket=skip_polymarket,
)
+3 -1
View File
@@ -46,8 +46,10 @@ def normalize_scan_terminal_filters(
or "maxtemp",
"time_range": str(raw.get("time_range") or "today").strip().lower()
or "today",
"limit": max(1, min(safe_int(raw.get("limit"), 25), 100)),
"limit": max(1, min(safe_int(raw.get("limit"), 25), 200)),
"max_spread": max(0.0, _safe_float(raw.get("max_spread")) or 0.03),
"skip_polymarket": str(raw.get("skip_polymarket") or "false").lower()
in {"1", "true", "yes", "on"},
}
trading_region = str(raw.get("trading_region") or "").strip().lower()
if trading_region and trading_region not in ("all", ""):
+2
View File
@@ -47,6 +47,7 @@ async def get_scan_terminal_payload(
limit: int = 25,
force_refresh: bool = False,
region: str = "",
skip_polymarket: bool = False,
) -> Dict[str, Any]:
legacy_routes._assert_entitlement(request)
filters: Dict[str, Any] = {
@@ -59,6 +60,7 @@ async def get_scan_terminal_payload(
"market_type": market_type,
"time_range": time_range,
"limit": limit,
"skip_polymarket": skip_polymarket,
}
if region:
filters["trading_region"] = region