tt/core/callapi_live.go
2024-05-28 08:47:31 +08:00

95 lines
2.5 KiB
Go

package core
import "github.com/goWxHook/goWxHook/utils/json"
type LiveEnterRequest struct {
ObjectId string `json:"object_id"`
LiveId string `json:"live_id"`
ObjectNonceId string `json:"object_nonce_id"`
}
// LiveEnter 进入直播间
func (w *WxApi) LiveEnter(request LiveEnterRequest) error {
_, err := w.internalCall(0, -1, MtLiveEnterMsg, request, nil)
return err
}
type LiveGetOnlineUserRequest struct {
ObjectId string `json:"object_id"`
LiveId string `json:"live_id"`
ObjectNonceId string `json:"object_nonce_id"`
LastBuff string `json:"last_buff"`
}
type LiveGetOnlineUserResponse struct {
Data interface{} `json:"data"`
Type int `json:"type"`
}
// LiveGetOnlineUser 获取直播间在线用户
func (w *WxApi) LiveGetOnlineUser(request LiveGetOnlineUserRequest) (interface{}, error) {
resp, err := w.internalCall(MtLiveGetOnlineUserMsg, 60, MtLiveGetOnlineUserMsg, request, nil)
if err != nil {
return nil, err
}
var rdata LiveGetOnlineUserResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return rdata.Data, nil
}
type LiveGetChangeInfoResponse struct {
Data interface{} `json:"data"`
Type int `json:"type"`
}
// LiveGetChangeInfo 获取直播间变动信息(人气,实时发言等))
func (w *WxApi) LiveGetChangeInfo() (interface{}, error) {
resp, err := w.internalCall(MtLiveGetChangeInfoMsg, 60, MtLiveGetChangeInfoMsg, map[string]interface{}{}, nil)
if err != nil {
return nil, err
}
var rdata LiveGetChangeInfoResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return rdata.Data, nil
}
type LiveSendMsgRequest struct {
Content string `json:"content"`
}
// LiveSendMsg 发送直播间消息
func (w *WxApi) LiveSendMsg(request LiveSendMsgRequest) error {
_, err := w.internalCall(0, -1, MtLiveSendMsg, request, nil)
return err
}
type LiveGetShelfRequest struct {
LiveUsername string `json:"live_username"`
RequestId string `json:"request_id"`
}
type LiveGetShelfResponse struct {
Data interface{} `json:"data"`
Type int `json:"type"`
}
// LiveGetShelf 获取直播间货架
func (w *WxApi) LiveGetShelf(request LiveGetShelfRequest) (interface{}, error) {
resp, err := w.internalCall(MtLiveGetShelfMsg, 60, MtLiveGetShelfMsg, request, nil)
if err != nil {
return nil, err
}
var rdata LiveGetShelfResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return rdata.Data, nil
}