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