update test file

This commit is contained in:
Ivy1996-encode 2021-02-17 15:01:10 +08:00
parent 0f1d42f6f1
commit 61a1313bd9
8 changed files with 12 additions and 310 deletions

1
.gitignore vendored
View File

@ -13,3 +13,4 @@
# Dependency directories (remove the comment below to include it)
# vendor/
.idea

3
bot.go
View File

@ -157,6 +157,9 @@ func (b *Bot) prepare() {
}
func (b *Bot) RegisterMessageHandler(handler MessageHandler) {
if b.messageHandlerGroups == nil {
b.messageHandlerGroups = &MessageHandlerGroup{}
}
b.messageHandlerGroups.RegisterHandler(handler)
}

View File

@ -6,21 +6,15 @@ import (
)
func TestDefaultBot(t *testing.T) {
messageHandler := func(message Message) {
messageHandler := func(message *Message) {
fmt.Println(message)
}
bot := DefaultBot(messageHandler)
bot := DefaultBot()
bot.RegisterMessageHandler(messageHandler)
bot.UUIDCallback = PrintlnQrcodeUrl
if err := bot.Login(); err != nil {
fmt.Println(err)
return
}
//for bot.Alive() {
// message := messageHandler.GetMessage()
// if message.Content == "6666" {
// err := message.ReplyText("nihao")
// fmt.Println(err)
// }
// fmt.Println(message)
//}
bot.Block()
}

View File

@ -196,10 +196,6 @@ func (c *Caller) WebWxSendImageMsg(file *os.File, request BaseRequest, info Logi
return parseBaseResponseError(resp)
}
//func (c *Caller) WebWxBatchGetContact() {
//
//}
func parseBaseResponseError(resp *ReturnResponse) error {
if resp.Err() != nil {
return resp.Err()

View File

@ -23,7 +23,7 @@ type BaseResponse struct {
}
func (b BaseResponse) Ok() bool {
returnRet == 0
return b.Ret == 0
}
func (b BaseResponse) Error() string {

View File

@ -1,249 +0,0 @@
package openwechat
//
//import (
// "encoding/json"
// "encoding/xml"
// "errors"
// "fmt"
// "io/ioutil"
// "log"
//)
//
//var DefaultMessageMaxLength uint64 = 200
//
//const (
// statusSuccess = "200"
// statusScanned = "201"
// statusTimeout = "400"
// statusWait = "408"
//)
//
//type Bot struct {
// Caller *Caller
// Self *Self
// ScanCallback func(body []byte)
// LoginCallback func(body []byte)
// storage WechatStorage
// messageHandler MessageHandler
// notAlive bool
// err error
//}
//
//func (m *Bot) GetLoginUUID() (uuid string, err error) {
// return m.Caller.GetLoginUUID()
//}
//
//func (m *Bot) checkLogin(uuid string) (body []byte, err error) {
// resp, err := m.Client.CheckLogin(uuid)
// if err != nil {
// return nil, err
// }
// defer resp.Body.Close()
// data, err := ioutil.ReadAll(resp.Body)
// if
//
// err != nil {
// return nil, err
// }
// return data, nil
//}
//
//func (m *Bot) CheckLogin(uuid string) error {
// var (
// body []byte
// err error
// )
// for {
// body, err = m.checkLogin(uuid)
// if err != nil {
// return err
// }
// results := statusCodeRegexp.FindSubmatch(body)
// if len(results) != 2 {
// return errors.New("login status code does not match")
// }
// code := string(results[1])
// switch code {
// case statusSuccess:
// return m.loginCallback(body)
// case statusScanned:
// if m.ScanCallback != nil {
// m.ScanCallback(body)
// }
// case statusWait:
// log.Println(string(body))
// case statusTimeout:
// return errors.New("login time out")
// default:
// return errors.New("unknow code found " + code)
// }
// }
//}
//
//func (m *Bot) getLoginInfo(body []byte) error {
// resp, err := m.Client.GetLoginInfo(body)
// if err != nil {
// return err
// }
// defer resp.Body.Close()
// data, err := ioutil.ReadAll(resp.Body)
// if err != nil {
// return err
// }
// var loginInfo LoginInfo
// if err = xml.Unmarshal(data, &loginInfo); err != nil {
// return err
// }
// if loginInfo.Ret != 0 {
// return errors.New(loginInfo.Message)
// }
// m.storage.SetLoginInfo(loginInfo)
// return nil
//}
//
//func (m *Bot) webInit() error {
// loginInfo := m.storage.GetLoginInfo()
// baseRequest := BaseRequest{
// Uin: loginInfo.WxUin,
// Sid: loginInfo.WxSid,
// Skey: loginInfo.SKey,
// DeviceID: GetRandomDeviceId(),
// }
// m.storage.SetBaseRequest(baseRequest)
// resp, err := m.Client.WebInit(m.storage)
// if err != nil {
// return err
// }
// defer resp.Body.Close()
// data, err := ioutil.ReadAll(resp.Body)
// if err != nil {
// return err
// }
// var webInitResponse WebInitResponse
// if err = json.Unmarshal(data, &webInitResponse); err != nil {
// return err
// }
// m.storage.SetWebInitResponse(webInitResponse)
// m.Self = &Self{User: &webInitResponse.User, Manager: m}
// return nil
//}
//
//func (m *Bot) WebWxStatusNotify() error {
// resp, err := m.Client.WebWxStatusNotify(m.storage)
// if err != nil {
// return err
// }
// defer resp.Body.Close()
// data, err := ioutil.ReadAll(resp.Body)
// if err != nil {
// return err
// }
// var item map[string]interface{}
// err = json.Unmarshal(data, &item)
// if err != nil {
// return err
// }
// if request, ok := item["BaseResponse"].(map[string]interface{}); ok {
// if ret, exist := request["Ret"]; exist {
// if ret, ok := ret.(float64); ok {
// if ret == 0 {
// return nil
// }
// }
// }
// }
// return errors.New("web status notify failed")
//}
//
//func (m *Bot) SyncCheck() error {
// for m.Alive() {
// resp, err := m.Client.SyncCheck(m.storage)
// if err != nil {
// return err
// }
// data, err := ioutil.ReadAll(resp.Body)
// fmt.Println(string(data))
// resp.Body.Close()
// if err != nil {
// return err
// }
// results := syncCheckRegexp.FindSubmatch(data)
// if len(results) != 3 {
// return errors.New("parse sync key failed")
// }
// code, _ := results[1], results[2]
// switch string(code) {
// case "0":
// if err = m.getMessage(); err != nil {
// return err
// }
// case "1101":
// return errors.New("logout")
// }
// return fmt.Errorf("error ret code: %s", string(code))
// }
// return nil
//}
//
//func (m *Bot) getMessage() error {
// resp, err := m.Client.GetMessage(m.storage)
// if err != nil {
// return err
// }
// defer resp.Body.Close()
// data, err := ioutil.ReadAll(resp.Body)
// if err != nil {
// return err
// }
// var syncKey struct{ SyncKey SyncKey }
// if err = json.Unmarshal(data, &syncKey); err != nil {
// return err
// }
// webInitResponse := m.storage.GetWebInitResponse()
// webInitResponse.SyncKey = syncKey.SyncKey
// m.storage.SetWebInitResponse(webInitResponse)
// var messageList MessageList
// if err = json.Unmarshal(data, &messageList); err != nil {
// return err
// }
// for _, message := range messageList.AddMsgList {
// message.ClientManager = m
// m.messageHandler.ReceiveMessage(message)
// }
// return nil
//}
//
//func (m *Bot) loginCallback(body []byte) error {
// var err error
// if m.LoginCallback != nil {
// m.LoginCallback(body)
// }
// if err = m.getLoginInfo(body); err != nil {
// return err
// }
// if err = m.webInit(); err != nil {
// return err
// }
// if err = m.WebWxStatusNotify(); err != nil {
// return err
// }
// go func() {
// if err := m.SyncCheck(); err != nil {
// m.exit(err)
// }
// }()
// return err
//}
//
//func (m *Bot) Alive() bool {
// return !m.notAlive
//}
//
//func (m *Bot) Err() error {
// return m.err
//}
//
//func (m *Bot) exit(err error) {
// m.notAlive = true
// m.err = err
//}

View File

@ -13,5 +13,8 @@ func (m MessageHandlerGroup) ProcessMessage(message *Message) {
}
func (m *MessageHandlerGroup) RegisterHandler(handler MessageHandler) {
if m.handlers == nil {
m.handlers = make([]MessageHandler, 0)
}
m.handlers = append(m.handlers, handler)
}

View File

@ -3,7 +3,6 @@ package openwechat
import (
"bytes"
"encoding/json"
"io/ioutil"
"math/rand"
"net/http"
"strconv"
@ -28,21 +27,6 @@ func GetRandomDeviceId() string {
return "e" + str
}
//func getSendMessageError(body io.Reader) error {
// data, err := ioutil.ReadAll(body)
// if err != nil {
// return err
// }
// var item struct{ BaseResponse BaseResponse }
// if err = json.Unmarshal(data, &item); err != nil {
// return err
// }
// if !item.BaseResponse.Ok() {
// return errors.New(item.BaseResponse.ErrMsg)
// }
// return nil
//}
func getWebWxDataTicket(cookies []*http.Cookie) string {
for _, cookie := range cookies {
if cookie.Name == "webwx_data_ticket" {
@ -51,33 +35,3 @@ func getWebWxDataTicket(cookies []*http.Cookie) string {
}
return ""
}
func getUpdateMember(resp *http.Response, err error) (Members, error) {
if err != nil {
return nil, err
}
data, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
var item struct {
BaseResponse BaseResponse
ContactList Members
}
if err = json.Unmarshal(data, &item); err != nil {
return nil, err
}
if !item.BaseResponse.Ok() {
return nil, item.BaseResponse
}
return item.ContactList, nil
}
func getResponseBody(resp *http.Response) ([]byte, error) {
if data, err := ioutil.ReadAll(resp.Body); err != nil {
return nil, err
} else {
return data, nil
}
}