This commit is contained in:
cdle
2021-10-11 17:01:03 +08:00
parent ecec622323
commit 6b2419d2e4
3 changed files with 6 additions and 3 deletions
+2
View File
@@ -81,8 +81,10 @@ func AddCommand(prefix string, cmds []Function) {
func handleMessage(sender Sender) { func handleMessage(sender Sender) {
defer sender.Finish() defer sender.Finish()
key := fmt.Sprintf("u=%v&c=%v&i=%v", sender.GetUserID(), sender.GetChatID(), sender.GetImType()) key := fmt.Sprintf("u=%v&c=%v&i=%v", sender.GetUserID(), sender.GetChatID(), sender.GetImType())
fmt.Println(key)
if v, ok := waits.Load(key); ok { if v, ok := waits.Load(key); ok {
c := v.(Carry) c := v.(Carry)
fmt.Println(c, "-----")
if m := regexp.MustCompile(c.Pattern).FindString(sender.GetContent()); m != "" { if m := regexp.MustCompile(c.Pattern).FindString(sender.GetContent()); m != "" {
c.Chan <- m c.Chan <- m
sender.Reply(<-c.Result) sender.Reply(<-c.Result)
+3 -2
View File
@@ -247,18 +247,19 @@ func (sender *BaseSender) Await(callback func(string, error) interface{}, params
if oc, ok := waits.LoadOrStore(key, c); ok { if oc, ok := waits.LoadOrStore(key, c); ok {
oc.(Carry).Chan <- InterruptError oc.(Carry).Chan <- InterruptError
} }
defer waits.Delete(key)
select { select {
case result := <-c.Chan: case result := <-c.Chan:
switch result.(type) { switch result.(type) {
case string: case string:
waits.Delete(key)
c.Result <- callback(result.(string), nil) c.Result <- callback(result.(string), nil)
return return
case error: case error:
waits.Delete(key)
c.Result <- callback("", result.(error)) c.Result <- callback("", result.(error))
} }
return
case <-time.After(timeout): case <-time.After(timeout):
waits.Delete(key)
c.Result <- callback("", TimeOutError) c.Result <- callback("", TimeOutError)
} }
} }
+1 -1
View File
@@ -156,7 +156,7 @@ func initSys() {
Admin: true, Admin: true,
Rules: []string{"set ? ? ?"}, Rules: []string{"set ? ? ?"},
Handle: func(s Sender) interface{} { Handle: func(s Sender) interface{} {
s.Disappear() // s.Disappear()
b := Bucket(s.Get(0)) b := Bucket(s.Get(0))
if !IsBucket(b) { if !IsBucket(b) {
return errors.New("不存在的存储桶") return errors.New("不存在的存储桶")