优化864登录三态展示并更新适配路线文档

This commit is contained in:
liuwei
2026-05-07 12:28:59 +08:00
parent 539bebd58b
commit 8579b7ec27
5 changed files with 194 additions and 3 deletions

View File

@@ -446,6 +446,10 @@ class Robot:
"logged_in": False,
"active": False,
"status": "idle",
"provider_name": "",
"provider_stage": "bootstrap",
"connection_ready": False,
"login_required": False,
"status_text": "尚未进入扫码登录流程",
"current": {},
"history": [],
@@ -485,10 +489,21 @@ class Robot:
with self._ipad_login_qr_lock:
login_state_flag = bool(self.ipad_login_qr_state.get("logged_in", False))
qr_status = str(self.ipad_login_qr_state.get("status", "idle") or "idle")
provider_name = str(
self.ipad_login_qr_state.get("provider_name", self.ipad_config.get("server_type", "") if self.ipad_config else "")
or ""
).strip()
provider_stage = str(self.ipad_login_qr_state.get("provider_stage", "bootstrap") or "bootstrap").strip()
connection_ready = bool(self.ipad_login_qr_state.get("connection_ready", False))
login_required = bool(self.ipad_login_qr_state.get("login_required", False))
state = {
"logged_in": bool(self.wxid) or login_state_flag or qr_status in {"confirmed", "logged_in"},
"active": bool(self.ipad_login_qr_state.get("active", False)),
"status": qr_status,
"provider_name": provider_name,
"provider_stage": provider_stage,
"connection_ready": connection_ready,
"login_required": login_required,
"status_text": str(
self.ipad_login_qr_state.get("status_text", "尚未进入扫码登录流程") or "尚未进入扫码登录流程"
),
@@ -520,6 +535,13 @@ class Robot:
status = str((payload or {}).get("status", "waiting") or "waiting").strip() or "waiting"
status_text = str((payload or {}).get("status_text", "等待扫码登录") or "等待扫码登录").strip()
login_source = str((payload or {}).get("login_source", "fresh_qr") or "fresh_qr").strip()
provider_name = str(
(payload or {}).get("provider_name", self.ipad_config.get("server_type", "") if self.ipad_config else "")
or ""
).strip()
provider_stage = str((payload or {}).get("provider_stage", "waiting_scan") or "waiting_scan").strip()
connection_ready = bool((payload or {}).get("connection_ready", False))
login_required = bool((payload or {}).get("login_required", True))
expires_in = (payload or {}).get("expires_in")
expires_in = None if expires_in in (None, "") else max(0, int(expires_in))
current_record = {
@@ -530,6 +552,10 @@ class Robot:
"status": status,
"status_text": status_text,
"login_source": login_source,
"provider_name": provider_name,
"provider_stage": provider_stage,
"connection_ready": connection_ready,
"login_required": login_required,
"updated_at": now_ts,
"updated_at_text": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(now_ts)),
}
@@ -559,6 +585,10 @@ class Robot:
"logged_in": False,
"active": status != "confirmed",
"status": status,
"provider_name": provider_name,
"provider_stage": provider_stage,
"connection_ready": connection_ready,
"login_required": login_required,
"status_text": status_text,
"current": current_record,
"history": history_records,
@@ -571,6 +601,13 @@ class Robot:
status = str((payload or {}).get("status", "idle") or "idle").strip() or "idle"
status_text = str((payload or {}).get("status_text", "登录流程已结束") or "登录流程已结束").strip()
cleared_uuid = str((payload or {}).get("uuid", "") or "").strip()
provider_name = str(
(payload or {}).get("provider_name", self.ipad_config.get("server_type", "") if self.ipad_config else "")
or ""
).strip()
provider_stage = str((payload or {}).get("provider_stage", "logged_in") or "logged_in").strip()
connection_ready = bool((payload or {}).get("connection_ready", True))
login_required = bool((payload or {}).get("login_required", False))
with self._ipad_login_qr_lock:
history_records = list(self.ipad_login_qr_state.get("history", []) or [])
@@ -586,6 +623,10 @@ class Robot:
"logged_in": status in {"confirmed", "logged_in"} or bool(self.wxid),
"active": False,
"status": status,
"provider_name": provider_name,
"provider_stage": provider_stage,
"connection_ready": connection_ready,
"login_required": login_required,
"status_text": status_text,
"current": {},
"history": history_records[:3],