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

486 lines
16 KiB
Go

package core
import "github.com/goWxHook/goWxHook/utils/json"
type VideoMomentInitResponseData struct {
AliasInfo []struct {
AliasMsgName string `json:"aliasMsgName"`
AliasVersion int `json:"aliasVersion"`
HeadImgUrl string `json:"headImgUrl"`
Nickname string `json:"nickname"`
RoleType int `json:"roleType"`
} `json:"aliasInfo"`
BaseResponse struct {
ErrMsg struct {
String string `json:"string"`
} `json:"errMsg"`
Ret int `json:"ret"`
} `json:"baseResponse"`
Cmdlist []interface{} `json:"cmdlist"`
ContinueFlag int `json:"continueFlag"`
CurrentAliasRoleType int `json:"currentAliasRoleType"`
FinderUsernameList []struct {
FinderUsernameList string `json:"finderUsernameList"`
} `json:"finderUsernameList"`
Keybuf struct {
Buffer string `json:"buffer"`
ILen int `json:"iLen"`
} `json:"keybuf"`
Myacct []struct {
ArchievementInfo struct {
} `json:"archievementInfo"`
AuthInfo struct {
} `json:"authInfo"`
BindInfo []interface{} `json:"bindInfo"`
CoverEntranceFlag int `json:"coverEntranceFlag"`
CoverImgUrl string `json:"coverImgUrl"`
CoverUrl string `json:"coverUrl"`
ExtFlag int `json:"extFlag"`
ExtInfo struct {
BirthDay int `json:"birthDay"`
BirthMonth int `json:"birthMonth"`
BirthYear int `json:"birthYear"`
City string `json:"city"`
Country string `json:"country"`
Province string `json:"province"`
Sex int `json:"sex"`
} `json:"extInfo"`
FansCount int `json:"fansCount"`
FeedCount int `json:"feedCount"`
FollowFlag int `json:"followFlag"`
FollowTime int `json:"followTime"`
ForeignUserFlag int `json:"foreignUserFlag"`
FriendFollowCount int `json:"friendFollowCount"`
GuestInfo struct {
} `json:"guestInfo"`
HeadUrl string `json:"headUrl"`
LiveCoverImgUrl string `json:"liveCoverImgUrl"`
LiveInfo struct {
AnchorStatusFlag string `json:"anchorStatusFlag"`
LotterySetting struct {
} `json:"lotterySetting"`
MicSetting struct {
SettingFlag string `json:"settingFlag"`
SettingSwitchFlag string `json:"settingSwitchFlag"`
} `json:"micSetting"`
SwitchFlag int `json:"switchFlag"`
} `json:"liveInfo"`
LiveNoticeInfo struct {
} `json:"liveNoticeInfo"`
LiveStatus int `json:"liveStatus"`
LoggingoutWording string `json:"loggingoutWording"`
Menu []interface{} `json:"menu"`
MsgInfo struct {
} `json:"msgInfo"`
Nickname string `json:"nickname"`
OneTimeFlag int `json:"oneTimeFlag"`
OriginalEntranceFlag int `json:"originalEntranceFlag"`
OriginalFlag int `json:"originalFlag"`
OriginalInfo struct {
PostNeedCheckFlag int `json:"postNeedCheckFlag"`
PunishYearFlag int `json:"punishYearFlag"`
RestApplyOriginalCount int `json:"restApplyOriginalCount"`
RestPunishDay int `json:"restPunishDay"`
RestRepostCount int `json:"restRepostCount"`
} `json:"originalInfo"`
Seq string `json:"seq"`
Signature string `json:"signature"`
SpamStatus int `json:"spamStatus"`
UserFlag int `json:"userFlag"`
UserMode int `json:"userMode"`
Username string `json:"username"`
VestNickname string `json:"vestNickname"`
WxUsernameV5 string `json:"wxUsernameV5"`
} `json:"myacct"`
NextAliasModAvailableTime string `json:"nextAliasModAvailableTime"`
RetryDelaySecond int `json:"retryDelaySecond"`
RingtoneConfig struct {
} `json:"ringtoneConfig"`
SlideUpGuideConfig []interface{} `json:"slideUpGuideConfig"`
TabInfos []struct {
DisplayTabType int `json:"displayTabType"`
TabName string `json:"tabName"`
} `json:"tabInfos"`
TeenmodeSetting struct {
} `json:"teenmodeSetting"`
TeenmodeTipsConfig struct {
} `json:"teenmodeTipsConfig"`
UserNotCreatedFlag int `json:"userNotCreatedFlag"`
Userver int `json:"userver"`
UserverForH5 int `json:"userverForH5"`
WxPersonalizedSetting struct {
} `json:"wxPersonalizedSetting"`
WxUserAttr struct {
NotAvailableFlag int `json:"notAvailableFlag"`
Wording string `json:"wording"`
} `json:"wxUserAttr"`
WxUsernameForH5 string `json:"wxUsernameForH5"`
}
type VideoMomentInitResponse struct {
Data VideoMomentInitResponseData `json:"data"`
Type int `json:"type"`
}
// VideoMomentInit 视频号初始化
func (w *WxApi) VideoMomentInit() (*VideoMomentInitResponseData, error) {
resp, err := w.internalCall(MtVideoMomentInitMsg, 120, MtVideoMomentInitMsg, nil, nil)
if err != nil {
return nil, err
}
var rdata VideoMomentInitResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type VideoMomentSearchRequest struct {
Query string `json:"query"`
LastBuff string `json:"last_buff"`
Scene int `json:"scene"`
}
type VideoMomentSearchResponse struct {
Data interface{} `json:"data"`
Type int `json:"type"`
}
// VideoMomentSearch 视频号搜索
func (w *WxApi) VideoMomentSearch(request VideoMomentSearchRequest) (interface{}, error) {
resp, err := w.internalCall(MtVideoMomentSearchMsg, 120, MtVideoMomentSearchMsg, request, nil)
if err != nil {
return nil, err
}
var rdata VideoMomentSearchResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return rdata.Data, nil
}
type VideoMomentUserHomeRequest struct {
Username string `json:"username"`
LastBuff string `json:"last_buff"`
}
type VideoMomentUserHomeResponse struct {
Data interface{} `json:"data"`
Type int `json:"type"`
}
// VideoMomentUserHome 视频号用户主页
func (w *WxApi) VideoMomentUserHome(request VideoMomentUserHomeRequest) (interface{}, error) {
resp, err := w.internalCall(MtVideoMomentUserHomeMsg, 120, MtVideoMomentUserHomeMsg, request, nil)
if err != nil {
return nil, err
}
var rdata VideoMomentUserHomeResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return rdata.Data, nil
}
type VideoMomentVideoDetailRequest struct {
ObjectId string `json:"object_id"`
ObjectNonceId string `json:"object_nonce_id"`
LastBuff string `json:"last_buff"`
}
type VideoMomentVideoDetailResponse struct {
Data interface{} `json:"data"`
Type int `json:"type"`
}
// VideoMomentVideoDetail 查看视频详细信息(包含评论)
func (w *WxApi) VideoMomentVideoDetail(request VideoMomentVideoDetailRequest) (interface{}, error) {
resp, err := w.internalCall(MtVideoMomentVideoDetailMsg, 120, MtVideoMomentVideoDetailMsg, request, nil)
if err != nil {
return nil, err
}
var rdata VideoMomentVideoDetailResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return rdata.Data, nil
}
type VideoMomentFollowRequest struct {
Username string `json:"username"`
}
type VideoMomentFollowResponseData struct {
BaseResponse struct {
ErrMsg struct {
String string `json:"string"`
} `json:"errMsg"`
Ret int `json:"ret"`
} `json:"baseResponse"`
Contact struct {
ArchievementInfo struct {
} `json:"archievementInfo"`
AuthInfo struct {
AppName string `json:"appName"`
AuthGuarantor struct {
} `json:"authGuarantor"`
AuthIconType int `json:"authIconType"`
AuthIconUrl string `json:"authIconUrl"`
AuthProfession string `json:"authProfession"`
AuthVerifyIdentity int `json:"authVerifyIdentity"`
CustomerType int `json:"customerType"`
DetailLink string `json:"detailLink"`
RealName string `json:"realName"`
VerifyStatus int `json:"verifyStatus"`
} `json:"authInfo"`
BindInfo []interface{} `json:"bindInfo"`
CoverEntranceFlag int `json:"coverEntranceFlag"`
CoverImgUrl string `json:"coverImgUrl"`
CoverUrl string `json:"coverUrl"`
ExtFlag int `json:"extFlag"`
ExtInfo struct {
BirthDay int `json:"birthDay"`
BirthMonth int `json:"birthMonth"`
BirthYear int `json:"birthYear"`
City string `json:"city"`
Country string `json:"country"`
Province string `json:"province"`
Sex int `json:"sex"`
} `json:"extInfo"`
FansCount int `json:"fansCount"`
FeedCount int `json:"feedCount"`
FollowFlag int `json:"followFlag"`
FollowTime int `json:"followTime"`
ForeignUserFlag int `json:"foreignUserFlag"`
FriendFollowCount int `json:"friendFollowCount"`
GuestInfo struct {
} `json:"guestInfo"`
HeadUrl string `json:"headUrl"`
LiveCoverImgUrl string `json:"liveCoverImgUrl"`
LiveInfo struct {
AnchorStatusFlag string `json:"anchorStatusFlag"`
LotterySetting struct {
AttendType int `json:"attendType"`
SettingFlag string `json:"settingFlag"`
} `json:"lotterySetting"`
MicSetting struct {
SettingFlag string `json:"settingFlag"`
SettingSwitchFlag string `json:"settingSwitchFlag"`
} `json:"micSetting"`
SwitchFlag int `json:"switchFlag"`
} `json:"liveInfo"`
LiveNoticeInfo struct {
} `json:"liveNoticeInfo"`
LiveStatus int `json:"liveStatus"`
LoggingoutWording string `json:"loggingoutWording"`
Menu []interface{} `json:"menu"`
MsgInfo struct {
} `json:"msgInfo"`
Nickname string `json:"nickname"`
OneTimeFlag int `json:"oneTimeFlag"`
OriginalEntranceFlag int `json:"originalEntranceFlag"`
OriginalFlag int `json:"originalFlag"`
OriginalInfo struct {
} `json:"originalInfo"`
Seq int `json:"seq"`
Signature string `json:"signature"`
SpamStatus int `json:"spamStatus"`
UserFlag int `json:"userFlag"`
UserMode int `json:"userMode"`
Username string `json:"username"`
VestNickname string `json:"vestNickname"`
WxUsernameV5 string `json:"wxUsernameV5"`
} `json:"contact"`
LiveStatusFlag int `json:"liveStatusFlag"`
}
type VideoMomentFollowResponse struct {
Data VideoMomentFollowResponseData `json:"data"`
Type int `json:"type"`
}
// VideoMomentFollow 关注视频号
func (w *WxApi) VideoMomentFollow(request VideoMomentFollowRequest) (*VideoMomentFollowResponseData, error) {
resp, err := w.internalCall(MtVideoMomentFollowMsg, 120, MtVideoMomentFollowMsg, request, nil)
if err != nil {
return nil, err
}
var rdata VideoMomentFollowResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type VideoMomentLikeRequest struct {
ObjectId string `json:"object_id"`
ObjectNonceId string `json:"object_nonce_id"`
}
type VideoMomentLikeResponseData struct {
BaseResponse struct {
ErrMsg struct {
String string `json:"string"`
} `json:"errMsg"`
Ret int `json:"ret"`
} `json:"baseResponse"`
Likeid int `json:"likeid"`
}
type VideoMomentLikeResponse struct {
Data VideoMomentLikeResponseData `json:"data"`
Type int `json:"type"`
}
// VideoMomentLike 视频号点赞
func (w *WxApi) VideoMomentLike(request VideoMomentLikeRequest) (*VideoMomentLikeResponseData, error) {
resp, err := w.internalCall(MtVideoMomentLikeMsg, 120, MtVideoMomentLikeMsg, request, nil)
if err != nil {
return nil, err
}
var rdata VideoMomentLikeResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type VideoMomentGetSessionIdRequest struct {
ToUsername string `json:"to_username"`
RoleType int `json:"roleType"`
}
type VideoMomentGetSessionIdResponseData struct {
BaseResponse struct {
ErrMsg struct {
} `json:"errMsg"`
Ret int `json:"ret"`
} `json:"baseResponse"`
EnableAction int `json:"enableAction"`
SessionId string `json:"sessionId"`
SessionInfo struct {
EnableAction int `json:"enableAction"`
MsgExtInfo string `json:"msgExtInfo"`
RejectMsg int `json:"rejectMsg"`
SessionId string `json:"sessionId"`
ToUsername string `json:"toUsername"`
} `json:"sessionInfo"`
ToUsername string `json:"toUsername"`
}
type VideoMomentGetSessionIdResponse struct {
Data VideoMomentGetSessionIdResponseData `json:"data"`
Type int `json:"type"`
}
// VideoMomentGetSessionId 获取私信sessionId
func (w *WxApi) VideoMomentGetSessionId(request VideoMomentGetSessionIdRequest) (*VideoMomentGetSessionIdResponseData, error) {
resp, err := w.internalCall(MtVideoMomentGetSessionIdMsg, 120, MtVideoMomentGetSessionIdMsg, request, nil)
if err != nil {
return nil, err
}
var rdata VideoMomentGetSessionIdResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type VideoMomentSendMsgRequest struct {
ToUsername string `json:"to_username"`
SessionId string `json:"session_id"`
Content string `json:"content"`
}
type VideoMomentSendMsgResponseData struct {
BaseResponse struct {
ErrMsg struct {
String string `json:"string"`
} `json:"errMsg"`
Ret int `json:"ret"`
} `json:"baseResponse"`
Newmsgid int `json:"newmsgid"`
}
type VideoMomentSendMsgResponse struct {
Data VideoMomentSendMsgResponseData `json:"data"`
Type int `json:"type"`
}
// VideoMomentSendMsg 发送私信消息
func (w *WxApi) VideoMomentSendMsg(request VideoMomentSendMsgRequest) (*VideoMomentSendMsgResponseData, error) {
resp, err := w.internalCall(MtVideoMomentSendMsg, 120, MtVideoMomentSendMsg, request, nil)
if err != nil {
return nil, err
}
var rdata VideoMomentSendMsgResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type VideoMomentCreateVirtualNickNameRequest struct {
Nickname string `json:"nickname"`
HeadimgUrl string `json:"headimg_url"`
}
type VideoMomentCreateVirtualNickNameResponse struct {
Data interface{} `json:"data"`
Type int `json:"type"`
}
// VideoMomentCreateVirtualNickName 创建虚拟昵称
func (w *WxApi) VideoMomentCreateVirtualNickName(request VideoMomentCreateVirtualNickNameRequest) (interface{}, error) {
resp, err := w.internalCall(MtVideoMomentCreateVirtualNickNameMsg, 120, MtVideoMomentCreateVirtualNickNameMsg, request, nil)
if err != nil {
return nil, err
}
var rdata VideoMomentCreateVirtualNickNameResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return rdata.Data, nil
}
type VideoMomentSwitchVirtualNickNameRequest struct {
RoleType int `json:"role_type"`
}
type VideoMomentSwitchVirtualNickNameResponse struct {
Data interface{} `json:"data"`
Type int `json:"type"`
}
// VideoMomentSwitchVirtualNickName 切换虚拟昵称
func (w *WxApi) VideoMomentSwitchVirtualNickName(request VideoMomentSwitchVirtualNickNameRequest) (interface{}, error) {
resp, err := w.internalCall(MtVideoMomentSwitchVirtualNickNameMsg, 120, MtVideoMomentSwitchVirtualNickNameMsg, request, nil)
if err != nil {
return nil, err
}
var rdata VideoMomentSwitchVirtualNickNameResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return rdata.Data, nil
}
// VideoMomentDeleteVirtualNickName 删除虚拟昵称
func (w *WxApi) VideoMomentDeleteVirtualNickName() error {
_, err := w.internalCall(0, -1, MtVideoMomentDeleteVirtualNickNameMsg, map[string]interface{}{}, nil)
if err != nil {
return err
}
return nil
}