This commit is contained in:
2026-04-27 12:06:02 +08:00
parent ff022bce5d
commit cf64bc4703
2 changed files with 197 additions and 6 deletions

View File

@@ -801,6 +801,58 @@ async def save_config(request: Request):
return RedirectResponse(url=app_home_url(), status_code=303)
def _logs_tail(n: int = 50) -> List[str]:
return list(service.logs)[-n:] if service.logs else []
@app.post("/api/session/init")
async def api_session_init(request: Request):
"""JSON 初始化:便于面板内展示结果,避免仅依赖 303 与整页刷新排错。"""
denied = json_if_console_unauthed(request)
if denied:
return denied
try:
await service.ensure_ready()
return {
"ok": True,
"connected": service.is_connected(),
"message": "Telegram 客户端已就绪。",
"logs_tail": _logs_tail(50),
}
except Exception as e:
msg = str(e)
service._append(f"初始化失败:{msg}")
return {
"ok": False,
"connected": service.is_connected(),
"error": msg,
"logs_tail": _logs_tail(50),
}
@app.post("/api/session/disconnect")
async def api_session_disconnect(request: Request):
denied = json_if_console_unauthed(request)
if denied:
return denied
try:
await service.disconnect()
return {
"ok": True,
"connected": service.is_connected(),
"message": "已断开 Telegram。",
"logs_tail": _logs_tail(50),
}
except Exception as e:
service._append(f"断开失败:{e}")
return {
"ok": False,
"connected": service.is_connected(),
"error": str(e),
"logs_tail": _logs_tail(50),
}
@app.post("/start")
async def start_scraper(request: Request):
redir = redirect_if_console_unauthed(request)