fix(douyu): 修复未换绑成功时角色信息被待确认新角色污染 & 增加绑定接口明细日志
This commit is contained in:
@@ -247,7 +247,27 @@ class DouyuActivityClient:
|
||||
)
|
||||
if payload.get("error") not in (0, "0", None):
|
||||
raise DouyuActivityError(payload.get("msg") or "查询绑定信息失败")
|
||||
return self._parse_bind_info(payload, act_alias=act_alias, api_version="v2" if v2 else "v1")
|
||||
parsed = self._parse_bind_info(payload, act_alias=act_alias, api_version="v2" if v2 else "v1")
|
||||
self._log_bind_info(parsed)
|
||||
return parsed
|
||||
|
||||
def _log_bind_info(self, parsed: dict[str, Any]) -> None:
|
||||
"""输出绑定信息接口返回的角色明细(用于排查两个接口/多个 alias 的角色差异)。"""
|
||||
self.logger(
|
||||
f"查询绑定信息明细 api={parsed.get('api_version') or '-'} "
|
||||
f"act={parsed.get('act_alias') or '-'} "
|
||||
f"role={parsed.get('role_name') or '-'} "
|
||||
f"area={parsed.get('area_name') or '-'} plat={parsed.get('plat_name') or '-'} "
|
||||
f"nick={parsed.get('nickname') or '-'} "
|
||||
f"bound_account={1 if parsed.get('is_bound_account') else 0} "
|
||||
f"bound_role={1 if parsed.get('is_bound_role') else 0} "
|
||||
f"bound_act={1 if parsed.get('is_bound_act') else 0} "
|
||||
f"need_act={1 if parsed.get('need_bind_act') else 0} "
|
||||
f"need_role={1 if parsed.get('need_bind_role') else 0} "
|
||||
f"wait={parsed.get('change_role_wait_time') if parsed.get('change_role_wait_time') is not None else '-'} "
|
||||
f"can_change_role={parsed.get('can_change_role')} "
|
||||
f"can_change_time={parsed.get('can_change_time') if parsed.get('can_change_time') is not None else '-'}"
|
||||
)
|
||||
|
||||
def _parse_bind_info(self, payload: dict[str, Any], *, act_alias: str, api_version: str) -> dict[str, Any]:
|
||||
"""统一解析不同活动的腾讯游戏绑定信息。"""
|
||||
@@ -321,7 +341,9 @@ class DouyuActivityClient:
|
||||
)
|
||||
if payload.get("error") not in (0, "0", None):
|
||||
raise DouyuActivityError(payload.get("msg") or "查询电竞手册绑定信息失败")
|
||||
return self._parse_bind_info(payload, act_alias=act_alias, api_version="esports")
|
||||
parsed = self._parse_bind_info(payload, act_alias=act_alias, api_version="esports")
|
||||
self._log_bind_info(parsed)
|
||||
return parsed
|
||||
|
||||
def get_esports_bind_qr(self, act_alias: str) -> dict[str, Any]:
|
||||
"""生成电竞手册的腾讯角色绑定二维码链接。"""
|
||||
|
||||
Reference in New Issue
Block a user