x
This commit is contained in:
@@ -57,6 +57,7 @@ type Factory struct {
|
|||||||
ctx context.Context
|
ctx context.Context
|
||||||
cancel context.CancelFunc
|
cancel context.CancelFunc
|
||||||
destroid bool
|
destroid bool
|
||||||
|
errorTimes int
|
||||||
}
|
}
|
||||||
|
|
||||||
type Bot [2]string //botplt botid
|
type Bot [2]string //botplt botid
|
||||||
@@ -181,6 +182,41 @@ func (f *Factory) Init(botplt, botid string) {
|
|||||||
botid = fmt.Sprintf("(%s)", botid)
|
botid = fmt.Sprintf("(%s)", botid)
|
||||||
}
|
}
|
||||||
console.Log("%s机器人%s已初始化", botplt, botid)
|
console.Log("%s机器人%s已初始化", botplt, botid)
|
||||||
|
go func() {
|
||||||
|
if f.uuid != "" {
|
||||||
|
su := &ScriptUtils{
|
||||||
|
script: plugins.GetString(f.uuid),
|
||||||
|
}
|
||||||
|
str := su.GetValue("message")
|
||||||
|
if str == "" {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ss := regexp.MustCompile(`\S+`).FindAllString(str, -1)
|
||||||
|
if len(ss) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if ss[0] != f.botplt {
|
||||||
|
ss = []string{f.botplt}
|
||||||
|
}
|
||||||
|
nss := utils.Unique(ss, f.botid)
|
||||||
|
nstr := strings.Join(nss, " ")
|
||||||
|
if str != nstr {
|
||||||
|
su.SetValue("message", nstr)
|
||||||
|
plugins.Set(f.uuid, su.script)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *Factory) Fail() {
|
||||||
|
f.errorTimes++
|
||||||
|
if f.errorTimes > 5 {
|
||||||
|
f.Destroy()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *Factory) Success() {
|
||||||
|
f.errorTimes = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Factory) IsAdapter(botid string) bool {
|
func (f *Factory) IsAdapter(botid string) bool {
|
||||||
@@ -209,6 +245,35 @@ func (f *Factory) Destroy() {
|
|||||||
botid = f.botid
|
botid = f.botid
|
||||||
}
|
}
|
||||||
console.Log("%s机器人%s已销毁", strings.ToUpper(f.botplt), botid)
|
console.Log("%s机器人%s已销毁", strings.ToUpper(f.botplt), botid)
|
||||||
|
go func() {
|
||||||
|
if f.uuid != "" {
|
||||||
|
su := &ScriptUtils{
|
||||||
|
script: plugins.GetString(f.uuid),
|
||||||
|
}
|
||||||
|
str := su.GetValue("message")
|
||||||
|
if str == "" {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ss := regexp.MustCompile(`\S+`).FindAllString(str, -1)
|
||||||
|
if len(ss) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if ss[0] != f.botplt {
|
||||||
|
ss = []string{f.botplt}
|
||||||
|
}
|
||||||
|
nss := utils.Unique(utils.Remove(ss, f.botid))
|
||||||
|
if len(nss) == 1 {
|
||||||
|
su.DeleteValue("message")
|
||||||
|
plugins.Set(f.uuid, su.script)
|
||||||
|
} else {
|
||||||
|
nstr := strings.Join(nss, " ")
|
||||||
|
if str != nstr {
|
||||||
|
su.SetValue("message", nstr)
|
||||||
|
plugins.Set(f.uuid, su.script)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Factory) Push(msg map[string]string) (string, error) {
|
func (f *Factory) Push(msg map[string]string) (string, error) {
|
||||||
@@ -528,6 +593,7 @@ func (sender *CustomSender) Reply(msgs ...interface{}) (string, error) {
|
|||||||
})
|
})
|
||||||
vm.Set("msg", proxy)
|
vm.Set("msg", proxy)
|
||||||
vm.Set("message", proxy)
|
vm.Set("message", proxy)
|
||||||
|
vm.Set("adapter", sender.f)
|
||||||
})
|
})
|
||||||
return message_id, nil
|
return message_id, nil
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user