update
This commit is contained in:
+1
-2
@@ -84,8 +84,7 @@ func handleMessage(sender Sender) {
|
|||||||
if v, ok := waits.Load(key); ok {
|
if v, ok := waits.Load(key); ok {
|
||||||
c := v.(*Carry)
|
c := v.(*Carry)
|
||||||
if m := regexp.MustCompile(c.Pattern).FindString(sender.GetContent()); m != "" {
|
if m := regexp.MustCompile(c.Pattern).FindString(sender.GetContent()); m != "" {
|
||||||
c.Sender = sender
|
c.Chan <- sender
|
||||||
c.Chan <- m
|
|
||||||
sender.Reply(<-c.Result)
|
sender.Reply(<-c.Result)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-7
@@ -30,7 +30,7 @@ type Sender interface {
|
|||||||
Finish()
|
Finish()
|
||||||
Continue()
|
Continue()
|
||||||
IsContinue() bool
|
IsContinue() bool
|
||||||
Await(Sender, func(string, Sender, error) interface{}, ...interface{})
|
Await(Sender, func(Sender, error) interface{}, ...interface{})
|
||||||
}
|
}
|
||||||
|
|
||||||
type Edit int
|
type Edit int
|
||||||
@@ -224,7 +224,7 @@ type Carry struct {
|
|||||||
Sender Sender
|
Sender Sender
|
||||||
}
|
}
|
||||||
|
|
||||||
func (_ *BaseSender) Await(sender Sender, callback func(string, Sender, error) interface{}, params ...interface{}) {
|
func (_ *BaseSender) Await(sender Sender, callback func(Sender, error) interface{}, params ...interface{}) {
|
||||||
c := &Carry{}
|
c := &Carry{}
|
||||||
timeout := time.Second * 20
|
timeout := time.Second * 20
|
||||||
for _, param := range params {
|
for _, param := range params {
|
||||||
@@ -237,7 +237,7 @@ func (_ *BaseSender) Await(sender Sender, callback func(string, Sender, error) i
|
|||||||
timeout = du
|
timeout = du
|
||||||
}
|
}
|
||||||
case func() string:
|
case func() string:
|
||||||
callback = param.(func(string, Sender, error) interface{})
|
callback = param.(func(Sender, error) interface{})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if callback == nil {
|
if callback == nil {
|
||||||
@@ -255,16 +255,16 @@ func (_ *BaseSender) Await(sender Sender, callback func(string, Sender, error) i
|
|||||||
select {
|
select {
|
||||||
case result := <-c.Chan:
|
case result := <-c.Chan:
|
||||||
switch result.(type) {
|
switch result.(type) {
|
||||||
case string:
|
case Sender:
|
||||||
waits.Delete(key)
|
waits.Delete(key)
|
||||||
c.Result <- callback(result.(string), c.Sender, nil)
|
c.Result <- callback(c.Sender, nil)
|
||||||
return
|
return
|
||||||
case error:
|
case error:
|
||||||
waits.Delete(key)
|
waits.Delete(key)
|
||||||
c.Result <- callback("", c.Sender, result.(error))
|
c.Result <- callback(nil, result.(error))
|
||||||
}
|
}
|
||||||
case <-time.After(timeout):
|
case <-time.After(timeout):
|
||||||
waits.Delete(key)
|
waits.Delete(key)
|
||||||
c.Result <- callback("", c.Sender, TimeOutError)
|
c.Result <- callback(nil, TimeOutError)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+35
-35
@@ -165,41 +165,41 @@ func init123() {
|
|||||||
v, _ := otto.ToValue(s.GetUsername())
|
v, _ := otto.ToValue(s.GetUsername())
|
||||||
return v
|
return v
|
||||||
})
|
})
|
||||||
vm.Set("Await", func(call otto.Value) interface{} {
|
// vm.Set("Await", func(call otto.Value) interface{} {
|
||||||
patternV, _ := call.Object().Get("pattern")
|
// patternV, _ := call.Object().Get("pattern")
|
||||||
timeoutV, _ := call.Object().Get("timeout")
|
// timeoutV, _ := call.Object().Get("timeout")
|
||||||
timeout, _ := timeoutV.ToInteger()
|
// timeout, _ := timeoutV.ToInteger()
|
||||||
pattern, _ := patternV.ToString()
|
// pattern, _ := patternV.ToString()
|
||||||
s.Await(s, func(s1 string, s2 Sender, e error) interface{} {
|
// s.Await(s, func(s1 string, s2 Sender, e error) interface{} {
|
||||||
s.Reply("-----")
|
// s.Reply("-----")
|
||||||
if e != nil {
|
// if e != nil {
|
||||||
s.Reply(e)
|
// s.Reply(e)
|
||||||
return nil
|
// return nil
|
||||||
}
|
// }
|
||||||
v, err := call.Object().Call("callback", s1)
|
// v, err := call.Object().Call("callback", s1)
|
||||||
s.Reply("-+-+-+")
|
// s.Reply("-+-+-+")
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
s.Reply(err)
|
// s.Reply(err)
|
||||||
return nil
|
// return nil
|
||||||
}
|
// }
|
||||||
deleteV, _ := v.Object().Get("delete")
|
// deleteV, _ := v.Object().Get("delete")
|
||||||
delete, _ := deleteV.ToBoolean()
|
// delete, _ := deleteV.ToBoolean()
|
||||||
if delete {
|
// if delete {
|
||||||
s2.Delete()
|
// s2.Delete()
|
||||||
}
|
// }
|
||||||
disappearV, _ := call.Object().Get("disappear")
|
// disappearV, _ := call.Object().Get("disappear")
|
||||||
disappear, _ := disappearV.ToInteger()
|
// disappear, _ := disappearV.ToInteger()
|
||||||
fmt.Println(disappear, "====")
|
// fmt.Println(disappear, "====")
|
||||||
s2.Disappear(time.Millisecond * time.Duration(disappear))
|
// s2.Disappear(time.Millisecond * time.Duration(disappear))
|
||||||
replyV, _ := v.Object().Get("reply")
|
// replyV, _ := v.Object().Get("reply")
|
||||||
reply, _ := replyV.ToString()
|
// reply, _ := replyV.ToString()
|
||||||
if reply != "" {
|
// if reply != "" {
|
||||||
return reply
|
// return reply
|
||||||
}
|
// }
|
||||||
return nil
|
// return nil
|
||||||
}, pattern, time.Millisecond*time.Duration(timeout))
|
// }, pattern, time.Millisecond*time.Duration(timeout))
|
||||||
return otto.Value{}
|
// return otto.Value{}
|
||||||
})
|
// })
|
||||||
vm.Set("GetUserID", func() otto.Value {
|
vm.Set("GetUserID", func() otto.Value {
|
||||||
v, _ := otto.ToValue(s.GetUserID())
|
v, _ := otto.ToValue(s.GetUserID())
|
||||||
return v
|
return v
|
||||||
|
|||||||
+7
-4
@@ -166,7 +166,7 @@ func initSys() {
|
|||||||
old := b.Get(s.Get(1))
|
old := b.Get(s.Get(1))
|
||||||
b.Set(s.Get(1), s.Get(2))
|
b.Set(s.Get(1), s.Get(2))
|
||||||
go func() {
|
go func() {
|
||||||
s.Await(s, func(_ string, _ Sender, e error) interface{} {
|
s.Await(s, func(_ Sender, e error) interface{} {
|
||||||
if e != nil {
|
if e != nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -261,7 +261,7 @@ Alias=sillyGirl.service`
|
|||||||
Handle: func(s Sender) interface{} {
|
Handle: func(s Sender) interface{} {
|
||||||
s.Reply("你已涉黄永久禁言。")
|
s.Reply("你已涉黄永久禁言。")
|
||||||
for {
|
for {
|
||||||
s.Await(s, func(_ string, s2 Sender, _ error) interface{} {
|
s.Await(s, func(s2 Sender, _ error) interface{} {
|
||||||
s2.Disappear(time.Millisecond * 50)
|
s2.Disappear(time.Millisecond * 50)
|
||||||
return "你已被禁言。"
|
return "你已被禁言。"
|
||||||
}, `[\s\S]*`, time.Duration(time.Second*300))
|
}, `[\s\S]*`, time.Duration(time.Second*300))
|
||||||
@@ -278,8 +278,11 @@ Alias=sillyGirl.service`
|
|||||||
}
|
}
|
||||||
s.Reply(data)
|
s.Reply(data)
|
||||||
for {
|
for {
|
||||||
s.Await(s, func(s1 string, s2 Sender, _ error) interface{} {
|
s.Await(s, func(s2 Sender, err error) interface{} {
|
||||||
cy := regexp.MustCompile("^[一-龥]{4}$").FindString(s1)
|
if err != nil {
|
||||||
|
s2.Reply(err)
|
||||||
|
}
|
||||||
|
cy := regexp.MustCompile("^[一-龥]{4}$").FindString(s2.GetContent())
|
||||||
if cy == "" {
|
if cy == "" {
|
||||||
s2.Disappear(time.Millisecond * 500)
|
s2.Disappear(time.Millisecond * 500)
|
||||||
return "请认真接龙,一站到底!。"
|
return "请认真接龙,一站到底!。"
|
||||||
|
|||||||
Reference in New Issue
Block a user