🐛 修复重复导入Trigger的问题

This commit is contained in:
Wuyi无疑 2023-02-15 01:12:12 +08:00
parent f44c651648
commit acf749c49f
10 changed files with 17 additions and 16 deletions

View File

@ -1,12 +1,12 @@
import random
import asyncio
from typing import Union
import websockets.client
from msgspec import json as msgjson
from model import Message, MessageSend, MessageReceive
from websockets.exceptions import ConnectionClosedError
from gsuid_core.models import Message, MessageSend, MessageReceive
class GsClient:
@classmethod

View File

@ -4,10 +4,11 @@ import uvicorn
from server import gss
from config import core_config
from handler import handle_event
from model import MessageReceive
from msgspec import json as msgjson
from fastapi import FastAPI, WebSocket, WebSocketDisconnect
from gsuid_core.models import MessageReceive
app = FastAPI()
HOST = core_config.get_config('HOST')
PORT = int(core_config.get_config('PORT'))

View File

@ -3,9 +3,9 @@ import asyncio
from server import Bot
from trigger import Trigger
from config import core_config
from model import MessageContent, MessageReceive
from gsuid_core.sv import SL
from gsuid_core.models import MessageContent, MessageReceive
config_masters = core_config.get_config('masters')
config_superusers = core_config.get_config('superusers')
@ -41,9 +41,9 @@ async def handle_event(ws: Bot, msg: MessageReceive):
ws.user_id = msg.user_id
ws.group_id = msg.group_id
ws.user_type = msg.user_type
await ws.send(f'[收到消息] {msg}')
print(f'[收到消息] {msg}')
pending = [
_check_command(ws, tr, message)
_check_command(ws, SL.lst[sv].TL[tr], message)
for sv in SL.lst
for tr in SL.lst[sv].TL
if (

View File

@ -1,6 +1,6 @@
from gsuid_core.sv import SV
from gsuid_core.server import Bot
from gsuid_core.model import MessageContent
from gsuid_core.models import MessageContent
from .get_adv import char_adv, weapon_adv

View File

@ -2,7 +2,7 @@ import asyncio
from gsuid_core.sv import SL, SV
from gsuid_core.server import Bot
from gsuid_core.model import MessageContent
from gsuid_core.models import MessageContent
@SV('开关').on_prefix(('关闭', '开启'))

View File

@ -3,7 +3,8 @@ from base64 import b64encode
from typing import List, Union
from PIL import Image
from model import Message
from gsuid_core.models import Message
class MessageSegment:

View File

@ -7,7 +7,8 @@ from typing import Dict, List, Union, Optional
from fastapi import WebSocket
from segment import MessageSegment
from msgspec import json as msgjson
from model import Message, MessageSend
from gsuid_core.models import Message, MessageSend
class Bot:
@ -54,8 +55,6 @@ class GsServer:
plugin_path = plugin / '__init__.py'
if plugin_path.exists():
sys.path.append(str(plugin_path.parents))
print(sys.path)
print(f'plugins.{plugin.name}.__init__')
importlib.import_module(f'plugins.{plugin.name}.__init__')
print(f'插件【{plugin.name}】加载成功!')
if plugin.suffix == '.py':

View File

@ -42,7 +42,7 @@ class SV:
# sv名称重复的sv名称将被并入一个sv里
self.name: str = name
# sv内包含的触发器
self.TL: List[Trigger] = []
self.TL: Dict[str, Trigger] = {}
self.is_initialized = True
# 判断sv是否已持久化
@ -91,8 +91,8 @@ class SV:
keyword_list = keyword
if isinstance(keyword, str):
keyword_list = (keyword,)
trigger = [Trigger(type, _k, func) for _k in keyword_list]
self.TL.extend(trigger)
trigger = {_k: Trigger(type, _k, func) for _k in keyword_list}
self.TL.update(trigger)
@wraps(func)
async def wrapper(bot, msg) -> Optional[Callable]:

View File

@ -1,6 +1,6 @@
from typing import Literal, Callable
from model import MessageContent
from gsuid_core.models import MessageContent
class Trigger: