- SixClient中引入异步请求方法try_get_url获取并验证备用主机地址 - 初始化__base_url时支持异步调用,提升启动时灵活性 - _do_post与相关异步请求方法改用异常抛出替代返回None规范错误处理 - 修正部分解码逻辑,确保签名等字段的正确Base64和URL解码 - 代码中添加日志和重试机制以提升异常处理和调试能力 - 删除june模块中遗留的单元测试代码 - 调整june模型中字段类型,支持可选字符串以增强健壮性 - apps/apple/clients/itunes中添加Field默认值,防止字段缺失错误 - itunes解析XML相关函数增强健壮性,避免空指针异常 - core.clients.http_client支持完整http路径调用,注释掉自动抛错逻辑以兼容特殊响应 - base.py中retry_backoff类型显式定义为float,提高代码类型安全性
95 lines
3.2 KiB
Python
95 lines
3.2 KiB
Python
from datetime import datetime
|
|
from typing import Any, TypeVar, Generic
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class LoginUserInfo(BaseModel):
|
|
token: str = Field(default="")
|
|
userName: str = Field(default="")
|
|
userPwd: str = Field(default="")
|
|
integral: int = Field(default=0)
|
|
freezeIntegral: int = Field(default=0)
|
|
userNumber: str = Field(default="")
|
|
guid: str = Field(default="")
|
|
uid: str = Field(default="")
|
|
|
|
|
|
class LoginSessionInfo(BaseModel):
|
|
integral: int = Field(default=0)
|
|
userType: str = Field(default="")
|
|
userNumber: str = Field(default="")
|
|
userTypeName: str = Field(default="")
|
|
expirationTime: datetime = Field(default=datetime.now())
|
|
freezeIntegral: int = Field(default=0)
|
|
serverIndex: int = Field(default=0)
|
|
|
|
|
|
class Cookies(BaseModel):
|
|
wosid: str | None = Field(None, alias="wosid")
|
|
woinst: str | None = Field(None, alias="woinst")
|
|
ns_mzf_inst: str = Field(..., alias="ns-mzf-inst")
|
|
mzf_in: str | None = Field(None, alias="mzf_in")
|
|
mzf_dr: str | None = Field(None, alias="mzf_dr")
|
|
hsaccnt: str | None = Field(None, alias="hsaccnt")
|
|
session_store_id: str = Field(..., alias="session-store-id")
|
|
X_Dsid: str = Field(..., alias="X-Dsid")
|
|
mz_at0_135096725: str = Field(..., alias="mz_at0-135096725")
|
|
ampsc: str | None = Field(None, alias="ampsc")
|
|
mz_at_ssl_135096725: str = Field(..., alias="mz_at_ssl-135096725")
|
|
mz_at_mau_135096725: str = Field(..., alias="mz_at_mau-135096725")
|
|
pldfltcid: str | None = Field(None, alias="pldfltcid")
|
|
tv_pldfltcid: str = Field(..., alias="tv-pldfltcid")
|
|
wosid_lite: str = Field(..., alias="wosid-lite")
|
|
itspod: str | None = Field(None, alias="itspod")
|
|
|
|
|
|
class RemoteCookieModel(BaseModel):
|
|
msg: str = Field(..., alias="msg")
|
|
Balance: str = Field(..., alias="Balance")
|
|
Area: str = Field(..., alias="Area")
|
|
UserAgent: str = Field(..., alias="UserAgent")
|
|
cookis: Cookies = Field(..., alias="cookis")
|
|
xtoken: str = Field(..., alias="xtoken")
|
|
dsis: str = Field(..., alias="dsis")
|
|
Kbsync: Any = Field(..., alias="Kbsync")
|
|
software: str = Field(..., alias="software")
|
|
Guid: str = Field(..., alias="Guid")
|
|
ServerId: str = Field(..., alias="ServerId")
|
|
isDisabledAccount: str = Field(..., alias="isDisabledAccount")
|
|
|
|
|
|
class LoginSignatureModel(BaseModel):
|
|
msg: str = Field(..., alias="msg")
|
|
signature: str = Field(..., alias="signature")
|
|
serverId: str = Field(..., alias="serverId")
|
|
adder1: int = Field(..., alias="adder1")
|
|
adder2: int = Field(..., alias="adder2")
|
|
userAgent: str = Field(..., alias="userAgent")
|
|
|
|
|
|
class AppleAccountModel(BaseModel):
|
|
account: str = Field(default="")
|
|
password: str = Field(default="")
|
|
|
|
|
|
class ItunesLoginModel(BaseModel):
|
|
server_id: str = Field(default="")
|
|
dsis: int = Field(default=0)
|
|
guid: str = Field(default="")
|
|
password_token: str = Field(default="", alias="passwordToken")
|
|
|
|
|
|
# 泛型
|
|
DataT = TypeVar("DataT")
|
|
|
|
|
|
class AppleSixResponseModel(BaseModel, Generic[DataT]):
|
|
Code: str = Field(default="")
|
|
Message: str = Field(default="")
|
|
Data: DataT = Field()
|
|
serverIndex: int = Field(default=0)
|
|
extend: str = Field(default="")
|
|
authenUserInfo: str = Field(default="")
|
|
platformName: str = Field(default="")
|