95 lines
2.5 KiB
Go
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
|
||
|
}
|