type: 收窄活动客户端响应类型

This commit is contained in:
yml2213
2026-08-30 19:52:55 +08:00
parent 0efd84a281
commit 40e6f482b4
+19 -15
View File
@@ -6,7 +6,7 @@ import json
import re import re
import time import time
from collections.abc import Callable from collections.abc import Callable
from typing import Any from typing import Any, cast
from urllib.parse import parse_qs, unquote, urlsplit, urlunsplit from urllib.parse import parse_qs, unquote, urlsplit, urlunsplit
import requests import requests
@@ -1692,12 +1692,10 @@ class DouyuActivityClient:
info = self._xpd_parse_var(response.text, "info") info = self._xpd_parse_var(response.text, "info")
if str(info.get("ret") or "0") != "0": if str(info.get("ret") or "0") != "0":
raise DouyuActivityError(str(info.get("msg") or "小店购买记录查询失败")) raise DouyuActivityError(str(info.get("msg") or "小店购买记录查询失败"))
data: dict[str, Any] = ( raw_data = info.get("data")
info.get("data") if isinstance(info.get("data"), dict) else {} data = cast(dict[str, Any], raw_data) if isinstance(raw_data, dict) else {}
) raw_records = data.get("list")
page_records: list[Any] = ( page_records = raw_records if isinstance(raw_records, list) else []
data.get("list") if isinstance(data.get("list"), list) else []
)
total = self._xpd_int(data.get("cnt")) or total total = self._xpd_int(data.get("cnt")) or total
pages.append(info) pages.append(info)
@@ -1788,7 +1786,8 @@ class DouyuActivityClient:
) )
if payload.get("error") not in (0, "0", None): if payload.get("error") not in (0, "0", None):
raise DouyuActivityError(payload.get("msg") or "生成小店绑定二维码失败") 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 "") url = str(data.get("url") or "")
if not url: if not url:
raise DouyuActivityError(f"生成小店绑定二维码失败: {payload}") raise DouyuActivityError(f"生成小店绑定二维码失败: {payload}")
@@ -1809,14 +1808,19 @@ class DouyuActivityClient:
) )
if payload.get("error") not in (0, "0", None): if payload.get("error") not in (0, "0", None):
raise DouyuActivityError(payload.get("msg") or "查询小店绑定信息失败") raise DouyuActivityError(payload.get("msg") or "查询小店绑定信息失败")
data: dict[str, Any] = ( raw_data = payload.get("data")
payload.get("data") if isinstance(payload.get("data"), dict) else {} 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] = ( raw_game_account = data.get("gameAccount")
data.get("gameRole") if isinstance(data.get("gameRole"), dict) else {} game_account = (
) cast(dict[str, Any], raw_game_account)
game_account: dict[str, Any] = ( if isinstance(raw_game_account, dict)
data.get("gameAccount") if isinstance(data.get("gameAccount"), dict) else {} else {}
) )
return { return {
"bind_account": self._xpd_int(data.get("bindAccount")), "bind_account": self._xpd_int(data.get("bindAccount")),