From 6b2419d2e43bfec1322b3434afd7bc3c7871f797 Mon Sep 17 00:00:00 2001 From: cdle <798731886@qq.com> Date: Mon, 11 Oct 2021 17:01:03 +0800 Subject: [PATCH] update --- core/function.go | 2 ++ core/im.go | 5 +++-- core/test.go | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/core/function.go b/core/function.go index eaa7aac..08b116e 100644 --- a/core/function.go +++ b/core/function.go @@ -81,8 +81,10 @@ func AddCommand(prefix string, cmds []Function) { func handleMessage(sender Sender) { defer sender.Finish() 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 { c := v.(Carry) + fmt.Println(c, "-----") if m := regexp.MustCompile(c.Pattern).FindString(sender.GetContent()); m != "" { c.Chan <- m sender.Reply(<-c.Result) diff --git a/core/im.go b/core/im.go index 2be3f9f..fe3750e 100644 --- a/core/im.go +++ b/core/im.go @@ -247,18 +247,19 @@ func (sender *BaseSender) Await(callback func(string, error) interface{}, params if oc, ok := waits.LoadOrStore(key, c); ok { oc.(Carry).Chan <- InterruptError } - defer waits.Delete(key) select { case result := <-c.Chan: switch result.(type) { case string: + waits.Delete(key) c.Result <- callback(result.(string), nil) return case error: + waits.Delete(key) c.Result <- callback("", result.(error)) } - return case <-time.After(timeout): + waits.Delete(key) c.Result <- callback("", TimeOutError) } } diff --git a/core/test.go b/core/test.go index 24c134d..f8978b2 100644 --- a/core/test.go +++ b/core/test.go @@ -156,7 +156,7 @@ func initSys() { Admin: true, Rules: []string{"set ? ? ?"}, Handle: func(s Sender) interface{} { - s.Disappear() + // s.Disappear() b := Bucket(s.Get(0)) if !IsBucket(b) { return errors.New("不存在的存储桶")