qq 登录修复

This commit is contained in:
yml2213
2026-08-12 19:45:15 +08:00
parent 5074faf9f6
commit 4c978b923b
7 changed files with 88 additions and 19 deletions
@@ -123,10 +123,17 @@ class Cmall:
def roles(self, zone_id: str) -> list[dict[str, str]]:
response = self.query("15", use_currency_offerid="1", zoneid=zone_id)
roles = response.get("role_info") or response.get("role_list") or []
return [{"role_id": str(item.get("role_id", "")),
"name": unquote(str(item.get("role_name", ""))),
"ban_status": str(item.get("ban_status", ""))}
for item in roles if isinstance(item, dict) and item.get("role_id")]
# QQ 平台和平精英的 area 与 zoneid 不同(如 area=2, zoneid=1)
# PlaceOrder 校验角色时需要该分区信息,随角色一并返回。
partition = response.get("partition_info") or {}
return [{
"role_id": str(item.get("role_id", "")),
"name": unquote(str(item.get("role_name", ""))),
"ban_status": str(item.get("ban_status", "")),
"area": str(partition.get("area", "")),
"partition": str(partition.get("partition", "")),
"platid": str(partition.get("platid", "")),
} for item in roles if isinstance(item, dict) and item.get("role_id")]
def choose(label: str, options: list[dict], display) -> dict: