This commit is contained in:
cdle
2021-09-18 17:28:22 +08:00
parent 5398276137
commit 3b054ae145
2 changed files with 21 additions and 2 deletions
+2
View File
@@ -27,8 +27,10 @@ type Sender interface {
} }
type Edit int type Edit int
type Replace int
var E Edit var E Edit
var R Replace
type Faker struct { type Faker struct {
Message interface{} Message interface{}
+19 -2
View File
@@ -137,11 +137,15 @@ func (sender *Sender) IsMedia() bool {
func (sender *Sender) Reply(msgs ...interface{}) (int, error) { func (sender *Sender) Reply(msgs ...interface{}) (int, error) {
msg := msgs[0] msg := msgs[0]
var edit *core.Edit var edit *core.Edit
var replace *core.Replace
for _, item := range msgs { for _, item := range msgs {
switch item.(type) { switch item.(type) {
case core.Edit: case core.Edit:
v := item.(core.Edit) v := item.(core.Edit)
edit = &v edit = &v
case core.Replace:
v := item.(core.Replace)
replace = &v
case time.Duration: case time.Duration:
du := item.(time.Duration) du := item.(time.Duration)
sender.Duration = &du sender.Duration = &du
@@ -165,10 +169,23 @@ func (sender *Sender) Reply(msgs ...interface{}) (int, error) {
case []byte: case []byte:
rt, err = b.Send(r, string(msg.([]byte)), options...) rt, err = b.Send(r, string(msg.([]byte)), options...)
case string: case string:
if edit != nil && sender.reply != nil { if edit != nil {
b.Edit(sender.reply, msg.(string)) 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 return sender.reply.ID, nil
} }
if replace != nil {
b.Delete(&tb.Message{
ID: int(*edit),
})
}
rt, err = b.Send(r, msg.(string), options...) rt, err = b.Send(r, msg.(string), options...)
case *http.Response: case *http.Response:
_, err = b.SendAlbum(r, tb.Album{&tb.Photo{File: tb.FromReader(msg.(*http.Response).Body)}}, options...) _, err = b.SendAlbum(r, tb.Album{&tb.Photo{File: tb.FromReader(msg.(*http.Response).Body)}}, options...)