update
This commit is contained in:
@@ -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
@@ -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
|
||||
|
||||
+107
@@ -0,0 +1,107 @@
|
||||
package core
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
type Sender interface {
|
||||
GetUserID() int
|
||||
GetChatID() int
|
||||
GetImType() string
|
||||
GetMessageID() int
|
||||
GetUsername() string
|
||||
IsReply() bool
|
||||
GetReplySenderUserID() int
|
||||
GetRawMessage() interface{}
|
||||
SetMatch([]string)
|
||||
SetAllMatch([][]string)
|
||||
GetMatch() []string
|
||||
GetAllMatch() [][]string
|
||||
Get(...int) string
|
||||
GetContent() string
|
||||
IsAdmin() bool
|
||||
IsMedia() bool
|
||||
Reply(...interface{}) error
|
||||
Delete() error
|
||||
Disappear(lifetime ...time.Duration)
|
||||
}
|
||||
|
||||
type Faker struct {
|
||||
Message interface{}
|
||||
matches [][]string
|
||||
}
|
||||
|
||||
func (sender *Faker) GetContent() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (sender *Faker) GetUserID() int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (sender *Faker) GetChatID() int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (sender *Faker) GetImType() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (sender *Faker) GetMessageID() int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (sender *Faker) GetUsername() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (sender *Faker) IsReply() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (sender *Faker) GetReplySenderUserID() int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (sender *Faker) GetRawMessage() interface{} {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (sender *Faker) SetMatch(ss []string) {
|
||||
|
||||
}
|
||||
func (sender *Faker) SetAllMatch(ss [][]string) {
|
||||
|
||||
}
|
||||
|
||||
func (sender *Faker) GetMatch() []string {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (sender *Faker) GetAllMatch() [][]string {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (sender *Faker) Get(index ...int) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (sender *Faker) IsAdmin() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (sender *Faker) IsMedia() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (sender *Faker) Reply(msgs ...interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (sender *Faker) Delete() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (sender *Faker) Disappear(lifetime ...time.Duration) {
|
||||
|
||||
}
|
||||
+3
-4
@@ -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
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user