123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- package hook
- import (
- "encoding/json"
- "fmt"
- "github.com/gorilla/websocket"
- "strings"
- )
- // 获取标签信息
- func (h *Hook) GetContactLabelList() (result GetContactLabelListReap, err error) {
- resp, err := h.Client.R().SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.WxPort + "/GetContactLabelList")
- if err != nil {
- return
- }
- if !resp.IsSuccessState() {
- err = fmt.Errorf("GetContactLabelList failed with status code %d", resp.StatusCode)
- return
- }
- return
- }
- // 获取好友和群信息
- func (h *Hook) GetFriendAndChatRoomList(typeStr string) (result GetFriendAndChatRoomListReap, err error) {
- resp, err := h.Client.R().SetBody(&GetFriendAndChatRoomListReq{
- Type: typeStr,
- }).SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.WxPort + "/GetFriendAndChatRoomList")
- if err != nil {
- return
- }
- if !resp.IsSuccessState() {
- err = fmt.Errorf("GetFriendAndChatRoomList failed with status code %d", resp.StatusCode)
- return
- }
- return
- }
- // 批量获取联系人简明信息(每次100个)
- func (h *Hook) BatchGetContactBriefInfo(wxids []string) (result BatchGetContactBriefInfoReap, err error) {
- wxidList := strings.Join(wxids, ",")
- resp, err := h.Client.R().SetBody(&BatchGetContactBriefInfoReq{
- WxidList: wxidList,
- }).SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.WxPort + "/BatchGetContactBriefInfo")
- if err != nil {
- return
- }
- if !resp.IsSuccessState() {
- err = fmt.Errorf("BatchGetChatRoomMemberWxid failed with status code %d", resp.StatusCode)
- return
- }
- return
- }
- // 添加新的好友
- func (h *Hook) AddNewFriend(v3_wxid string, v4 string, desc string, addType string, role string) (result AddNewFriendReap, err error) {
- resp, err := h.Client.R().SetBody(&AddNewFriendReq{
- V3Wxid: v3_wxid,
- V4: v4,
- Desc: desc,
- AddType: addType,
- Role: role,
- }).SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.WxPort + "/AddNewFriend")
- if err != nil {
- return
- }
- if !resp.IsSuccessState() {
- err = fmt.Errorf("AddNewFriend failed with status code %d", resp.StatusCode)
- return
- }
- return
- }
- func (h *Hook) RequestChatRoomInfo(ChatRoomId, wxWxid string) error {
- conn, err := h.connWorkPhone()
- if err != nil {
- err = fmt.Errorf("RequestChatRoomInfo failed")
- return err
- }
- defer func(conn *websocket.Conn) {
- err = conn.Close()
- if err != nil {
- err = fmt.Errorf("RequestChatRoomInfo failed")
- }
- }(conn)
- message := map[string]interface{}{
- "MsgType": "RequestChatRoomInfoTask",
- "Content": map[string]interface{}{
- "WeChatId": wxWxid,
- "Flag": 1,
- "ChatRoomId": ChatRoomId,
- },
- }
- transportMessageJSON, err := json.Marshal(message)
- if err != nil {
- return err
- }
- // 发送 JSON 消息
- err = conn.WriteMessage(websocket.TextMessage, transportMessageJSON)
- if err != nil {
- return fmt.Errorf("failed to send message: %v", err)
- }
- return nil
- }
- func (h *Hook) TriggerChatroomPush(wxWxid string) error {
- conn, err := h.connWorkPhone()
- if err != nil {
- err = fmt.Errorf("TriggerChatroomPush failed")
- return err
- }
- defer func(conn *websocket.Conn) {
- err = conn.Close()
- if err != nil {
- err = fmt.Errorf("TriggerChatroomPush failed")
- }
- }(conn)
- message := map[string]interface{}{
- "MsgType": "TriggerChatroomPushTask",
- "Content": map[string]interface{}{
- "WeChatId": wxWxid,
- "Flag": 1,
- },
- }
- transportMessageJSON, err := json.Marshal(message)
- if err != nil {
- return err
- }
- // 发送 JSON 消息
- err = conn.WriteMessage(websocket.TextMessage, transportMessageJSON)
- if err != nil {
- return fmt.Errorf("failed to send message: %v", err)
- }
- return nil
- }
- func (h *Hook) AddFriendInChatRoom(ChatRoomId, wxWxid, friendId, desc string) error {
- conn, err := h.connWorkPhone()
- if err != nil {
- err = fmt.Errorf("AddFriendInChatRoom failed")
- return err
- }
- defer func(conn *websocket.Conn) {
- err = conn.Close()
- if err != nil {
- err = fmt.Errorf("AddFriendInChatRoom failed")
- }
- }(conn)
- message := map[string]interface{}{
- "MsgType": "AddFriendInChatRoomTask",
- "Content": map[string]interface{}{
- "WeChatId": wxWxid,
- "ChatroomId": ChatRoomId,
- "FriendId": friendId,
- "Message": desc,
- },
- }
- transportMessageJSON, err := json.Marshal(message)
- if err != nil {
- return err
- }
- // 发送 JSON 消息
- err = conn.WriteMessage(websocket.TextMessage, transportMessageJSON)
- if err != nil {
- return fmt.Errorf("failed to send message: %v", err)
- }
- return nil
- }
|