From 688cf74bd684d95812851ecf82f433fc199f9450 Mon Sep 17 00:00:00 2001 From: eatMoreApple <15055461510@163.com> Date: Sun, 25 Apr 2021 10:09:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BE=A4=E5=8F=91=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=9A=82=E5=81=9C=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- relations.go | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/relations.go b/relations.go index 69d2478..0206217 100644 --- a/relations.go +++ b/relations.go @@ -5,6 +5,7 @@ import ( "fmt" "os" "strings" + "time" ) type Friend struct{ *User } @@ -108,8 +109,11 @@ func (f Friends) Search(limit int, condFuncList ...func(friend *Friend) bool) (r } // 向slice的好友依次发送消息 -func (f Friends) SendMsg(msg *SendMessage) error { +func (f Friends) SendMsg(msg *SendMessage, delay ...time.Duration) error { for _, friend := range f { + if len(delay) != 0 { + time.Sleep(delay[0]) + } if err := friend.SendMsg(msg); err != nil { return err } @@ -118,8 +122,11 @@ func (f Friends) SendMsg(msg *SendMessage) error { } // 向slice的好友依次发送文本消息 -func (f Friends) SendText(text string) error { +func (f Friends) SendText(text string, delay ...time.Duration) error { for _, friend := range f { + if len(delay) != 0 { + time.Sleep(delay[0]) + } if err := friend.SendText(text); err != nil { return err } @@ -127,6 +134,18 @@ func (f Friends) SendText(text string) error { return nil } +func (f Friends) SendImage(file *os.File, delay ...time.Duration) error { + for _, friend := range f { + if len(delay) != 0 { + time.Sleep(delay[0]) + } + if err := friend.SendImage(file); err != nil { + return err + } + } + return nil +} + type Group struct{ *User } // implement fmt.Stringer @@ -227,6 +246,42 @@ func (g Groups) Last() *Group { return nil } +func (g Groups) SendMsg(msg *SendMessage, delay ...time.Duration) error { + for _, group := range g { + if len(delay) != 0 { + time.Sleep(delay[0]) + } + if err := group.SendMsg(msg); err != nil { + return err + } + } + return nil +} + +func (g Groups) SendText(text string, delay ...time.Duration) error { + for _, group := range g { + if len(delay) != 0 { + time.Sleep(delay[0]) + } + if err := group.SendText(text); err != nil { + return err + } + } + return nil +} + +func (g Groups) SendImage(file *os.File, delay ...time.Duration) error { + for _, group := range g { + if len(delay) != 0 { + time.Sleep(delay[0]) + } + if err := group.SendImage(file); err != nil { + return err + } + } + return nil +} + func (g Groups) SearchByUserName(limit int, username string) (results Groups) { return g.Search(limit, func(group *Group) bool { return group.UserName == username }) }