This commit is contained in:
cdle
2021-09-18 16:33:50 +08:00
parent 5fcb62b3fc
commit eb57ad0def
7 changed files with 36 additions and 52 deletions
-2
View File
@@ -8,12 +8,10 @@ import (
"github.com/astaxie/beego/logs" "github.com/astaxie/beego/logs"
"github.com/beego/beego/v2/adapter/httplib" "github.com/beego/beego/v2/adapter/httplib"
"github.com/cdle/sillyGirl/im"
"gopkg.in/yaml.v2" "gopkg.in/yaml.v2"
) )
type Yaml struct { type Yaml struct {
Im []im.Config
Replies []Reply Replies []Reply
} }
+5 -6
View File
@@ -6,7 +6,6 @@ import (
"strings" "strings"
"github.com/beego/beego/v2/adapter/logs" "github.com/beego/beego/v2/adapter/logs"
"github.com/cdle/sillyGirl/im"
cron "github.com/robfig/cron/v3" cron "github.com/robfig/cron/v3"
) )
@@ -21,7 +20,7 @@ type Function struct {
Rules []string Rules []string
FindAll bool FindAll bool
Admin bool Admin bool
Handle func(s im.Sender) interface{} Handle func(s Sender) interface{}
Cron string Cron string
} }
@@ -33,10 +32,10 @@ var name = func() string {
var functions = []Function{} var functions = []Function{}
var Senders chan im.Sender var Senders chan Sender
func initToHandleMessage() { func initToHandleMessage() {
Senders = make(chan im.Sender) Senders = make(chan Sender)
go func() { go func() {
for { for {
go handleMessage(<-Senders) go handleMessage(<-Senders)
@@ -63,7 +62,7 @@ func AddCommand(prefix string, cmds []Function) {
functions = append(functions, cmds[j]) functions = append(functions, cmds[j])
if cmds[j].Cron != "" { if cmds[j].Cron != "" {
if _, err := c.AddFunc(cmds[j].Cron, func() { if _, err := c.AddFunc(cmds[j].Cron, func() {
cmds[j].Handle(&im.Faker{}) cmds[j].Handle(&Faker{})
}); err != nil { }); err != nil {
logs.Warn("任务%v添加失败%v", cmds[j].Rules[0], err) logs.Warn("任务%v添加失败%v", cmds[j].Rules[0], err)
} else { } else {
@@ -73,7 +72,7 @@ func AddCommand(prefix string, cmds []Function) {
} }
} }
func handleMessage(sender im.Sender) { func handleMessage(sender Sender) {
for _, function := range functions { for _, function := range functions {
for _, rule := range function.Rules { for _, rule := range function.Rules {
var matched bool var matched bool
+1 -9
View File
@@ -1,4 +1,4 @@
package im package core
import ( import (
"time" "time"
@@ -26,14 +26,6 @@ type Sender interface {
Disappear(lifetime ...time.Duration) Disappear(lifetime ...time.Duration)
} }
type Config struct {
Type string
Masters []int
Groups []int
Token string
CustomConfig string
}
type Faker struct { type Faker struct {
Message interface{} Message interface{}
matches [][]string matches [][]string
+3 -4
View File
@@ -7,7 +7,6 @@ import (
"github.com/beego/beego/v2/adapter/httplib" "github.com/beego/beego/v2/adapter/httplib"
"github.com/buger/jsonparser" "github.com/buger/jsonparser"
"github.com/cdle/sillyGirl/im"
) )
type Reply struct { type Reply struct {
@@ -27,13 +26,13 @@ type Reply struct {
func InitReplies() { func InitReplies() {
for _, v := range Config.Replies { for _, v := range Config.Replies {
reply := v reply := v
var handler func(s im.Sender) interface{} var handler func(s Sender) interface{}
if reply.Type != "url" { if reply.Type != "url" {
handler = func(s im.Sender) interface{} { handler = func(s Sender) interface{} {
return reply.Content return reply.Content
} }
} }
handler = func(s im.Sender) interface{} { handler = func(s Sender) interface{} {
url := reply.Request.Url url := reply.Request.Url
body := reply.Request.Body body := reply.Request.Body
for k, v := range s.GetMatch() { for k, v := range s.GetMatch() {
+7 -9
View File
@@ -6,8 +6,6 @@ import (
"io/ioutil" "io/ioutil"
"strings" "strings"
"time" "time"
"github.com/cdle/sillyGirl/im"
) )
func init() { func init() {
@@ -37,7 +35,7 @@ func initSys() {
AddCommand("", []Function{ AddCommand("", []Function{
{ {
Rules: []string{"raw ^name$"}, Rules: []string{"raw ^name$"},
Handle: func(s im.Sender) interface{} { Handle: func(s Sender) interface{} {
s.Disappear() s.Disappear()
return name() return name()
}, },
@@ -45,7 +43,7 @@ func initSys() {
{ {
Rules: []string{"raw ^升级$"}, Rules: []string{"raw ^升级$"},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s Sender) interface{} {
s.Disappear() s.Disappear()
s.Reply(name() + "开始检查核心功能。") s.Reply(name() + "开始检查核心功能。")
update := false update := false
@@ -95,7 +93,7 @@ func initSys() {
{ {
Rules: []string{"raw ^重启$"}, Rules: []string{"raw ^重启$"},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s Sender) interface{} {
s.Disappear() s.Disappear()
sillyGirl.Set("rebootInfo", fmt.Sprintf("%v %v %v", s.GetImType(), s.GetChatID(), s.GetUserID())) sillyGirl.Set("rebootInfo", fmt.Sprintf("%v %v %v", s.GetImType(), s.GetChatID(), s.GetUserID()))
Daemon() Daemon()
@@ -104,7 +102,7 @@ func initSys() {
}, },
{ {
Rules: []string{"raw ^命令$"}, Rules: []string{"raw ^命令$"},
Handle: func(s im.Sender) interface{} { Handle: func(s Sender) interface{} {
s.Disappear() s.Disappear()
ss := []string{} ss := []string{}
for _, f := range functions { for _, f := range functions {
@@ -116,7 +114,7 @@ func initSys() {
{ {
Admin: true, Admin: true,
Rules: []string{"set ? ? ?"}, Rules: []string{"set ? ? ?"},
Handle: func(s im.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) {
@@ -129,7 +127,7 @@ func initSys() {
{ {
Admin: true, Admin: true,
Rules: []string{"delete ? ?"}, Rules: []string{"delete ? ?"},
Handle: func(s im.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) {
@@ -142,7 +140,7 @@ func initSys() {
{ {
Admin: true, Admin: true,
Rules: []string{"get ? ?"}, Rules: []string{"get ? ?"},
Handle: func(s im.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) {
+9 -10
View File
@@ -6,7 +6,6 @@ import (
"strings" "strings"
"github.com/cdle/sillyGirl/core" "github.com/cdle/sillyGirl/core"
"github.com/cdle/sillyGirl/im"
) )
func init() { func init() {
@@ -14,7 +13,7 @@ func init() {
{ {
Rules: []string{`config`}, Rules: []string{`config`},
Admin: true, Admin: true,
Handle: func(_ im.Sender) interface{} { Handle: func(_ core.Sender) interface{} {
config, err := GetConfig() config, err := GetConfig()
if err != nil { if err != nil {
return err return err
@@ -30,7 +29,7 @@ func init() {
{ {
Rules: []string{`envs`}, Rules: []string{`envs`},
Admin: true, Admin: true,
Handle: func(_ im.Sender) interface{} { Handle: func(_ core.Sender) interface{} {
envs, err := GetConfigEnvs("") envs, err := GetConfigEnvs("")
if err != nil { if err != nil {
return err return err
@@ -48,7 +47,7 @@ func init() {
{ {
Rules: []string{`env get ?`}, Rules: []string{`env get ?`},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s core.Sender) interface{} {
name := s.Get() name := s.Get()
envs, err := GetConfigEnvs(name) envs, err := GetConfigEnvs(name)
if err != nil { if err != nil {
@@ -69,7 +68,7 @@ func init() {
{ {
Rules: []string{`env find ?`}, Rules: []string{`env find ?`},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s core.Sender) interface{} {
m := s.Get() m := s.Get()
envs, err := GetConfigEnvs(m) envs, err := GetConfigEnvs(m)
if err != nil { if err != nil {
@@ -88,7 +87,7 @@ func init() {
{ {
Rules: []string{`env set ? ?`}, Rules: []string{`env set ? ?`},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s core.Sender) interface{} {
err := SetConfigEnv(Env{ err := SetConfigEnv(Env{
Name: s.Get(0), Name: s.Get(0),
Value: s.Get(1), Value: s.Get(1),
@@ -103,7 +102,7 @@ func init() {
// { // {
// Rules: []string{`env delete ?`}, // Rules: []string{`env delete ?`},
// Admin: true, // Admin: true,
// Handle: func(s im.Sender) interface{} { // Handle: func(s core.Sender) interface{} {
// if err := DelEnv(&Env{ID: s.Get()}); err != nil { // if err := DelEnv(&Env{ID: s.Get()}); err != nil {
// return err // return err
// } // }
@@ -113,7 +112,7 @@ func init() {
{ {
Rules: []string{`env remark ? ?`}, Rules: []string{`env remark ? ?`},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s core.Sender) interface{} {
if err := SetConfigEnv(Env{Name: s.Get(0), Remarks: s.Get(1), Status: 3}); err != nil { if err := SetConfigEnv(Env{Name: s.Get(0), Remarks: s.Get(1), Status: 3}); err != nil {
return err return err
} }
@@ -123,7 +122,7 @@ func init() {
{ {
Rules: []string{`env disable ?`}, Rules: []string{`env disable ?`},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s core.Sender) interface{} {
if err := SetConfigEnv(Env{Name: s.Get(), Status: 1}); err != nil { if err := SetConfigEnv(Env{Name: s.Get(), Status: 1}); err != nil {
return err return err
} }
@@ -133,7 +132,7 @@ func init() {
{ {
Rules: []string{`env enable ?`}, Rules: []string{`env enable ?`},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s core.Sender) interface{} {
if err := SetConfigEnv(Env{Name: s.Get()}); err != nil { if err := SetConfigEnv(Env{Name: s.Get()}); err != nil {
return err return err
} }
+11 -12
View File
@@ -7,7 +7,6 @@ import (
"strings" "strings"
"github.com/cdle/sillyGirl/core" "github.com/cdle/sillyGirl/core"
"github.com/cdle/sillyGirl/im"
) )
type CronResponse struct { type CronResponse struct {
@@ -34,7 +33,7 @@ func init() {
{ {
Rules: []string{`crons`}, Rules: []string{`crons`},
Admin: true, Admin: true,
Handle: func(_ im.Sender) interface{} { Handle: func(_ core.Sender) interface{} {
crons, err := GetCrons("") crons, err := GetCrons("")
if err != nil { if err != nil {
return err return err
@@ -52,7 +51,7 @@ func init() {
{ {
Rules: []string{`cron status ?`}, Rules: []string{`cron status ?`},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s core.Sender) interface{} {
keyword := s.Get() keyword := s.Get()
crons, err := GetCrons("") crons, err := GetCrons("")
if err != nil { if err != nil {
@@ -77,7 +76,7 @@ func init() {
{ {
Rules: []string{`cron run ?`}, Rules: []string{`cron run ?`},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s core.Sender) interface{} {
cron, err := GetCronID(s.Get()) cron, err := GetCronID(s.Get())
if err != nil { if err != nil {
return err return err
@@ -91,7 +90,7 @@ func init() {
{ {
Rules: []string{`cron stop ?`}, Rules: []string{`cron stop ?`},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s core.Sender) interface{} {
cron, err := GetCronID(s.Get()) cron, err := GetCronID(s.Get())
if err != nil { if err != nil {
return err return err
@@ -105,7 +104,7 @@ func init() {
{ {
Rules: []string{`cron enable ?`}, Rules: []string{`cron enable ?`},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s core.Sender) interface{} {
cron, err := GetCronID(s.Get()) cron, err := GetCronID(s.Get())
if err != nil { if err != nil {
return err return err
@@ -119,7 +118,7 @@ func init() {
{ {
Rules: []string{`cron disable ?`}, Rules: []string{`cron disable ?`},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s core.Sender) interface{} {
cron, err := GetCronID(s.Get()) cron, err := GetCronID(s.Get())
if err != nil { if err != nil {
return err return err
@@ -133,7 +132,7 @@ func init() {
{ {
Rules: []string{`cron find ?`}, Rules: []string{`cron find ?`},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s core.Sender) interface{} {
name := s.Get() name := s.Get()
crons, err := GetCrons("") crons, err := GetCrons("")
if err != nil { if err != nil {
@@ -154,7 +153,7 @@ func init() {
{ {
Rules: []string{`cron logs ?`}, Rules: []string{`cron logs ?`},
Admin: true, Admin: true,
Handle: func(s im.Sender) interface{} { Handle: func(s core.Sender) interface{} {
cron, err := GetCronID(s.Get()) cron, err := GetCronID(s.Get())
if err != nil { if err != nil {
return err return err
@@ -169,7 +168,7 @@ func init() {
{ {
Rules: []string{`update`}, Rules: []string{`update`},
Admin: true, Admin: true,
Handle: func(_ im.Sender) interface{} { Handle: func(_ core.Sender) interface{} {
cron, err := GetCronID("更新面板") cron, err := GetCronID("更新面板")
if err != nil { if err != nil {
return err return err
@@ -183,7 +182,7 @@ func init() {
{ {
Rules: []string{`update logs`}, Rules: []string{`update logs`},
Admin: true, Admin: true,
Handle: func(_ im.Sender) interface{} { Handle: func(_ core.Sender) interface{} {
cron, err := GetCronID("更新面板") cron, err := GetCronID("更新面板")
if err != nil { if err != nil {
return err return err
@@ -199,7 +198,7 @@ func init() {
Rules: []string{`cron hide duplicate`}, Rules: []string{`cron hide duplicate`},
Admin: true, Admin: true,
Cron: "*/10 * * * *", Cron: "*/10 * * * *",
Handle: func(_ im.Sender) interface{} { Handle: func(_ core.Sender) interface{} {
w := func(s string) int { w := func(s string) int {
if strings.Contains(s, "shufflewzc") { if strings.Contains(s, "shufflewzc") {
return 1 return 1