From 55cf87e294461b4b7346b3b5f21e1c548b48a93e Mon Sep 17 00:00:00 2001 From: eatMoreApple <15055461510@163.com> Date: Tue, 27 Apr 2021 11:33:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BE=A4=E5=8F=91=E4=BC=91?= =?UTF-8?q?=E7=9C=A0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parser.go | 68 +++++++++++++++++++++++++++++----------------------- relations.go | 30 +++++++---------------- 2 files changed, 47 insertions(+), 51 deletions(-) diff --git a/parser.go b/parser.go index 39f91f5..b0ff4f4 100644 --- a/parser.go +++ b/parser.go @@ -1,46 +1,54 @@ package openwechat import ( - "bytes" - "encoding/json" - "math/rand" - "net/http" - "strconv" - "strings" - "time" + "bytes" + "encoding/json" + "math/rand" + "net/http" + "strconv" + "strings" + "time" ) func ToBuffer(v interface{}) (*bytes.Buffer, error) { - buf, err := json.Marshal(v) - if err != nil { - return nil, err - } - return bytes.NewBuffer(buf), nil + buf, err := json.Marshal(v) + if err != nil { + return nil, err + } + return bytes.NewBuffer(buf), nil } func GetRandomDeviceId() string { - rand.Seed(time.Now().Unix()) - var builder strings.Builder - builder.WriteString("e") - for i := 0; i < 15; i++ { - r := rand.Intn(9) - builder.WriteString(strconv.Itoa(r)) - } - return builder.String() + rand.Seed(time.Now().Unix()) + var builder strings.Builder + builder.WriteString("e") + for i := 0; i < 15; i++ { + r := rand.Intn(9) + builder.WriteString(strconv.Itoa(r)) + } + return builder.String() } func getWebWxDataTicket(cookies []*http.Cookie) string { - for _, cookie := range cookies { - if cookie.Name == "webwx_data_ticket" { - return cookie.Value - } - } - return "" + for _, cookie := range cookies { + if cookie.Name == "webwx_data_ticket" { + return cookie.Value + } + } + return "" } func XmlFormString(text string) string { - lt := strings.ReplaceAll(text, "<", "<") - gt := strings.ReplaceAll(lt, ">", ">") - br := strings.ReplaceAll(gt, "
", "\n") - return strings.ReplaceAll(br, "&amp;", "&") + lt := strings.ReplaceAll(text, "<", "<") + gt := strings.ReplaceAll(lt, ">", ">") + br := strings.ReplaceAll(gt, "
", "\n") + return strings.ReplaceAll(br, "&amp;", "&") +} + +func getTotalDuration(delay ...time.Duration) time.Duration { + var total time.Duration + for _, d := range delay { + total += d + } + return total } diff --git a/relations.go b/relations.go index c415c9a..9aac6c1 100644 --- a/relations.go +++ b/relations.go @@ -104,10 +104,9 @@ func (f Friends) Search(limit int, condFuncList ...func(friend *Friend) bool) (r // 向slice的好友依次发送消息 func (f Friends) SendMsg(msg *SendMessage, delay ...time.Duration) error { + total := getTotalDuration(delay...) for _, friend := range f { - if len(delay) != 0 { - time.Sleep(delay[0]) - } + time.Sleep(total) if err := friend.SendMsg(msg); err != nil { return err } @@ -117,10 +116,9 @@ func (f Friends) SendMsg(msg *SendMessage, delay ...time.Duration) error { // 向slice的好友依次发送文本消息 func (f Friends) SendText(text string, delay ...time.Duration) error { + total := getTotalDuration(delay...) for _, friend := range f { - if len(delay) != 0 { - time.Sleep(delay[0]) - } + time.Sleep(total) if err := friend.SendText(text); err != nil { return err } @@ -130,10 +128,9 @@ func (f Friends) SendText(text string, delay ...time.Duration) error { // 向slice的好友依次发送图片消息 func (f Friends) SendImage(file *os.File, delay ...time.Duration) error { + total := getTotalDuration(delay...) for _, friend := range f { - if len(delay) != 0 { - time.Sleep(delay[0]) - } + time.Sleep(total) if err := friend.SendImage(file); err != nil { return err } @@ -209,10 +206,7 @@ func (g Groups) Last() *Group { // 向群组依次发送消息, 支持发送延迟 func (g Groups) SendMsg(msg *SendMessage, delay ...time.Duration) error { - var total time.Duration - for _, d := range delay { - total += d - } + total := getTotalDuration(delay...) for _, group := range g { time.Sleep(total) if err := group.SendMsg(msg); err != nil { @@ -224,10 +218,7 @@ func (g Groups) SendMsg(msg *SendMessage, delay ...time.Duration) error { // 向群组依次发送文本消息, 支持发送延迟 func (g Groups) SendText(text string, delay ...time.Duration) error { - var total time.Duration - for _, d := range delay { - total += d - } + total := getTotalDuration(delay...) for _, group := range g { time.Sleep(total) if err := group.SendText(text); err != nil { @@ -239,10 +230,7 @@ func (g Groups) SendText(text string, delay ...time.Duration) error { // 向群组依次发送图片消息, 支持发送延迟 func (g Groups) SendImage(file *os.File, delay ...time.Duration) error { - var total time.Duration - for _, d := range delay { - total += d - } + total := getTotalDuration(delay...) for _, group := range g { time.Sleep(total) if err := group.SendImage(file); err != nil {