兼容864验证后终态缓存卡住的登录状态

This commit is contained in:
liuwei
2026-05-07 14:27:30 +08:00
parent 9a149aa064
commit 14403fac25
3 changed files with 53 additions and 12 deletions

View File

@@ -117,7 +117,20 @@ class LoginMixin(Server864APIClientBase):
)
if verification_url:
normalized["verification_url"] = str(verification_url).strip()
# 864 的扫码状态字段在不同版本里语义并不完全一致:
# 1. 上层运行时需要知道原始 state才能区分“等待扫码 / 安全验证 / 终态缓存未清理”等场景;
# 2. 因此这里除了保留旧的 `state` 字段外,再显式放一份 `raw_state` 供 runtime 做分支;
# 3. 同时把昵称、头像这些已扫描用户信息一并透出,便于 Dashboard 展示最新状态。
state = int(normalized.get("state", 0) or 0)
normalized["raw_state"] = state
if self._pick_first(normalized, "nick_name", "nickName", "NickName"):
normalized["nick_name"] = str(
self._pick_first(normalized, "nick_name", "nickName", "NickName") or ""
).strip()
if self._pick_first(normalized, "head_img_url", "headImgUrl", "HeadImgUrl"):
normalized["head_img_url"] = str(
self._pick_first(normalized, "head_img_url", "headImgUrl", "HeadImgUrl") or ""
).strip()
login_state = str(normalized.get("loginState", "") or "").strip().lower()
return state == 2 or login_state == "online", normalized