完善虎牙确认绑定与角色查询

This commit is contained in:
yml2213
2026-07-04 21:06:33 +08:00
parent 7e92008f7b
commit e855d7e449
5 changed files with 430 additions and 13 deletions
+57
View File
@@ -291,6 +291,50 @@ class CheckUserBindGameAccountResp(TafStruct):
}
class ConfirmBindActAccountReq(TafStruct):
"""webActUI.confirmBindActAccount 请求。"""
def __init__(self):
self.userId = ActivityUserId()
self.gid: int = 0
self.outerActId: str = ""
self.bActId: int = 0
def write_to(self, os: TafOutputStream):
os.write_struct(0, self.userId)
os.write_int32(1, self.gid)
os.write_string(2, self.outerActId)
os.write_int32(3, self.bActId)
def read_from(self, ins: TafInputStream):
self.userId = ins.read_struct(0, ActivityUserId) or self.userId
self.gid = ins.read_int32(1, default=self.gid)
self.outerActId = ins.read_string(2, default=self.outerActId)
self.bActId = ins.read_int32(3, default=self.bActId)
class ConfirmBindActAccountResp(TafStruct):
"""webActUI.confirmBindActAccount 响应。"""
def __init__(self):
self.status: int = 0
self.msg: str = ""
def read_from(self, ins: TafInputStream):
self.status = ins.read_int32(0, default=self.status)
self.msg = ins.read_string(1, default=self.msg)
def write_to(self, os: TafOutputStream):
os.write_int32(0, self.status)
os.write_string(1, self.msg)
def to_dict(self) -> dict:
return {
"status": self.status,
"msg": self.msg,
}
class GetLiveLinkParamReq(TafStruct):
"""webActUI.getLiveLinkParam 请求。"""
@@ -508,6 +552,19 @@ def _self_check():
assert parsed_link.status == 200
assert parsed_link.livelinkParam["actId"] == "17096"
confirm_rsp = ConfirmBindActAccountResp()
confirm_rsp.status = 200
confirm_rsp.msg = "请求成功"
os = TafOutputStream()
os.write_struct(0, confirm_rsp)
ins = TafInputStream(os.get_bytes())
_, dtype = ins.read_head()
assert dtype == TafType.STRUCT_BEGIN
parsed_confirm = ConfirmBindActAccountResp()
parsed_confirm.read_from(ins)
assert parsed_confirm.status == 200
assert parsed_confirm.msg == "请求成功"
if __name__ == "__main__":
_self_check()
+26
View File
@@ -301,6 +301,32 @@ class HuyaHttpClient:
timeout=timeout,
)
def confirm_bind_act_account(
self,
uid: int,
cookie: str,
b_act_id: int,
gid: int = 0,
outer_act_id: str = "",
timeout: float = 15.0,
):
"""确认虎牙号与当前活动的游戏账号绑定关系。"""
from .activity_structs import ConfirmBindActAccountReq, ConfirmBindActAccountResp
req = ConfirmBindActAccountReq()
req.userId = self._build_activity_user(uid, cookie)
req.gid = int(gid or 0)
req.outerActId = str(outer_act_id or "")
req.bActId = int(b_act_id or 0)
return self.call_rpc(
"webActUI",
"confirmBindActAccount",
req,
ConfirmBindActAccountResp,
uid=uid,
cookie=cookie,
timeout=timeout,
)
def get_live_link_param(
self,
uid: int,