25 lines
951 B
Python
25 lines
951 B
Python
import logging
|
|
import secrets
|
|
|
|
from .http import get_json
|
|
|
|
API_HOST = "http://139.224.247.176:13499"
|
|
MARKET_URL, PERIOD, HTTP_TIMEOUT = "/a/market", "60m", 5.0
|
|
|
|
|
|
def status(payload) -> str:
|
|
value = payload.get("data", payload) if isinstance(payload, dict) else payload
|
|
if isinstance(value, list): value = value[-1] if value else None
|
|
if isinstance(value, dict): value = value.get("action", value.get("status", value.get("signal")))
|
|
result = str(value).strip().upper()
|
|
return result if result in {"UP", "DOWN", "NEUTRAL"} else "UNKNOWN"
|
|
|
|
|
|
def market_allow_open(api_host: str = API_HOST) -> bool:
|
|
url = f"{api_host}{MARKET_URL}?period={PERIOD}&t={secrets.token_urlsafe(12)}"
|
|
try: result = status(get_json(url, HTTP_TIMEOUT))
|
|
except Exception as exc:
|
|
logging.error("获取大盘指数失败: %s %s", url, exc); return False
|
|
logging.info("大盘信号: url=%s status=%s", url, result)
|
|
return result == "UP"
|