x
This commit is contained in:
+8
-15
@@ -692,8 +692,10 @@ func (sender *CustomSender) Action(options map[string]interface{}) (interface{},
|
||||
one = any
|
||||
}
|
||||
if one != nil {
|
||||
one.Handle(&Faker{
|
||||
Type: "action",
|
||||
one.Handle(&CustomSender{
|
||||
F: &Factory{
|
||||
botplt: "action",
|
||||
},
|
||||
}, func(vm *goja.Runtime) {
|
||||
obj := vm.NewObject()
|
||||
for k, v := range options {
|
||||
@@ -798,8 +800,10 @@ func (sender *CustomSender) Reply(msgs ...interface{}) (string, error) {
|
||||
}
|
||||
if one != nil {
|
||||
message_id := ""
|
||||
one.Handle(&Faker{
|
||||
Type: "message",
|
||||
one.Handle(&CustomSender{
|
||||
F: &Factory{
|
||||
botplt: "message",
|
||||
},
|
||||
}, func(vm *goja.Runtime) {
|
||||
obj := vm.NewObject()
|
||||
for k, v := range msg {
|
||||
@@ -935,14 +939,3 @@ func (sender *CustomSender) IsAdmin() bool {
|
||||
}
|
||||
return sender.F.isAdmin(sender.GetUserID())
|
||||
}
|
||||
|
||||
func (sender *CustomSender) GetID() string {
|
||||
return sender.id
|
||||
}
|
||||
|
||||
func (sender *CustomSender) SetID() string {
|
||||
sender.id = utils.GenUUID()
|
||||
sender.CreatedAt = time.Now()
|
||||
senders.Store(sender.id, sender)
|
||||
return sender.id
|
||||
}
|
||||
|
||||
+135
-186
@@ -3,7 +3,6 @@ package core
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"reflect"
|
||||
"regexp"
|
||||
"strings"
|
||||
"sync"
|
||||
@@ -26,127 +25,127 @@ type Faker struct {
|
||||
Admin bool
|
||||
}
|
||||
|
||||
func (sender *Faker) Listen() chan string {
|
||||
return sender.Carry
|
||||
}
|
||||
//func (sender *Faker) Listen() chan string {
|
||||
// return sender.Carry
|
||||
// }
|
||||
|
||||
func (sender *Faker) GetContent() string {
|
||||
if sender.Fsps.Content != "" {
|
||||
return sender.Fsps.Content
|
||||
}
|
||||
return sender.Message
|
||||
}
|
||||
//func (sender *Faker) GetContent() string {
|
||||
// if sender.Fsps.Content != "" {
|
||||
// return sender.Fsps.Content
|
||||
// }
|
||||
// return sender.Message
|
||||
// }
|
||||
|
||||
func (sender *Faker) GetUserID() string {
|
||||
return sender.UserID
|
||||
}
|
||||
//func (sender *Faker) GetUserID() string {
|
||||
// return sender.UserID
|
||||
// }
|
||||
|
||||
func (sender *Faker) GetBotID() string {
|
||||
return ""
|
||||
}
|
||||
//func (sender *Faker) GetBotID() string {
|
||||
// return ""
|
||||
// }
|
||||
|
||||
func (sender *Faker) GetChatID() string {
|
||||
return sender.ChatID
|
||||
}
|
||||
//func (sender *Faker) GetChatID() string {
|
||||
// return sender.ChatID
|
||||
// }
|
||||
|
||||
func (sender *Faker) GetImType() string {
|
||||
if sender.Type == "" {
|
||||
return "fake"
|
||||
}
|
||||
return sender.Type
|
||||
}
|
||||
//func (sender *Faker) GetImType() string {
|
||||
// if sender.Type == "" {
|
||||
// return "fake"
|
||||
// }
|
||||
// return sender.Type
|
||||
// }
|
||||
|
||||
func (sender *Faker) GetMessageID() string {
|
||||
return ""
|
||||
}
|
||||
//func (sender *Faker) GetMessageID() string {
|
||||
// return ""
|
||||
// }
|
||||
|
||||
func (sender *Faker) GetUserName() string {
|
||||
return ""
|
||||
}
|
||||
//func (sender *Faker) GetUserName() string {
|
||||
// return ""
|
||||
// }
|
||||
|
||||
func (sender *Faker) GetChatName() string {
|
||||
return ""
|
||||
}
|
||||
//func (sender *Faker) GetChatName() string {
|
||||
// return ""
|
||||
// }
|
||||
|
||||
func (sender *Faker) IsReply() bool {
|
||||
return false
|
||||
}
|
||||
//func (sender *Faker) IsReply() bool {
|
||||
// return false
|
||||
// }
|
||||
|
||||
func (sender *Faker) GetReplyUserID() int {
|
||||
return 0
|
||||
}
|
||||
// //func (sender *Faker) GetReplyUserID() int {
|
||||
// return 0
|
||||
// }
|
||||
|
||||
func (sender *Faker) GetRawMessage() interface{} {
|
||||
return sender.Message
|
||||
}
|
||||
// //func (sender *Faker) GetRawMessage() interface{} {
|
||||
// return sender.Message
|
||||
// }
|
||||
|
||||
func (sender *Faker) IsAdmin() bool {
|
||||
return sender.Admin
|
||||
}
|
||||
// //func (sender *Faker) IsAdmin() bool {
|
||||
// return sender.Admin
|
||||
// }
|
||||
|
||||
func (sender *Faker) IsMedia() bool {
|
||||
return false
|
||||
}
|
||||
// //func (sender *Faker) IsMedia() bool {
|
||||
// return false
|
||||
// }
|
||||
|
||||
func (sender *Faker) Reply(msgs ...interface{}) (string, error) {
|
||||
rt := ""
|
||||
for _, msg := range msgs {
|
||||
switch msg := msg.(type) {
|
||||
case []byte:
|
||||
rt = (string(msg))
|
||||
case string:
|
||||
rt = msg
|
||||
}
|
||||
}
|
||||
{
|
||||
//func (sender *Faker) Reply(msgs ...interface{}) (string, error) {
|
||||
// rt := ""
|
||||
// for _, msg := range msgs {
|
||||
// switch msg := msg.(type) {
|
||||
// case []byte:
|
||||
// rt = (string(msg))
|
||||
// case string:
|
||||
// rt = msg
|
||||
// }
|
||||
// }
|
||||
// {
|
||||
|
||||
for _, v := range regexp.MustCompile(`\[CQ:image,file=([^\[\]]+)\]`).FindAllStringSubmatch(rt, -1) {
|
||||
// qr := qrcode2console.NewQRCode2ConsoleWithUrl(v[1], true)
|
||||
// defer qr.Output()
|
||||
rt = strings.Replace(rt, fmt.Sprintf(`[CQ:image,file=%s]`, v[1]), "", -1)
|
||||
}
|
||||
}
|
||||
// for _, v := range regexp.MustCompile(`\[CQ:image,file=([^\[\]]+)\]`).FindAllStringSubmatch(rt, -1) {
|
||||
// // qr := qrcode2console.NewQRCode2ConsoleWithUrl(v[1], true)
|
||||
// // defer qr.Output()
|
||||
// rt = strings.Replace(rt, fmt.Sprintf(`[CQ:image,file=%s]`, v[1]), "", -1)
|
||||
// }
|
||||
// }
|
||||
|
||||
// if rt != "" && n != nil {
|
||||
// NotifyMasters(rt)
|
||||
// }
|
||||
// if rt != "" && n != nil {
|
||||
// NotifyMasters(rt)
|
||||
// }
|
||||
|
||||
// if rt != "" && sender.Carry != nil {
|
||||
// sender.Carry <- rt
|
||||
// }
|
||||
// if rt != "" && sender.Carry != nil {
|
||||
// sender.Carry <- rt
|
||||
// }
|
||||
|
||||
if rt != "" && sender.Type == "terminal" {
|
||||
fmt.Printf("\x1b[%dm%s \x1b[0m\n", 31, rt)
|
||||
}
|
||||
return "", nil
|
||||
}
|
||||
// if rt != "" && sender.Type == "terminal" {
|
||||
// fmt.Printf("\x1b[%dm%s \x1b[0m\n", 31, rt)
|
||||
// }
|
||||
// return "", nil
|
||||
// }
|
||||
|
||||
func (sender *Faker) Delete() error {
|
||||
return nil
|
||||
}
|
||||
//func (sender *Faker) Delete() error {
|
||||
// return nil
|
||||
// }
|
||||
|
||||
func (sender *Faker) Disappear(lifetime ...time.Duration) {
|
||||
//func (sender *Faker) Disappear(lifetime ...time.Duration) {
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
func (sender *Faker) Finish() {
|
||||
if sender.Carry != nil {
|
||||
close(sender.Carry)
|
||||
}
|
||||
}
|
||||
//func (sender *Faker) Finish() {
|
||||
// if sender.Carry != nil {
|
||||
// close(sender.Carry)
|
||||
// }
|
||||
// }
|
||||
|
||||
func (sender *Faker) Copy() common.Sender {
|
||||
new := reflect.Indirect(reflect.ValueOf(interface{}(sender))).Interface().(Faker)
|
||||
return &new
|
||||
}
|
||||
//func (sender *Faker) Copy() common.Sender {
|
||||
// new := reflect.Indirect(reflect.ValueOf(interface{}(sender))).Interface().(Faker)
|
||||
// return &new
|
||||
// }
|
||||
|
||||
func (sender *Faker) GroupKick(uid string, reject_add_request bool) error {
|
||||
return nil
|
||||
}
|
||||
//func (sender *Faker) GroupKick(uid string, reject_add_request bool) error {
|
||||
// return nil
|
||||
// }
|
||||
|
||||
func (sender *Faker) GroupBan(uid string, duration int) error {
|
||||
return nil
|
||||
}
|
||||
//func (sender *Faker) GroupBan(uid string, duration int) error {
|
||||
// return nil
|
||||
// }
|
||||
|
||||
type BaseSender struct {
|
||||
matches [][]string
|
||||
@@ -165,30 +164,30 @@ type BaseSender struct {
|
||||
plugin_id string
|
||||
}
|
||||
|
||||
func (sender *BaseSender) SetPluginID(plugin_id string) {
|
||||
func (sender *CustomSender) SetPluginID(plugin_id string) {
|
||||
sender.plugin_id = plugin_id
|
||||
}
|
||||
func (sender *BaseSender) GetPluginID() string {
|
||||
func (sender *CustomSender) GetPluginID() string {
|
||||
return sender.plugin_id
|
||||
}
|
||||
|
||||
func (sender *BaseSender) SetLevel(l int) {
|
||||
func (sender *CustomSender) SetLevel(l int) {
|
||||
sender.level = l
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetLevel() int {
|
||||
func (sender *CustomSender) GetLevel() int {
|
||||
return sender.level
|
||||
}
|
||||
|
||||
func (sender *BaseSender) SetMark(mark interface{}) {
|
||||
func (sender *CustomSender) SetMark(mark interface{}) {
|
||||
sender.mark = mark
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetMark() interface{} {
|
||||
func (sender *CustomSender) GetMark() interface{} {
|
||||
return sender.mark
|
||||
}
|
||||
|
||||
func (sender *BaseSender) SetExpandMessageInfo(emf map[string]interface{}) {
|
||||
func (sender *CustomSender) SetExpandMessageInfo(emf map[string]interface{}) {
|
||||
if sender.emf == nil {
|
||||
sender.emf = map[string]interface{}{}
|
||||
}
|
||||
@@ -197,21 +196,21 @@ func (sender *BaseSender) SetExpandMessageInfo(emf map[string]interface{}) {
|
||||
}
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetExpandMessageInfo() map[string]interface{} {
|
||||
func (sender *CustomSender) GetExpandMessageInfo() map[string]interface{} {
|
||||
if sender.emf == nil {
|
||||
sender.emf = map[string]interface{}{}
|
||||
}
|
||||
return sender.emf
|
||||
}
|
||||
|
||||
func (sender *BaseSender) SetVar(key string, value interface{}) {
|
||||
func (sender *CustomSender) SetVar(key string, value interface{}) {
|
||||
if sender.emf == nil {
|
||||
sender.emf = map[string]interface{}{}
|
||||
}
|
||||
sender.emf[key] = value
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetVar(key string) interface{} {
|
||||
func (sender *CustomSender) GetVar(key string) interface{} {
|
||||
if sender.emf == nil {
|
||||
sender.emf = map[string]interface{}{}
|
||||
}
|
||||
@@ -222,45 +221,45 @@ func (sender *BaseSender) GetVar(key string) interface{} {
|
||||
return v
|
||||
}
|
||||
|
||||
func (sender *BaseSender) SetMatch(ss []string) {
|
||||
func (sender *CustomSender) SetMatch(ss []string) {
|
||||
sender.matches = [][]string{ss}
|
||||
}
|
||||
func (sender *BaseSender) SetParams(ss []string) {
|
||||
func (sender *CustomSender) SetParams(ss []string) {
|
||||
sender.params = ss
|
||||
}
|
||||
func (sender *BaseSender) SetAllMatch(ss [][]string) {
|
||||
func (sender *CustomSender) SetAllMatch(ss [][]string) {
|
||||
sender.matches = ss
|
||||
}
|
||||
|
||||
func (sender *BaseSender) SetContent(content string) {
|
||||
func (sender *CustomSender) SetContent(content string) {
|
||||
sender.Fsps.Content = content
|
||||
}
|
||||
|
||||
func (sender *BaseSender) SetFsps(fsps *common.FakerSenderParams) {
|
||||
func (sender *CustomSender) SetFsps(fsps *common.FakerSenderParams) {
|
||||
sender.Fsps = *fsps
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetMatch() []string {
|
||||
func (sender *CustomSender) GetMatch() []string {
|
||||
return sender.matches[0]
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetAllMatch() [][]string {
|
||||
func (sender *CustomSender) GetAllMatch() [][]string {
|
||||
return sender.matches
|
||||
}
|
||||
|
||||
func (sender *BaseSender) Continue() {
|
||||
func (sender *CustomSender) Continue() {
|
||||
sender.goon = true
|
||||
}
|
||||
|
||||
func (sender *BaseSender) IsContinue() bool {
|
||||
func (sender *CustomSender) IsContinue() bool {
|
||||
return sender.goon
|
||||
}
|
||||
|
||||
func (sender *BaseSender) ClearContinue() {
|
||||
func (sender *CustomSender) ClearContinue() {
|
||||
sender.goon = false
|
||||
}
|
||||
|
||||
func (sender *BaseSender) Get(i interface{}) string {
|
||||
func (sender *CustomSender) Get(i interface{}) string {
|
||||
switch i := i.(type) {
|
||||
case int:
|
||||
if len(sender.matches) == 0 {
|
||||
@@ -281,7 +280,7 @@ func (sender *BaseSender) Get(i interface{}) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (sender *BaseSender) Delete() error {
|
||||
func (sender *CustomSender) Delete() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -289,120 +288,70 @@ func (sender *BaseSender) Disappear(lifetime ...time.Duration) {
|
||||
|
||||
}
|
||||
|
||||
func (sender *BaseSender) Finish() {
|
||||
func (sender *CustomSender) Finish() {
|
||||
sender.IsFinished = true
|
||||
}
|
||||
|
||||
func (sender *BaseSender) IsMedia() bool {
|
||||
func (sender *CustomSender) IsMedia() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetRawMessage() interface{} {
|
||||
func (sender *CustomSender) GetRawMessage() interface{} {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (sender *BaseSender) IsReply() bool {
|
||||
func (sender *CustomSender) IsReply() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetMessageID() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (sender *BaseSender) RecallMessage(...interface{}) {
|
||||
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetUserID() string {
|
||||
return ""
|
||||
}
|
||||
func (sender *BaseSender) GetChatID() string {
|
||||
return ""
|
||||
}
|
||||
func (sender *BaseSender) Push(msg map[string]string) (string, error) {
|
||||
func (sender *CustomSender) Push(msg map[string]string) (string, error) {
|
||||
return "", nil
|
||||
}
|
||||
func (sender *BaseSender) GetImType() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GroupKick(uid string, reject_add_request bool) error {
|
||||
func (sender *CustomSender) GroupUnkick(uid string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GroupUnkick(uid string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GroupBan(uid string, duration int) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GroupUnban(uid string) error {
|
||||
return nil
|
||||
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetUserName() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (sender *BaseSender) IsAdmin() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetChatName() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetReplyUserID() int {
|
||||
func (sender *CustomSender) GetReplyUserID() int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetReplyMessageID() int {
|
||||
func (sender *CustomSender) GetReplyMessageID() int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (sender *BaseSender) AtLast() {
|
||||
func (sender *CustomSender) AtLast() {
|
||||
sender.Atlast = true
|
||||
}
|
||||
|
||||
func (sender *BaseSender) UAtLast() {
|
||||
func (sender *CustomSender) UAtLast() {
|
||||
sender.Atlast = false
|
||||
}
|
||||
|
||||
func (sender *BaseSender) Stop() {
|
||||
func (sender *CustomSender) Stop() {
|
||||
panic("stop")
|
||||
}
|
||||
|
||||
func (sender *BaseSender) Event() map[string]interface{} {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (sender *BaseSender) Action(map[string]interface{}) (interface{}, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetID() string {
|
||||
func (sender *CustomSender) GetID() string {
|
||||
return sender.id
|
||||
}
|
||||
|
||||
func (sender *BaseSender) SetID() string {
|
||||
func (sender *CustomSender) SetID() string {
|
||||
sender.id = utils.GenUUID()
|
||||
sender.CreatedAt = time.Now()
|
||||
senders.Store(sender.id, sender)
|
||||
return sender.id
|
||||
}
|
||||
|
||||
func (sender *BaseSender) GetTime() time.Time {
|
||||
func (sender *CustomSender) GetTime() time.Time {
|
||||
return sender.CreatedAt
|
||||
}
|
||||
|
||||
func (sender *BaseSender) IsAtLast() bool {
|
||||
func (sender *CustomSender) IsAtLast() bool {
|
||||
return sender.Atlast
|
||||
}
|
||||
|
||||
func (sender *BaseSender) MessagesToSend() string {
|
||||
func (sender *CustomSender) MessagesToSend() string {
|
||||
return strings.Join(sender.ToSendMessages, "\n")
|
||||
}
|
||||
|
||||
@@ -507,7 +456,7 @@ type Switch []string
|
||||
|
||||
var listenCounter int64
|
||||
|
||||
func (s *BaseSender) Await(message common.Sender, callback func(common.Sender) interface{}, params ...interface{}) interface{} {
|
||||
func (s *CustomSender) Await(message common.Sender, callback func(common.Sender) interface{}, params ...interface{}) interface{} {
|
||||
timeout := time.Hour * 999999
|
||||
var handleErr func(error)
|
||||
var persistent = false
|
||||
|
||||
+25
-22
@@ -378,8 +378,10 @@ func AddCommand(cmds []*common.Function) {
|
||||
go func(f *common.Function) {
|
||||
time.Sleep(time.Second)
|
||||
console.Log("初始化%v服务", f.Title)
|
||||
f.Handle(&Faker{
|
||||
Type: "*",
|
||||
f.Handle(&CustomSender{
|
||||
F: &Factory{
|
||||
botplt: "*",
|
||||
},
|
||||
}, nil)
|
||||
}(cmds[j])
|
||||
}
|
||||
@@ -393,9 +395,10 @@ func AddCommand(cmds []*common.Function) {
|
||||
Cron = "0 " + Cron
|
||||
}
|
||||
cronId, err := CRON.AddFunc(Cron, func() {
|
||||
cmds[j].Handle(&Faker{
|
||||
Admin: true,
|
||||
Type: plt,
|
||||
cmds[j].Handle(&CustomSender{
|
||||
F: &Factory{
|
||||
botplt: plt,
|
||||
},
|
||||
}, nil)
|
||||
})
|
||||
if err == nil {
|
||||
@@ -540,23 +543,23 @@ func HandleMessage(sender common.Sender) {
|
||||
sender.SetMatch(res[1:])
|
||||
sender.SetParams(c.Function.Params[i])
|
||||
mtd = true
|
||||
if f, ok := c.Message.(*Faker); ok && f.Carry != nil {
|
||||
if s1, o := sender.(*Faker); o && s1.Carry != nil {
|
||||
f.Carry = s1.Carry
|
||||
c := make(chan string)
|
||||
oc := s1.Carry
|
||||
s1.Carry = c
|
||||
go func() {
|
||||
for {
|
||||
r, o := <-c
|
||||
if !o {
|
||||
break
|
||||
}
|
||||
oc <- r
|
||||
}
|
||||
}()
|
||||
}
|
||||
}
|
||||
// if f, ok := c.Message.(*CustomSender); ok && f.Carry != nil {
|
||||
// if s1, o := sender.(*CustomSender); o && s1.Carry != nil {
|
||||
// f.Carry = s1.Carry
|
||||
// c := make(chan string)
|
||||
// oc := s1.Carry
|
||||
// s1.Carry = c
|
||||
// go func() {
|
||||
// for {
|
||||
// r, o := <-c
|
||||
// if !o {
|
||||
// break
|
||||
// }
|
||||
// oc <- r
|
||||
// }
|
||||
// }()
|
||||
// }
|
||||
// }
|
||||
c.Chan <- sender
|
||||
sender.Reply(<-c.Result)
|
||||
if !sender.IsContinue() {
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ type Language struct {
|
||||
}
|
||||
|
||||
var plugin_dir = utils.ExecPath + "/plugins"
|
||||
var release = "20230726"
|
||||
var release = "20230727"
|
||||
|
||||
var languages = []Language{
|
||||
{
|
||||
|
||||
@@ -313,7 +313,9 @@ func AddNodePlugin(path, name string) error {
|
||||
|
||||
}
|
||||
senders.Store(id, s)
|
||||
defer senders.Delete(id)
|
||||
defer func() {
|
||||
fmt.Println("senders.Delete(id)")
|
||||
}()
|
||||
defer processes.Delete(cmd)
|
||||
err = cmd.Wait()
|
||||
if err != nil {
|
||||
|
||||
+5
-3
@@ -34,7 +34,6 @@ var senders sync.Map
|
||||
// }
|
||||
|
||||
func GetSender(uuid string) (common.Sender, error) {
|
||||
|
||||
if uuid == "" {
|
||||
return &CustomSender{
|
||||
F: &Factory{
|
||||
@@ -43,7 +42,6 @@ func GetSender(uuid string) (common.Sender, error) {
|
||||
}, nil
|
||||
}
|
||||
v, ok := senders.Load(uuid)
|
||||
// fmt.Println("uuid", uuid, v, ok)
|
||||
if !ok {
|
||||
return nil, errors.New("not found sender")
|
||||
}
|
||||
@@ -201,10 +199,13 @@ func (sg *SillyGirlService) SenderListen(stream srpc.SillyGirlService_SenderList
|
||||
if req.Persistent {
|
||||
persistent = req.Persistent
|
||||
options = append(options, "persistent")
|
||||
} else {
|
||||
options = append(options, func(err error) {
|
||||
stream.Send(&srpc.SenderListenResponse{Echo: ""})
|
||||
})
|
||||
}
|
||||
go s.Await(s, func(s common.Sender) interface{} {
|
||||
id := s.SetID()
|
||||
defer senders.Delete(id)
|
||||
echo := utils.GenUUID()
|
||||
ch := make(chan string)
|
||||
echos.Store(echo, ch)
|
||||
@@ -219,6 +220,7 @@ func (sg *SillyGirlService) SenderListen(stream srpc.SillyGirlService_SenderList
|
||||
stream.Send(&srpc.SenderListenResponse{Echo: "END"})
|
||||
}
|
||||
} else {
|
||||
defer senders.Delete(id)
|
||||
value = strings.Replace(value, "go_again_", "", 1)
|
||||
}
|
||||
return value
|
||||
|
||||
+4
-2
@@ -243,8 +243,10 @@ func initWeb() {
|
||||
}
|
||||
if (matched || c.Request.URL.Path == path) && (c.Request.Method == method || "ANY" == method) {
|
||||
req.handled = true
|
||||
function.Handle(&Faker{
|
||||
Type: "http",
|
||||
function.Handle(&CustomSender{
|
||||
F: &Factory{
|
||||
botplt: "http",
|
||||
},
|
||||
}, func(vm *goja.Runtime) {
|
||||
vm.Set("res", res)
|
||||
vm.Set("req", req)
|
||||
|
||||
+13
-6
@@ -109,8 +109,11 @@ func handleWebsocket(c *gin.Context) {
|
||||
|
||||
req._event = "connect"
|
||||
wc.conn = ws
|
||||
go function.Handle(&Faker{
|
||||
Type: "websocket",
|
||||
|
||||
go function.Handle(&CustomSender{
|
||||
F: &Factory{
|
||||
botplt: "websocket",
|
||||
},
|
||||
}, func(vm *goja.Runtime) {
|
||||
vm.Set("res", &Response{
|
||||
c: c,
|
||||
@@ -173,8 +176,10 @@ func handleWebsocket(c *gin.Context) {
|
||||
function = f2
|
||||
}
|
||||
}
|
||||
function.Handle(&Faker{
|
||||
Type: "websocket",
|
||||
function.Handle(&CustomSender{
|
||||
F: &Factory{
|
||||
botplt: "websocket",
|
||||
},
|
||||
}, func(vm *goja.Runtime) {
|
||||
vm.Set("res", &Response{
|
||||
c: c,
|
||||
@@ -193,8 +198,10 @@ func handleWebsocket(c *gin.Context) {
|
||||
function = f2
|
||||
}
|
||||
}
|
||||
go function.Handle(&Faker{
|
||||
Type: "websocket",
|
||||
go function.Handle(&CustomSender{
|
||||
F: &Factory{
|
||||
botplt: "websocket",
|
||||
},
|
||||
}, func(vm *goja.Runtime) {
|
||||
vm.Set("res", &Response{
|
||||
c: c,
|
||||
|
||||
+2
-2
@@ -24,8 +24,8 @@ macos编译:
|
||||
cp /Users/a1-6/Code/sillyplus/proto3/dist/sillygirl.js /Users/a1-6/Code/node/node-v18.16.1/lib/sillygirl.js && cd /Users/a1-6/Code/node/node-v18.16.1 && ninja -C out/Release && cp out/Release/node /Users/a1-6/Code/nodes/node_darwin_arm64
|
||||
|
||||
#压缩
|
||||
cd /Users/a1-6/Code/nodes/node_darwin_arm64 && zip node_darwin_arm64.zip node
|
||||
cd /Users/a1-6/Code/nodes/node_linux_amd64 && zip node_linux_amd64.zip node
|
||||
cd /Users/a1-6/Code/nodes/node_darwin_arm64
|
||||
cd /Users/a1-6/Code/nodes/node_linux_amd64
|
||||
|
||||
##
|
||||
git add . && git commit -m "x" && git push
|
||||
Vendored
+1
-1
@@ -28,7 +28,7 @@ declare class Sender {
|
||||
allow_users?: string[];
|
||||
prohibit_users?: string[];
|
||||
persistent?: boolean;
|
||||
}): Promise<Sender>;
|
||||
}): Promise<Sender | undefined>;
|
||||
holdOn(str: string): string;
|
||||
reply(content: string): Promise<string | undefined>;
|
||||
action(options: any): Promise<any | undefined>;
|
||||
|
||||
+4
-2
@@ -237,8 +237,8 @@ class Sender {
|
||||
call.cancel();
|
||||
return;
|
||||
}
|
||||
let s = new Sender(response.uuid);
|
||||
if (options?.handle) {
|
||||
let s = response.uuid ? new Sender(response.uuid) : undefined;
|
||||
if (options?.handle && s) {
|
||||
// console.log(`options?.handle`, options.persistent)
|
||||
let obj = options?.handle(s);
|
||||
if (typeof obj == "string") {
|
||||
@@ -538,7 +538,9 @@ class Adapter {
|
||||
this.bot_id = options.bot_id;
|
||||
if (options.replyHandler) {
|
||||
const call = client.AdapterRegist();
|
||||
// let callback: any = ;
|
||||
call.on("data", async (response) => {
|
||||
// console.log("start on data")
|
||||
let message = JSON.parse(response.value);
|
||||
const { echo, __type__ } = message;
|
||||
delete message.__type__;
|
||||
|
||||
+3
-3
@@ -230,7 +230,7 @@ class Sender {
|
||||
allow_users?: string[]; // 用户白名单
|
||||
prohibit_users?: string[]; // 群聊白名单
|
||||
persistent?: boolean; //持久化监听
|
||||
}): Promise<Sender> {
|
||||
}): Promise<Sender | undefined> {
|
||||
return new Promise(
|
||||
async (resolve, reject) => {
|
||||
let params: any = {
|
||||
@@ -259,8 +259,8 @@ class Sender {
|
||||
call.cancel();
|
||||
return;
|
||||
}
|
||||
let s = new Sender(response.uuid);
|
||||
if (options?.handle) {
|
||||
let s = response.uuid ? new Sender(response.uuid) : undefined;
|
||||
if (options?.handle && s) {
|
||||
// console.log(`options?.handle`, options.persistent)
|
||||
let obj = options?.handle(s);
|
||||
if (typeof obj == "string") {
|
||||
|
||||
Reference in New Issue
Block a user