From 6a85ed297c51b55a634858cefab22bfb57a63b5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wuyi=E6=97=A0=E7=96=91?= <444835641@qq.com> Date: Sun, 5 Mar 2023 19:39:14 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20=E4=BF=AE=E6=94=B9`Bot`?= =?UTF-8?q?=E7=9A=84=E5=88=9B=E5=BB=BA=E6=97=B6=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gsuid_core/bot.py | 5 ++++- gsuid_core/handler.py | 10 ++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/gsuid_core/bot.py b/gsuid_core/bot.py index fe5816f..833f341 100644 --- a/gsuid_core/bot.py +++ b/gsuid_core/bot.py @@ -48,7 +48,10 @@ class _Bot: data = await self.queue.get() task = asyncio.create_task(data) self.bg_tasks.add(task) - task.add_done_callback(lambda _: self.bg_tasks.discard(task)) + try: + task.add_done_callback(lambda _: self.bg_tasks.discard(task)) + except Exception as e: + logger.error(e) class Bot: diff --git a/gsuid_core/handler.py b/gsuid_core/handler.py index 426d1e6..d49adba 100644 --- a/gsuid_core/handler.py +++ b/gsuid_core/handler.py @@ -44,10 +44,9 @@ async def handle_event(ws: _Bot, msg: MessageReceive): # 获取用户权限,越小越高 user_pm = await get_user_pml(msg) event = await msg_process(msg) - bot = Bot(ws, event) print(f'[收到消息] {msg}') pending = [ - _check_command(ws, bot, SL.lst[sv].TL[tr], event) + _check_command(ws, event, SL.lst[sv].TL[tr], event) for sv in SL.lst for tr in SL.lst[sv].TL if ( @@ -64,7 +63,10 @@ async def handle_event(ws: _Bot, msg: MessageReceive): await asyncio.gather(*pending, return_exceptions=True) -async def _check_command(ws: _Bot, Bot: Bot, trigger: Trigger, message: Event): +async def _check_command( + ws: _Bot, ev: Event, trigger: Trigger, message: Event +): if trigger.check_command(message): + bot = Bot(ws, ev) message = await trigger.get_command(message) - ws.queue.put_nowait(trigger.func(Bot, message)) + ws.queue.put_nowait(trigger.func(bot, message))