diff --git a/core/im.go b/core/im.go index 22ac915..da3f9b8 100644 --- a/core/im.go +++ b/core/im.go @@ -21,7 +21,7 @@ type Sender interface { GetContent() string IsAdmin() bool IsMedia() bool - Reply(...interface{}) error + Reply(...interface{}) (int, error) Delete() error Disappear(lifetime ...time.Duration) } @@ -98,8 +98,8 @@ func (sender *Faker) IsMedia() bool { return false } -func (sender *Faker) Reply(msgs ...interface{}) error { - return nil +func (sender *Faker) Reply(msgs ...interface{}) (int, error) { + return 0, nil } func (sender *Faker) Delete() error { diff --git a/im/qq/sender.go b/im/qq/sender.go index 1c1c329..b5e629c 100644 --- a/im/qq/sender.go +++ b/im/qq/sender.go @@ -149,7 +149,7 @@ func (sender *Sender) IsMedia() bool { return false } -func (sender *Sender) Reply(msgs ...interface{}) error { +func (sender *Sender) Reply(msgs ...interface{}) (int, error) { msg := msgs[0] for _, item := range msgs { switch item.(type) { @@ -225,7 +225,7 @@ func (sender *Sender) Reply(msgs ...interface{}) error { } } - return nil + return 0, nil } func (sender *Sender) Delete() error { diff --git a/im/tg/tg.go b/im/tg/tg.go index 5ffbae1..9261751 100644 --- a/im/tg/tg.go +++ b/im/tg/tg.go @@ -134,7 +134,7 @@ func (sender *Sender) IsMedia() bool { return false } -func (sender *Sender) Reply(msgs ...interface{}) error { +func (sender *Sender) Reply(msgs ...interface{}) (int, error) { msg := msgs[0] var edit *core.Edit for _, item := range msgs { @@ -167,7 +167,7 @@ func (sender *Sender) Reply(msgs ...interface{}) error { case string: if edit != nil && sender.reply != nil { b.Edit(sender.reply, msg.(string)) - return nil + return sender.reply.ID, nil } rt, err = b.Send(r, msg.(string), options...) case *http.Response: @@ -189,7 +189,7 @@ func (sender *Sender) Reply(msgs ...interface{}) error { } } sender.reply = rt - return err + return sender.reply.ID, err } func (sender *Sender) Delete() error {