From 0ddb88de04c7f785598437740f19c200dcc592b8 Mon Sep 17 00:00:00 2001 From: cdle <798731886@qq.com> Date: Fri, 17 Sep 2021 19:25:45 +0800 Subject: [PATCH] update --- im/im.go | 15 +++++++++++---- im/qq/main.go | 4 ++++ im/qq/sender.go | 10 ++++++++-- im/tg/tg.go | 45 +++++++++++++++++++++------------------------ 4 files changed, 44 insertions(+), 30 deletions(-) diff --git a/im/im.go b/im/im.go index 21df88e..881a049 100644 --- a/im/im.go +++ b/im/im.go @@ -1,5 +1,7 @@ package im +import "time" + type Sender interface { GetUserID() int GetChatID() int @@ -17,8 +19,9 @@ type Sender interface { GetContent() string IsAdmin() bool IsMedia() bool - Reply(interface{}) error - RecallGroupMessage() error + Reply(...interface{}) error + Delete() error + Disappear(lifetime ...time.Duration) } type Config struct { @@ -97,10 +100,14 @@ func (sender *Faker) IsMedia() bool { return false } -func (sender *Faker) Reply(msg interface{}) error { +func (sender *Faker) Reply(msgs ...interface{}) error { return nil } -func (sender *Faker) RecallGroupMessage() error { +func (sender *Faker) Delete() error { return nil } + +func (sender *Faker) Disappear(lifetime ...time.Duration) { + +} diff --git a/im/qq/main.go b/im/qq/main.go index 6380122..8d32e61 100644 --- a/im/qq/main.go +++ b/im/qq/main.go @@ -224,3 +224,7 @@ func init() { bot.SendGroupMessage(int64(i), &message.SendingMessage{Elements: []message.IMessageElement{&message.AtElement{Target: int64(j)}, &message.TextElement{Content: s}}}) } } + +func (sender *Sender) Temporary() { + +} diff --git a/im/qq/sender.go b/im/qq/sender.go index c3121f5..d889f5b 100644 --- a/im/qq/sender.go +++ b/im/qq/sender.go @@ -6,6 +6,7 @@ import ( "io/ioutil" "net/http" "strings" + "time" "github.com/Mrs4s/MiraiGo/message" "github.com/Mrs4s/go-cqhttp/coolq" @@ -138,7 +139,8 @@ func (sender *Sender) IsMedia() bool { return false } -func (sender *Sender) Reply(msg interface{}) error { +func (sender *Sender) Reply(msgs ...interface{}) error { + msg := msgs[0] if sender.chat != nil { sender.chat.Push(msg) return nil @@ -182,7 +184,7 @@ func (sender *Sender) Reply(msg interface{}) error { return nil } -func (sender *Sender) RecallGroupMessage() error { +func (sender *Sender) Delete() error { switch sender.Message.(type) { case *message.GroupMessage: sender.chat = &core.Chat{ @@ -197,3 +199,7 @@ func (sender *Sender) RecallGroupMessage() error { } return nil } + +func (sender *Sender) Disappear(lifetime ...time.Duration) { + +} diff --git a/im/tg/tg.go b/im/tg/tg.go index c353810..759507b 100644 --- a/im/tg/tg.go +++ b/im/tg/tg.go @@ -12,9 +12,9 @@ import ( ) type Sender struct { - Message *tb.Message - matches [][]string - chat *core.Chat + Message *tb.Message + matches [][]string + Duration *time.Duration } var tg = core.NewBucket("tg") @@ -130,11 +130,9 @@ func (sender *Sender) IsMedia() bool { return false } -func (sender *Sender) Reply(rt interface{}) error { - if sender.chat != nil { - sender.chat.Push(rt) - return nil - } +func (sender *Sender) Reply(msgs ...interface{}) error { + msg := msgs[0] + var rt *tb.Message var r tb.Recipient var options = []interface{}{} if !sender.Message.FromGroup() { @@ -144,31 +142,30 @@ func (sender *Sender) Reply(rt interface{}) error { options = []interface{}{&tb.SendOptions{ReplyTo: sender.Message}} } var err error - switch rt.(type) { + switch msg.(type) { case error: - _, err = b.Send(r, fmt.Sprintf("%v", rt), options...) + rt, err = b.Send(r, fmt.Sprintf("%v", msg), options...) case []byte: - _, err = b.Send(r, string(rt.([]byte)), options...) + rt, err = b.Send(r, string(msg.([]byte)), options...) case string: - _, err = b.Send(r, rt.(string), options...) + rt, err = b.Send(r, msg.(string), options...) case *http.Response: - _, err = b.SendAlbum(r, tb.Album{&tb.Photo{File: tb.FromReader(rt.(*http.Response).Body)}}, options...) + _, err = b.SendAlbum(r, tb.Album{&tb.Photo{File: tb.FromReader(msg.(*http.Response).Body)}}, options...) } if err != nil { sender.Reply(err) + } + if rt != nil { + } return err } -func (sender *Sender) RecallGroupMessage() error { - cid := sender.GetChatID() - if cid == 0 { - return nil - } - sender.chat = &core.Chat{ - Class: sender.GetImType(), - ID: sender.GetChatID(), - UserID: sender.GetUserID(), - } - return b.Delete(sender.Message) +func (sender *Sender) Delete() error { + msg := *sender.Message + return b.Delete(&msg) +} + +func (sender *Sender) Disappear(lifetime ...time.Duration) { + }