diff --git a/im/im.go b/im/im.go index cc6b57e..21df88e 100644 --- a/im/im.go +++ b/im/im.go @@ -18,6 +18,7 @@ type Sender interface { IsAdmin() bool IsMedia() bool Reply(interface{}) error + RecallGroupMessage() error } type Config struct { @@ -99,3 +100,7 @@ func (sender *Faker) IsMedia() bool { func (sender *Faker) Reply(msg interface{}) error { return nil } + +func (sender *Faker) RecallGroupMessage() error { + return nil +} diff --git a/im/qq/sender.go b/im/qq/sender.go index cd5d9e4..5c9f370 100644 --- a/im/qq/sender.go +++ b/im/qq/sender.go @@ -16,6 +16,17 @@ type Sender struct { matches [][]string } +func (sender *Sender) RecallGroupMessage() error { + switch sender.Message.(type) { + case *message.GroupMessage: + m := sender.Message.(*message.GroupMessage) + if err := bot.Client.RecallGroupMessage(m.GroupCode, m.Id, m.InternalId); err != nil { + return err + } + } + return nil +} + func (sender *Sender) GetContent() string { text := "" switch sender.Message.(type) { diff --git a/im/tg/tg.go b/im/tg/tg.go index dd51871..df110a8 100644 --- a/im/tg/tg.go +++ b/im/tg/tg.go @@ -152,3 +152,7 @@ func (sender *Sender) Reply(rt interface{}) error { } return err } + +func (sender *Sender) RecallGroupMessage() error { + return nil +}