清理虎牙登录旧数据依赖并统一动态环境
This commit is contained in:
@@ -39,6 +39,7 @@ from .app_login import HuyaAppPasswordLogin
|
||||
from .device_profile import (
|
||||
_load_db,
|
||||
_save_db,
|
||||
canonical_account_key,
|
||||
get_profile, # 幂等画像: 同账号永远复用同一套 (data/huya_device_profiles.json)
|
||||
)
|
||||
|
||||
@@ -68,9 +69,10 @@ def get_or_create_env(account: str, force_new: bool = False) -> dict:
|
||||
(R36 解密真实结构), 每账号独立生成终身复用 → 一号一设备的一致性来源;
|
||||
当前注册链服务端不校验 cw 内容, 此字段为后续真实载荷构建预留
|
||||
"""
|
||||
env = get_profile(account, force_new=force_new)
|
||||
key = canonical_account_key(account)
|
||||
env = get_profile(key, force_new=force_new)
|
||||
db = _load_db()
|
||||
record = dict(db.get(account) or env)
|
||||
record = dict(db.get(key) or env)
|
||||
changed = False
|
||||
# guid32 / hebe: 一号一致字段, 首次生成后终身不变
|
||||
if "guid32" not in record:
|
||||
@@ -82,7 +84,7 @@ def get_or_create_env(account: str, force_new: bool = False) -> dict:
|
||||
}
|
||||
changed = True
|
||||
if changed:
|
||||
db[account] = record
|
||||
db[key] = record
|
||||
_save_db(db)
|
||||
return record
|
||||
|
||||
@@ -102,7 +104,8 @@ def bind_and_login(
|
||||
就是本环境的 40hex → 签发的 t2/t5 与环境绑定); safe_auth 滑块过验后的重发
|
||||
沿用同一组设备字段 (app_login.login_cred_with_flow)。
|
||||
"""
|
||||
env = get_or_create_env(account, force_new=force_new_device)
|
||||
key = canonical_account_key(account)
|
||||
env = get_or_create_env(key, force_new=force_new_device)
|
||||
print(
|
||||
f"[env] {account} ↔ {env.get('vendor')}/{env.get('model')} "
|
||||
f"fp40={env.get('fingerprint', '')[:12]}... guid32={env.get('guid32', '')[:12]}... "
|
||||
@@ -124,14 +127,14 @@ def bind_and_login(
|
||||
|
||||
# ---- 绑定元数据回写 (令牌不入库: t2/t5 每次登录实时签发, 环境才是长期身份) ----
|
||||
db = _load_db()
|
||||
record = dict(db.get(account) or env)
|
||||
record = dict(db.get(key) or env)
|
||||
record.setdefault("bound_at", int(time.time())) # 首次绑定时间
|
||||
record["last_login"] = {
|
||||
"ok": result.success,
|
||||
"msg": result.message[:120],
|
||||
"at": int(time.time()),
|
||||
}
|
||||
db[account] = record
|
||||
db[key] = record
|
||||
_save_db(db)
|
||||
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user