- core/huya: 新增 app_login, wup_encoder, nonce_forge, cert_forge, envelope_forge, device_profile, udb_aes - core/huya/__init__.py: 导出 login_huya_app_password 与 HuyaAppPasswordLogin - web/backend: 新增 /accounts/app-password-login 与 /accounts/app-password-login/selected 路由及 Schema,与原 Web 密码登录独立分开 - web/frontend: 增加 App 登录 API 与前端界面“App 登录选中”操作,弹窗结果明确区分 - tests: 新增 test_huya_app_login.py 单元测试覆盖全链路
117 lines
3.4 KiB
Python
117 lines
3.4 KiB
Python
"""虎牙协议与业务客户端。"""
|
|
|
|
from .http_client import HuyaHttpClient
|
|
from .wss_client import HuyaWssClient
|
|
|
|
__all__ = [
|
|
"HuyaHttpClient",
|
|
"HuyaWssClient",
|
|
"GetUserScoreReq",
|
|
"GetUserScoreResp",
|
|
"HuyaCredentialError",
|
|
"HuyaLoginError",
|
|
"HuyaLoginResult",
|
|
"HuyaPasswordLogin",
|
|
"HuyaAppLoginError",
|
|
"HuyaAppQrAuthRequiredError",
|
|
"HuyaAppPasswordLogin",
|
|
"HuyaSmsCodeResult",
|
|
"HuyaSmsLogin",
|
|
"HuyaVerificationError",
|
|
"HuyaVerificationSolver",
|
|
"login_huya_password",
|
|
"login_huya_app_password",
|
|
"login_huya_sms",
|
|
"send_huya_sms_code",
|
|
"solve_huya_verification",
|
|
]
|
|
|
|
|
|
def __getattr__(name: str):
|
|
if name in {"GetUserScoreReq", "GetUserScoreResp"}:
|
|
from .activity_structs import GetUserScoreReq, GetUserScoreResp
|
|
|
|
values = {
|
|
"GetUserScoreReq": GetUserScoreReq,
|
|
"GetUserScoreResp": GetUserScoreResp,
|
|
}
|
|
globals().update(values)
|
|
return values[name]
|
|
if name in {
|
|
"HuyaCredentialError",
|
|
"HuyaLoginError",
|
|
"HuyaLoginResult",
|
|
"HuyaPasswordLogin",
|
|
"login_huya_password",
|
|
}:
|
|
from .login import (
|
|
HuyaCredentialError,
|
|
HuyaLoginError,
|
|
HuyaLoginResult,
|
|
HuyaPasswordLogin,
|
|
login_huya_password,
|
|
)
|
|
|
|
values = {
|
|
"HuyaCredentialError": HuyaCredentialError,
|
|
"HuyaLoginError": HuyaLoginError,
|
|
"HuyaLoginResult": HuyaLoginResult,
|
|
"HuyaPasswordLogin": HuyaPasswordLogin,
|
|
"login_huya_password": login_huya_password,
|
|
}
|
|
globals().update(values)
|
|
return values[name]
|
|
if name in {
|
|
"HuyaAppLoginError",
|
|
"HuyaAppQrAuthRequiredError",
|
|
"HuyaAppPasswordLogin",
|
|
"login_huya_app_password",
|
|
}:
|
|
from .app_login import (
|
|
HuyaAppLoginError,
|
|
HuyaAppQrAuthRequiredError,
|
|
HuyaAppPasswordLogin,
|
|
login_huya_app_password,
|
|
)
|
|
|
|
values = {
|
|
"HuyaAppLoginError": HuyaAppLoginError,
|
|
"HuyaAppQrAuthRequiredError": HuyaAppQrAuthRequiredError,
|
|
"HuyaAppPasswordLogin": HuyaAppPasswordLogin,
|
|
"login_huya_app_password": login_huya_app_password,
|
|
}
|
|
globals().update(values)
|
|
return values[name]
|
|
if name in {
|
|
"HuyaSmsCodeResult",
|
|
"HuyaSmsLogin",
|
|
"login_huya_sms",
|
|
"send_huya_sms_code",
|
|
}:
|
|
from .sms_login import (
|
|
HuyaSmsCodeResult,
|
|
HuyaSmsLogin,
|
|
login_huya_sms,
|
|
send_huya_sms_code,
|
|
)
|
|
|
|
values = {
|
|
"HuyaSmsCodeResult": HuyaSmsCodeResult,
|
|
"HuyaSmsLogin": HuyaSmsLogin,
|
|
"login_huya_sms": login_huya_sms,
|
|
"send_huya_sms_code": send_huya_sms_code,
|
|
}
|
|
globals().update(values)
|
|
return values[name]
|
|
if name in {"HuyaVerificationError", "HuyaVerificationSolver", "solve_huya_verification"}:
|
|
from .verification import HuyaVerificationError, HuyaVerificationSolver, solve_huya_verification
|
|
|
|
values = {
|
|
"HuyaVerificationError": HuyaVerificationError,
|
|
"HuyaVerificationSolver": HuyaVerificationSolver,
|
|
"solve_huya_verification": solve_huya_verification,
|
|
}
|
|
globals().update(values)
|
|
return values[name]
|
|
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|