This commit is contained in:
cdle
2021-09-18 16:51:59 +08:00
parent eb57ad0def
commit 0cf8a74065
4 changed files with 24 additions and 7 deletions
+2
View File
@@ -26,6 +26,8 @@ type Sender interface {
Disappear(lifetime ...time.Duration) Disappear(lifetime ...time.Duration)
} }
type Edit string
type Faker struct { type Faker struct {
Message interface{} Message interface{}
matches [][]string matches [][]string
-1
View File
@@ -44,7 +44,6 @@ func initSys() {
Rules: []string{"raw ^升级$"}, Rules: []string{"raw ^升级$"},
Admin: true, Admin: true,
Handle: func(s Sender) interface{} { Handle: func(s Sender) interface{} {
s.Disappear()
s.Reply(name() + "开始检查核心功能。") s.Reply(name() + "开始检查核心功能。")
update := false update := false
record := func(b bool) { record := func(b bool) {
+4 -1
View File
@@ -151,10 +151,13 @@ func (sender *Sender) IsMedia() bool {
func (sender *Sender) Reply(msgs ...interface{}) error { func (sender *Sender) Reply(msgs ...interface{}) error {
msg := msgs[0] msg := msgs[0]
if len(msgs) > 1 { for _, item := range msgs {
switch item.(type) {
case time.Duration:
du := msgs[1].(time.Duration) du := msgs[1].(time.Duration)
sender.Duration = &du sender.Duration = &du
} }
}
switch sender.Message.(type) { switch sender.Message.(type) {
case *message.PrivateMessage: case *message.PrivateMessage:
m := sender.Message.(*message.PrivateMessage) m := sender.Message.(*message.PrivateMessage)
+14 -1
View File
@@ -16,6 +16,7 @@ type Sender struct {
matches [][]string matches [][]string
Duration *time.Duration Duration *time.Duration
deleted bool deleted bool
reply *tb.Message
} }
var tg = core.NewBucket("tg") var tg = core.NewBucket("tg")
@@ -135,10 +136,17 @@ func (sender *Sender) IsMedia() bool {
func (sender *Sender) Reply(msgs ...interface{}) error { func (sender *Sender) Reply(msgs ...interface{}) error {
msg := msgs[0] msg := msgs[0]
if len(msgs) > 1 { var edit *core.Edit
for _, item := range msgs {
switch item.(type) {
case core.Edit:
v := msgs[2].(core.Edit)
edit = &v
case time.Duration:
du := msgs[1].(time.Duration) du := msgs[1].(time.Duration)
sender.Duration = &du sender.Duration = &du
} }
}
var rt *tb.Message var rt *tb.Message
var r tb.Recipient var r tb.Recipient
var options = []interface{}{} var options = []interface{}{}
@@ -157,6 +165,10 @@ func (sender *Sender) Reply(msgs ...interface{}) 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 {
b.Edit(sender.reply, msg.(string))
return nil
}
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...)
@@ -176,6 +188,7 @@ func (sender *Sender) Reply(msgs ...interface{}) error {
b.Delete(rt) b.Delete(rt)
} }
} }
sender.reply = rt
return err return err
} }