update
This commit is contained in:
@@ -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
@@ -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,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
@@ -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
@@ -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) {
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user