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)
}
type Edit string
type Faker struct {
Message interface{}
matches [][]string
-1
View File
@@ -44,7 +44,6 @@ func initSys() {
Rules: []string{"raw ^升级$"},
Admin: true,
Handle: func(s Sender) interface{} {
s.Disappear()
s.Reply(name() + "开始检查核心功能。")
update := false
record := func(b bool) {
+6 -3
View File
@@ -151,9 +151,12 @@ func (sender *Sender) IsMedia() bool {
func (sender *Sender) Reply(msgs ...interface{}) error {
msg := msgs[0]
if len(msgs) > 1 {
du := msgs[1].(time.Duration)
sender.Duration = &du
for _, item := range msgs {
switch item.(type) {
case time.Duration:
du := msgs[1].(time.Duration)
sender.Duration = &du
}
}
switch sender.Message.(type) {
case *message.PrivateMessage:
+16 -3
View File
@@ -16,6 +16,7 @@ type Sender struct {
matches [][]string
Duration *time.Duration
deleted bool
reply *tb.Message
}
var tg = core.NewBucket("tg")
@@ -135,9 +136,16 @@ func (sender *Sender) IsMedia() bool {
func (sender *Sender) Reply(msgs ...interface{}) error {
msg := msgs[0]
if len(msgs) > 1 {
du := msgs[1].(time.Duration)
sender.Duration = &du
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)
sender.Duration = &du
}
}
var rt *tb.Message
var r tb.Recipient
@@ -157,6 +165,10 @@ func (sender *Sender) Reply(msgs ...interface{}) 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))
return nil
}
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...)
@@ -176,6 +188,7 @@ func (sender *Sender) Reply(msgs ...interface{}) error {
b.Delete(rt)
}
}
sender.reply = rt
return err
}