From cfe5e163fce08cbe6536007e90de4b39b1274ffd Mon Sep 17 00:00:00 2001 From: cdle <798731886@qq.com> Date: Sat, 18 Sep 2021 16:11:31 +0800 Subject: [PATCH] update --- core/test.go | 2 +- im/qq/sender.go | 17 ++++++++++++++--- im/tg/tg.go | 15 ++++++++++++--- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/core/test.go b/core/test.go index a5a03c6..c3d378d 100644 --- a/core/test.go +++ b/core/test.go @@ -84,7 +84,7 @@ func initSys() { if err := CompileCode(); err != nil { return err } - s.Reply(name() + "编译程序完毕。") + s.Reply(name()+"编译程序完毕。", time.Duration(0)) sillyGirl.Set("rebootInfo", fmt.Sprintf("%v %v %v", s.GetImType(), s.GetChatID(), s.GetUserID())) Daemon() return nil diff --git a/im/qq/sender.go b/im/qq/sender.go index 5fa1555..ce52cc0 100644 --- a/im/qq/sender.go +++ b/im/qq/sender.go @@ -151,6 +151,10 @@ func (sender *Sender) IsMedia() bool { func (sender *Sender) Reply(msgs ...interface{}) error { msg := msgs[0] + if len(msgs) > 1 { + du := msgs[1].(time.Duration) + sender.Duration = &du + } switch sender.Message.(type) { case *message.PrivateMessage: m := sender.Message.(*message.PrivateMessage) @@ -203,12 +207,19 @@ func (sender *Sender) Reply(msgs ...interface{}) error { id = bot.SendGroupMessage(m.GroupCode, &message.SendingMessage{Elements: []message.IMessageElement{&message.AtElement{Target: m.Sender.Uin}, &message.TextElement{Content: content}}}) } if id > 0 && sender.Duration != nil { - go func() { - time.Sleep(*sender.Duration) + if *sender.Duration != 0 { + go func() { + time.Sleep(*sender.Duration) + sender.Delete() + MSG := bot.GetMessage(id) + bot.Client.RecallGroupMessage(m.GroupCode, MSG["message-id"].(int32), MSG["internal-id"].(int32)) + }() + } else { sender.Delete() MSG := bot.GetMessage(id) bot.Client.RecallGroupMessage(m.GroupCode, MSG["message-id"].(int32), MSG["internal-id"].(int32)) - }() + } + } } return nil diff --git a/im/tg/tg.go b/im/tg/tg.go index 7c58529..b41eb1f 100644 --- a/im/tg/tg.go +++ b/im/tg/tg.go @@ -135,6 +135,10 @@ func (sender *Sender) IsMedia() bool { func (sender *Sender) Reply(msgs ...interface{}) error { msg := msgs[0] + if len(msgs) > 1 { + du := msgs[1].(time.Duration) + sender.Duration = &du + } var rt *tb.Message var r tb.Recipient var options = []interface{}{} @@ -161,11 +165,16 @@ func (sender *Sender) Reply(msgs ...interface{}) error { sender.Reply(err) } if rt != nil && sender.Duration != nil { - go func() { - time.Sleep(*sender.Duration) + if *sender.Duration != 0 { + go func() { + time.Sleep(*sender.Duration) + sender.Delete() + b.Delete(rt) + }() + } else { sender.Delete() b.Delete(rt) - }() + } } return err }