nonebot-plugin-mcqq icon indicating copy to clipboard operation
nonebot-plugin-mcqq copied to clipboard

【错误反馈】qq群中AT机器人后台报错

Open wu452148993 opened this issue 9 months ago • 6 comments

运行环境

Python3.10

NB插件及版本号

nonebot_plugin_mcqq-2.6.3

MC插件及版本号

QueQiao-forge+1.19.2-v0.1.0

错误描述

at群机器人报错,经过定位nonebot的onebot API会特殊处理at机器人的场景,

Image

将message的内容清除,导致以下位置数组越界

Image

报错日志(如果有)

03-28 23:08:26 [DEBUG] nonebot | Checking for matchers in priority 99... 03-28 23:08:26 [ERROR] nonebot | Rule check failed for Matcher(type='message', module=nonebot_plugin_mcqq.qq_msg, lineno=21).

  • Exception Group Traceback (most recent call last): | File "", line 19, in | nonebot.run() | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\nonebot_init_.py", line 337, in run | get_driver().run(*args, **kwargs) | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\nonebot\drivers\fastapi.py", line 187, in run | uvicorn.run( | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\uvicorn\main.py", line 579, in run | server.run() | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\uvicorn\server.py", line 66, in run | return asyncio.run(self.serve(sockets=sockets)) | File "C:\Users\wulf\AppData\Local\Programs\Python\Python313\Lib\asyncio\runners.py", line 195, in run | return runner.run(main) | File "C:\Users\wulf\AppData\Local\Programs\Python\Python313\Lib\asyncio\runners.py", line 118, in run | return self._loop.run_until_complete(task) | File "C:\Users\wulf\AppData\Local\Programs\Python\Python313\Lib\asyncio\base_events.py", line 712, in run_until_complete | self.run_forever() | File "C:\Users\wulf\AppData\Local\Programs\Python\Python313\Lib\asyncio\base_events.py", line 683, in run_forever | self._run_once() | File "C:\Users\wulf\AppData\Local\Programs\Python\Python313\Lib\asyncio\base_events.py", line 2040, in _run_once | handle._run() | File "C:\Users\wulf\AppData\Local\Programs\Python\Python313\Lib\asyncio\events.py", line 89, in _run | self._context.run(self._callback, *self._args) | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\nonebot\utils.py", line 254, in run_coro_with_shield | return await coro | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\nonebot\message.py", line 496, in check_and_run_matcher | if not await _check_matcher( | > File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\nonebot\message.py", line 400, in _check_matcher | if not await Matcher.check_rule(bot, event, state, stack, dependency_cache): | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\nonebot\internal\matcher\matcher.py", line 405, in check_rule | return event_type == (cls.type or event_type) and await cls.rule( | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\nonebot\internal\rule.py", line 97, in call | with catch({SkippedException: _handle_skipped_exception}): | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\exceptiongroup_catch.py", line 39, in exit | raise unhandled from exc.cause | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\nonebot\internal\rule.py", line 98, in call | async with anyio.create_task_group() as tg: | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\anyio_backends_asyncio.py", line 772, in aexit | raise BaseExceptionGroup( | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception) +-+---------------- 1 ---------------- | Traceback (most recent call last): | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\nonebot\internal\rule.py", line 88, in run_checker | is_passed = await checker( | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\nonebot\dependencies_init.py", line 115, in call | return await run_sync(cast(Callable[..., R], self.call))(**values) | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\nonebot\utils.py", line 183, in _wrapper | return await anyio.to_thread.run_sync( | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\anyio\to_thread.py", line 56, in run_sync | return await get_async_backend().run_sync_in_worker_thread( | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\anyio_backends_asyncio.py", line 2470, in run_sync_in_worker_thread | return await future | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\anyio_backends_asyncio.py", line 967, in run | result = context.run(func, *args) | File "F:\qqRobot\nonebot\noneQQBot.venv\Lib\site-packages\mcqq_tool\rule.py", line 73, in all_msg_rule | if str(event.get_message())[0] in plugin_config.ignore_message_header: | IndexError: string index out of range +------------------------------------

wu452148993 avatar Mar 28 '25 14:03 wu452148993

nb插件是指nonebot-plugin-mcqq,mc插件指鹊桥

17TheWord avatar Mar 28 '25 14:03 17TheWord

另外请给出示例消息

17TheWord avatar Mar 28 '25 15:03 17TheWord

另外请给出示例消息 “啊哈”是群机器人,直接在群中AT机器人,详见下图

Image

日志已补充完整

wu452148993 avatar Mar 28 '25 15:03 wu452148993

等有空修复

17TheWord avatar Mar 28 '25 15:03 17TheWord

Image

Image 无法复现

17TheWord avatar Apr 13 '25 12:04 17TheWord

Image

Image 无法复现

不同机器人端可能报文帧格式不同 等我空了复现抓个报文

wu452148993 avatar May 19 '25 18:05 wu452148993