xybot/group/impl.go

137 lines
3.7 KiB
Go

package group
import (
"gitee.ltd/lxh/xybot/base"
"strings"
)
// AddChatroomMember
// @description: 添加群聊成员(群聊最多40人)
// @receiver s
// @param chatroom
// @param inviteWxId
// @return err
func (s service) AddChatroomMember(chatroom string, inviteWxId string) (err error) {
var result base.Response[base.EmptyResponse]
_, err = s.client.R().
SetHeader("WeChatId", s.robotInfo.GetId()).
SetResult(&result).
SetBody(map[string]any{
"Wxid": s.robotInfo.GetId(),
"Chatroom": chatroom,
"InviteWxids": inviteWxId,
}).Post("/AddChatroomMember")
err = result.CheckError(err)
return
}
// InviteChatroomMember
// @description: 邀请群聊成员(群聊大于40人)
// @receiver s
// @param chatroom
// @param inviteWxIds
// @return err
func (s service) InviteChatroomMember(chatroom string, inviteWxIds []string) (err error) {
var result base.Response[base.EmptyResponse]
_, err = s.client.R().
SetHeader("WeChatId", s.robotInfo.GetId()).
SetResult(&result).
SetBody(map[string]any{
"Wxid": s.robotInfo.GetId(),
"Chatroom": chatroom,
"InviteWxids": strings.Join(inviteWxIds, ","),
}).Post("/InviteChatroomMember")
err = result.CheckError(err)
return
}
// GetChatroomInfo
// @description: 获取群聊详情 这个接口不建议用,没多大卵用
// @receiver s
// @param chatroom
// @return info
// @return err
func (s service) GetChatroomInfo(chatroom string) (info GetChatroomInfoResponse, err error) {
var result base.Response[GetChatroomInfoResponse]
_, err = s.client.R().
SetHeader("WeChatId", s.robotInfo.GetId()).
SetResult(&result).
SetBody(map[string]any{
"Wxid": s.robotInfo.GetId(),
"Chatroom": chatroom,
}).Post("/GetChatroomInfo")
if err = result.CheckError(err); err != nil {
return
}
info = result.Data
return
}
// GetChatroomInfoNoAnnounce
// @description: 获取群聊详情(不包含群公告)
// @receiver s
// @param chatroom
// @return info
// @return err
func (s service) GetChatroomInfoNoAnnounce(chatroom []string) (info []ChatroomInfoItem, err error) {
var result base.Response[GetChatroomInfoNoAnnounce]
_, err = s.client.R().
SetHeader("WeChatId", s.robotInfo.GetId()).
SetResult(&result).
SetBody(map[string]any{
"Wxid": s.robotInfo.GetId(),
"Chatroom": strings.Join(chatroom, ","),
}).Post("/GetChatroomInfoNoAnnounce")
if err = result.CheckError(err); err != nil {
return
}
info = result.Data.ContactList
return
}
// GetChatroomMemberDetail
// @description: 获取群聊成员详情
// @receiver s
// @param chatroom
// @return members
// @return err
func (s service) GetChatroomMemberDetail(chatroom string) (members []ChatRoomMemberItem, err error) {
var result base.Response[GetChatroomMemberDetailResponse]
_, err = s.client.R().
SetHeader("WeChatId", s.robotInfo.GetId()).
SetResult(&result).
SetBody(map[string]any{
"Wxid": s.robotInfo.GetId(),
"Chatroom": chatroom,
}).Post("/GetChatroomMemberDetail")
if err = result.CheckError(err); err != nil {
return
}
members = result.Data.NewChatroomData.ChatRoomMember
return
}
// GetChatroomQRCode
// @description: 获取群二维码
// @receiver s
// @param chatroom
// @return imgBase64Str
// @return notify
// @return err
func (s service) GetChatroomQRCode(chatroom string) (imgBase64Str, notify string, err error) {
var result base.Response[GetChatroomQRCodeResponse]
_, err = s.client.R().
SetHeader("WeChatId", s.robotInfo.GetId()).
SetResult(&result).
SetBody(map[string]any{
"Wxid": s.robotInfo.GetId(),
"Chatroom": chatroom,
}).Post("/GetChatroomQRCode")
if err = result.CheckError(err); err != nil {
return
}
imgBase64Str = result.Data.Qrcode.Buffer
notify = result.Data.RevokeQrcodeWording
return
}