From 3b054ae145ea8cac7bf27c6a0e7cdaddaa54587e Mon Sep 17 00:00:00 2001 From: cdle <798731886@qq.com> Date: Sat, 18 Sep 2021 17:28:22 +0800 Subject: [PATCH] update --- core/im.go | 2 ++ im/tg/tg.go | 21 +++++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/core/im.go b/core/im.go index da3f9b8..cf417c1 100644 --- a/core/im.go +++ b/core/im.go @@ -27,8 +27,10 @@ type Sender interface { } type Edit int +type Replace int var E Edit +var R Replace type Faker struct { Message interface{} diff --git a/im/tg/tg.go b/im/tg/tg.go index 9261751..aa9110a 100644 --- a/im/tg/tg.go +++ b/im/tg/tg.go @@ -137,11 +137,15 @@ func (sender *Sender) IsMedia() bool { func (sender *Sender) Reply(msgs ...interface{}) (int, error) { msg := msgs[0] var edit *core.Edit + var replace *core.Replace for _, item := range msgs { switch item.(type) { case core.Edit: v := item.(core.Edit) edit = &v + case core.Replace: + v := item.(core.Replace) + replace = &v case time.Duration: du := item.(time.Duration) sender.Duration = &du @@ -165,10 +169,23 @@ func (sender *Sender) Reply(msgs ...interface{}) (int, error) { case []byte: rt, err = b.Send(r, string(msg.([]byte)), options...) case string: - if edit != nil && sender.reply != nil { - b.Edit(sender.reply, msg.(string)) + if edit != nil { + if *edit == 0 { + if sender.reply != nil { + b.Edit(sender.reply, msg.(string)) + } + } else { + b.Edit(&tb.Message{ + ID: int(*edit), + }, msg.(string)) + } return sender.reply.ID, nil } + if replace != nil { + b.Delete(&tb.Message{ + ID: int(*edit), + }) + } rt, err = b.Send(r, msg.(string), options...) case *http.Response: _, err = b.SendAlbum(r, tb.Album{&tb.Photo{File: tb.FromReader(msg.(*http.Response).Body)}}, options...)