From 7ab3d370de97238e0fa074189bcb681f15d06b68 Mon Sep 17 00:00:00 2001 From: 1-6 Date: Fri, 28 Jul 2023 19:27:13 +0800 Subject: [PATCH] x --- adapters/pagermaid/sillyplus.py | 8 ++++---- core/adapter.go | 4 ++-- core/plugin_impl.go | 14 ++++++++++++-- core/websocket.go | 6 +++++- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/adapters/pagermaid/sillyplus.py b/adapters/pagermaid/sillyplus.py index 2ac5641..9727e4b 100644 --- a/adapters/pagermaid/sillyplus.py +++ b/adapters/pagermaid/sillyplus.py @@ -1,6 +1,6 @@ import contextlib -import io import json +import io from asyncio import sleep @@ -18,8 +18,7 @@ pip_install("aiohttp") import aiohttp -uri = "ws://106.52.87.206:8080/bot/pagermaid?secure_token=1a14c723-2150-11ee-af60-5254001a4920" - +uri = "${rws()}" class WebSocket: def __init__(self): @@ -142,7 +141,7 @@ async def connect_ws(): await log(f"[ws] Connection failed: {e}") -@listener(incoming=True, outgoing=True) +@listener(incoming=True, outgoing=False, ignore_edited=True) async def websocket_push(message: Message): with contextlib.suppress(Exception): if message.chat and message.chat.type in [ @@ -169,3 +168,4 @@ async def websocket_to_connect(message: Message): return await message.edit("傻+ 已连接") else: return await message.edit("傻+ 已离线") + diff --git a/core/adapter.go b/core/adapter.go index 92deacf..6c7f24b 100644 --- a/core/adapter.go +++ b/core/adapter.go @@ -573,9 +573,9 @@ func (f *Factory) Sender2(options map[string]string) *CustomSender { return sender } -func (f *Factory) Sender() interface{} { +func (f *Factory) Sender(options map[string]string) interface{} { return &SenderJsIplm{ - Message: f.Sender2(nil), + Message: f.Sender2(options), Vm: f.vm, Private: "private", Group: "group", diff --git a/core/plugin_impl.go b/core/plugin_impl.go index 9110652..0654cf4 100644 --- a/core/plugin_impl.go +++ b/core/plugin_impl.go @@ -384,6 +384,12 @@ func (sender *SenderJsIplm) Listen(ps ...interface{}) interface{} { carry.ProhibitGroups = arrayss(p) case "prohibt_users": carry.ProhibitUsers = arrayss(p) + case "user_id": + carry.UserID = p.(string) + case "chat_id": + carry.ChatID = p.(string) + case "platform": + carry.AllowPlatforms = []string{p.(string)} } } case bool: @@ -431,8 +437,12 @@ func (sender *SenderJsIplm) Listen(ps ...interface{}) interface{} { } else if len(carry.AllowPlatforms) == 0 { carry.AllowPlatforms = []string{sender.GetPlatform()} } - carry.UserID = sender.GetUserID() - carry.ChatID = sender.GetChatID() + if carry.UserID != "" { + carry.UserID = sender.GetUserID() + } + if carry.ChatID != "" { + carry.ChatID = sender.GetChatID() + } carry.UUID = sender.UUID options = append(options, carry) var newJsSender *SenderJsIplm diff --git a/core/websocket.go b/core/websocket.go index d132739..14fd616 100644 --- a/core/websocket.go +++ b/core/websocket.go @@ -125,9 +125,9 @@ func handleWebsocket(c *gin.Context) { time.Sleep(time.Millisecond * 500) for { _, data, err := ws.ReadMessage() + matched := false wc.patterns.Range(func(key, value any) bool { wp := value.(*WsPattern) - matched := false // fmt.Println("wp.Value", wp.Value) for k, v := range wp.Value { value, _, _, err := jsonparser.Get(data, strings.Split(k, ".")...) @@ -166,9 +166,13 @@ func handleWebsocket(c *gin.Context) { } else { // fmt.Println("err3", err) } + return false } return true }) + if matched { + continue + } if err != nil { // disconnect req._event = "disconnect" for _, f2 := range Functions {