go client update
This commit is contained in:
+78
-7
@@ -41,6 +41,10 @@ func (c *Client) Recv() (*Response, error) {
|
||||
err = proto.Unmarshal(recv, msg)
|
||||
return msg, err
|
||||
}
|
||||
func (c *Client) Close() error {
|
||||
c.DisableRecvTxt()
|
||||
return c.socket.Close()
|
||||
}
|
||||
func (c *Client) IsLogin() bool {
|
||||
err := c.send(genFunReq(Functions_FUNC_IS_LOGIN).build())
|
||||
if err != nil {
|
||||
@@ -177,11 +181,39 @@ func (c *Client) AddChatroomMembers(roomID, wxIDs string) int32 {
|
||||
return recv.GetStatus()
|
||||
}
|
||||
|
||||
// ReceiveTransfer 接收转账
|
||||
func (c *Client) ReceiveTransfer(transferId, wxID string) int32 {
|
||||
/*
|
||||
ReceiveTransfer 接收转账
|
||||
string wxid = 1; // 转账人
|
||||
string tfid = 2; // 转账id transferid
|
||||
string taid = 3; // Transaction id
|
||||
*/
|
||||
|
||||
func (c *Client) ReceiveTransfer(wxid, tfid, taid string) int32 {
|
||||
req := genFunReq(Functions_FUNC_RECV_TRANSFER)
|
||||
q := Request_Tf{
|
||||
Tf: &Transfer{Tid: transferId, Wxid: wxID},
|
||||
Tf: &Transfer{
|
||||
Wxid: wxid,
|
||||
Tfid: tfid,
|
||||
Taid: taid,
|
||||
},
|
||||
}
|
||||
req.Msg = &q
|
||||
err := c.send(req.build())
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
}
|
||||
recv, err := c.Recv()
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
}
|
||||
return recv.GetStatus()
|
||||
}
|
||||
|
||||
// RefreshPYQ 刷新朋友圈
|
||||
func (c *Client) RefreshPYQ() int32 {
|
||||
req := genFunReq(Functions_FUNC_REFRESH_PYQ)
|
||||
q := Request_Ui64{
|
||||
Ui64: 0,
|
||||
}
|
||||
req.Msg = &q
|
||||
err := c.send(req.build())
|
||||
@@ -230,6 +262,23 @@ func (c *Client) AddChatRoomMembers(roomId string, wxIds []string) int32 {
|
||||
}
|
||||
return recv.GetStatus()
|
||||
}
|
||||
func (c *Client) DelChatRoomMembers(roomId string, wxIds []string) int32 {
|
||||
req := genFunReq(Functions_FUNC_DEL_ROOM_MEMBERS)
|
||||
q := Request_M{
|
||||
M: &AddMembers{Roomid: roomId,
|
||||
Wxids: strings.Join(wxIds, ",")},
|
||||
}
|
||||
req.Msg = &q
|
||||
err := c.send(req.build())
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
}
|
||||
recv, err := c.Recv()
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
}
|
||||
return recv.GetStatus()
|
||||
}
|
||||
func (c *Client) GetUserInfo() *UserInfo {
|
||||
err := c.send(genFunReq(Functions_FUNC_GET_USER_INFO).build())
|
||||
if err != nil {
|
||||
@@ -270,7 +319,7 @@ func (c *Client) SendTxt(msg string, receiver string, ates []string) int32 {
|
||||
|
||||
/*
|
||||
SendIMG
|
||||
path 绝对路径
|
||||
path 绝对路径InBot
|
||||
*/
|
||||
func (c *Client) SendIMG(path string, receiver string) int32 {
|
||||
req := genFunReq(Functions_FUNC_SEND_IMG)
|
||||
@@ -293,7 +342,7 @@ func (c *Client) SendIMG(path string, receiver string) int32 {
|
||||
|
||||
/*
|
||||
SendFile
|
||||
path 绝对路径
|
||||
path 绝对路径InBot
|
||||
*/
|
||||
func (c *Client) SendFile(path string, receiver string) int32 {
|
||||
req := genFunReq(Functions_FUNC_SEND_FILE)
|
||||
@@ -333,8 +382,30 @@ func (c *Client) SendXml(path, content, receiver string, Type int32) int32 {
|
||||
}
|
||||
return recv.GetStatus()
|
||||
}
|
||||
func (c *Client) SendEmotion(path, receiver string) int32 {
|
||||
req := genFunReq(Functions_FUNC_SEND_EMOTION)
|
||||
req.Msg = &Request_File{
|
||||
File: &PathMsg{
|
||||
Path: path,
|
||||
Receiver: receiver,
|
||||
},
|
||||
}
|
||||
err := c.send(req.build())
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
}
|
||||
recv, err := c.Recv()
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
}
|
||||
return recv.GetStatus()
|
||||
}
|
||||
func (c *Client) EnableRecvTxt() int32 {
|
||||
err := c.send(genFunReq(Functions_FUNC_ENABLE_RECV_TXT).build())
|
||||
req := genFunReq(Functions_FUNC_ENABLE_RECV_TXT)
|
||||
req.Msg = &Request_Flag{
|
||||
Flag: true,
|
||||
}
|
||||
err := c.send(req.build())
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
}
|
||||
@@ -365,10 +436,10 @@ func (c *Client) OnMSG(f func(msg *WxMsg)) error {
|
||||
_ = socket.SetOption(mangos.OptionRecvDeadline, 2000)
|
||||
_ = socket.SetOption(mangos.OptionSendDeadline, 2000)
|
||||
err = socket.Dial(addPort(c.add))
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer socket.Close()
|
||||
for c.RecvTxt {
|
||||
msg := &Response{}
|
||||
recv, err := socket.Recv()
|
||||
|
||||
+394
-325
File diff suppressed because it is too large
Load Diff
+55
-18
@@ -6,6 +6,7 @@ import (
|
||||
_ "go.nanomsg.org/mangos/v3/transport/all"
|
||||
"google.golang.org/protobuf/proto"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestConn(t *testing.T) {
|
||||
@@ -14,7 +15,7 @@ func TestConn(t *testing.T) {
|
||||
logs.Err(err)
|
||||
return
|
||||
}
|
||||
err = socket.Dial("tcp://127.0.0.1:10086")
|
||||
err = socket.Dial("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
@@ -48,7 +49,7 @@ func TestConn(t *testing.T) {
|
||||
|
||||
}
|
||||
func TestIsLogin(t *testing.T) {
|
||||
wcf, err := NewWCF("")
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
@@ -56,7 +57,7 @@ func TestIsLogin(t *testing.T) {
|
||||
logs.Info(wcf.IsLogin())
|
||||
}
|
||||
func TestGetSelfWXID(t *testing.T) {
|
||||
wcf, err := NewWCF("")
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
@@ -64,7 +65,7 @@ func TestGetSelfWXID(t *testing.T) {
|
||||
logs.Info(wcf.GetSelfWXID())
|
||||
}
|
||||
func TestGetMsgTypes(t *testing.T) {
|
||||
wcf, err := NewWCF("")
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
@@ -72,18 +73,18 @@ func TestGetMsgTypes(t *testing.T) {
|
||||
logs.Info(wcf.GetMsgTypes())
|
||||
}
|
||||
func TestGetContacts(t *testing.T) {
|
||||
wcf, err := NewWCF("")
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
}
|
||||
for _, contact := range wcf.GetContacts() {
|
||||
logs.Info(contact.Remark, contact.Wxid)
|
||||
logs.Info(contact.Name, contact.Wxid)
|
||||
}
|
||||
logs.Info(wcf.GetContacts())
|
||||
}
|
||||
func TestGetDBNames(t *testing.T) {
|
||||
wcf, err := NewWCF("")
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
@@ -91,7 +92,7 @@ func TestGetDBNames(t *testing.T) {
|
||||
logs.Info(wcf.GetDBNames())
|
||||
}
|
||||
func TestGetDBTables(t *testing.T) {
|
||||
wcf, err := NewWCF("")
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
@@ -99,7 +100,7 @@ func TestGetDBTables(t *testing.T) {
|
||||
logs.Info(wcf.GetDBTables("ChatMsg.db"))
|
||||
}
|
||||
func TestExecDBQuery(t *testing.T) {
|
||||
wcf, err := NewWCF("")
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
@@ -107,7 +108,7 @@ func TestExecDBQuery(t *testing.T) {
|
||||
logs.Info(wcf.ExecDBQuery("ChatMsg.db", "SELECT * FROM Name2ID_v1"))
|
||||
}
|
||||
func TestAcceptFriend(t *testing.T) {
|
||||
wcf, err := NewWCF("")
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
@@ -115,7 +116,7 @@ func TestAcceptFriend(t *testing.T) {
|
||||
logs.Info(wcf.AcceptFriend("encryptusername", "ticket", 17))
|
||||
}
|
||||
func TestGetUserInfo(t *testing.T) {
|
||||
wcf, err := NewWCF("")
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
@@ -123,30 +124,66 @@ func TestGetUserInfo(t *testing.T) {
|
||||
logs.Info(wcf.GetUserInfo())
|
||||
}
|
||||
func TestSendTxT(t *testing.T) {
|
||||
wcf, err := NewWCF("")
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
}
|
||||
logs.Info(wcf.SendTxt(" Hello @ 淡白", "45415088466@chatroom", []string{"wxid_xxxxxxxx"}))
|
||||
logs.Info(wcf.SendTxt(" Hello @ 淡白", "38975652309@chatroom", []string{"wxid_qvo0irhbw9fk22"}))
|
||||
}
|
||||
func TestSendIMG(t *testing.T) {
|
||||
wcf, err := NewWCF("")
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
}
|
||||
logs.Info(wcf.SendIMG("C:\\Users\\danbai\\Desktop\\work\\code\\WeChatFerry-go\\图片1.png", "wxid_qvo0irhbw9fk22"))
|
||||
logs.Info(wcf.SendIMG("C:\\Users\\Administrator\\Pictures\\1.png", "wxid_qvo0irhbw9fk22"))
|
||||
}
|
||||
func TestOnMSG(t *testing.T) {
|
||||
wcf, err := NewWCF("")
|
||||
func TestSendFile(t *testing.T) {
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
}
|
||||
logs.Info(wcf.SendFile("C:\\Users\\Administrator\\Pictures\\1.txt", "wxid_qvo0irhbw9fk22"))
|
||||
}
|
||||
func TestRefreshPYQ(t *testing.T) {
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
}
|
||||
logs.Info(wcf.EnableRecvTxt())
|
||||
go wcf.OnMSG(func(msg *WxMsg) {
|
||||
logs.Info(msg.GetType(), msg.GetContent())
|
||||
})
|
||||
defer wcf.DisableRecvTxt()
|
||||
wcf.OnMSG(func(msg *WxMsg) {
|
||||
time.Sleep(time.Second * 2)
|
||||
logs.Info(wcf.RefreshPYQ())
|
||||
time.Sleep(time.Minute)
|
||||
}
|
||||
|
||||
func TestOnMSG(t *testing.T) {
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
}
|
||||
logs.Info(wcf.EnableRecvTxt())
|
||||
defer func() {
|
||||
logs.Info(wcf.DisableRecvTxt())
|
||||
}()
|
||||
go wcf.OnMSG(func(msg *WxMsg) {
|
||||
logs.Info(msg.GetContent())
|
||||
})
|
||||
time.Sleep(time.Minute)
|
||||
}
|
||||
|
||||
func TestDisableRecvTxt(t *testing.T) {
|
||||
wcf, err := NewWCF("tcp://192.168.26.130:1000")
|
||||
if err != nil {
|
||||
logs.Err(err)
|
||||
return
|
||||
}
|
||||
logs.Info(wcf.DisableRecvTxt())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user