Files
live-hub-py/core/huya/__init__.py
T
yml2213 da2cf5a61d feat(huya): 整合 App 协议登录获取 Cookie 全链路并与 Web 登录解耦
- 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 单元测试覆盖全链路
2026-08-26 15:51:30 +08:00

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}")