update test file
This commit is contained in:
parent
0f1d42f6f1
commit
61a1313bd9
1
.gitignore
vendored
1
.gitignore
vendored
@ -13,3 +13,4 @@
|
||||
|
||||
# Dependency directories (remove the comment below to include it)
|
||||
# vendor/
|
||||
.idea
|
||||
|
3
bot.go
3
bot.go
@ -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)
|
||||
}
|
||||
|
||||
|
14
bot_test.go
14
bot_test.go
@ -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()
|
||||
}
|
||||
|
@ -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()
|
||||
|
2
items.go
2
items.go
@ -23,7 +23,7 @@ type BaseResponse struct {
|
||||
}
|
||||
|
||||
func (b BaseResponse) Ok() bool {
|
||||
returnRet == 0
|
||||
return b.Ret == 0
|
||||
}
|
||||
|
||||
func (b BaseResponse) Error() string {
|
||||
|
249
manager.go
249
manager.go
@ -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
|
||||
//}
|
@ -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)
|
||||
}
|
||||
|
46
parser.go
46
parser.go
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user