diff --git a/core/douyu/activity_client.py b/core/douyu/activity_client.py index dd40f01..92b89c2 100644 --- a/core/douyu/activity_client.py +++ b/core/douyu/activity_client.py @@ -6,7 +6,7 @@ import json import re import time from collections.abc import Callable -from typing import Any +from typing import Any, cast from urllib.parse import parse_qs, unquote, urlsplit, urlunsplit import requests @@ -1692,12 +1692,10 @@ class DouyuActivityClient: info = self._xpd_parse_var(response.text, "info") if str(info.get("ret") or "0") != "0": raise DouyuActivityError(str(info.get("msg") or "小店购买记录查询失败")) - data: dict[str, Any] = ( - info.get("data") if isinstance(info.get("data"), dict) else {} - ) - page_records: list[Any] = ( - data.get("list") if isinstance(data.get("list"), list) else [] - ) + raw_data = info.get("data") + data = cast(dict[str, Any], raw_data) if isinstance(raw_data, dict) else {} + raw_records = data.get("list") + page_records = raw_records if isinstance(raw_records, list) else [] total = self._xpd_int(data.get("cnt")) or total pages.append(info) @@ -1788,7 +1786,8 @@ class DouyuActivityClient: ) if payload.get("error") not in (0, "0", None): raise DouyuActivityError(payload.get("msg") or "生成小店绑定二维码失败") - data = payload.get("data") or {} + raw_data = payload.get("data") + data = cast(dict[str, Any], raw_data) if isinstance(raw_data, dict) else {} url = str(data.get("url") or "") if not url: raise DouyuActivityError(f"生成小店绑定二维码失败: {payload}") @@ -1809,14 +1808,19 @@ class DouyuActivityClient: ) if payload.get("error") not in (0, "0", None): raise DouyuActivityError(payload.get("msg") or "查询小店绑定信息失败") - data: dict[str, Any] = ( - payload.get("data") if isinstance(payload.get("data"), dict) else {} + raw_data = payload.get("data") + data = cast(dict[str, Any], raw_data) if isinstance(raw_data, dict) else {} + raw_game_role = data.get("gameRole") + game_role = ( + cast(dict[str, Any], raw_game_role) + if isinstance(raw_game_role, dict) + else {} ) - game_role: dict[str, Any] = ( - data.get("gameRole") if isinstance(data.get("gameRole"), dict) else {} - ) - game_account: dict[str, Any] = ( - data.get("gameAccount") if isinstance(data.get("gameAccount"), dict) else {} + raw_game_account = data.get("gameAccount") + game_account = ( + cast(dict[str, Any], raw_game_account) + if isinstance(raw_game_account, dict) + else {} ) return { "bind_account": self._xpd_int(data.get("bindAccount")),