Files
2021-10-28 19:27:40 +08:00

96 lines
2.4 KiB
Go

package qinglong
import (
"fmt"
"strings"
"time"
"github.com/cdle/sillyGirl/core"
)
func init() {
core.AddCommand("ql", []core.Function{
{
Rules: []string{`\r\a\w ?`},
Admin: true,
Handle: func(s core.Sender) interface{} {
cron := &Carrier{
Get: "data._id",
}
if err := Config.Req(cron, CRONS, POST, []byte(`{"name":"sillyGirl临时创建任务","command":"ql raw `+s.Get()+`","schedule":" 1 1 1 1 1"}`)); err != nil {
return err
}
if err := Config.Req(CRONS, PUT, "/run", []byte(fmt.Sprintf(`["%s"]`, cron.Value))); err != nil {
return err
}
for {
time.Sleep(time.Microsecond * 300)
data, _ := GetCronLog(cron.Value)
if strings.Contains(data, "执行结束...") {
s.Reply(data)
break
}
}
if err := Config.Req(CRONS, DELETE, []byte(`["`+cron.Value+`"]`)); err != nil {
return err
}
return nil
},
},
{
Rules: []string{`task ?`},
Admin: true,
Handle: func(s core.Sender) interface{} {
cron := &Carrier{
Get: "data._id",
}
if err := Config.Req(cron, CRONS, POST, []byte(`{"name":"sillyGirl临时创建任务","command":"task `+s.Get()+`","schedule":" 1 1 1 1 1"}`)); err != nil {
return err
}
if err := Config.Req(CRONS, PUT, "/run", []byte(fmt.Sprintf(`["%s"]`, cron.Value))); err != nil {
return err
}
for {
time.Sleep(time.Second)
data, _ := GetCronLog(cron.Value)
if strings.Contains(data, "执行结束...") {
s.Reply(data)
break
}
}
if err := Config.Req(cron, CRONS, DELETE, []byte(`["`+cron.Value+`"]`)); err != nil {
return err
}
return nil
},
},
{
Rules: []string{`repo ?`},
Admin: true,
Handle: func(s core.Sender) interface{} {
cron := &Carrier{
Get: "data._id",
}
if err := Config.Req(cron, CRONS, POST, []byte(`{"name":"sillyGirl临时创建任务","command":"ql repo `+s.Get()+`","schedule":" 1 1 1 1 1"}`)); err != nil {
return err
}
if err := Config.Req(CRONS, PUT, "/run", []byte(fmt.Sprintf(`["%s"]`, cron.Value))); err != nil {
return err
}
for {
time.Sleep(time.Second)
data, _ := GetCronLog(cron.Value)
if strings.Contains(data, "执行结束...") {
s.Reply(data)
break
}
}
if err := Config.Req(cron, CRONS, DELETE, []byte(`["`+cron.Value+`"]`)); err != nil {
return err
}
return nil
},
},
})
}