From 17b01bcdf429f676ba6d14ea7130cac119109389 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Sat, 24 Jan 2026 14:40:21 +0800 Subject: [PATCH 1/2] fix: markdown keyerror or unbound error in aiocqhttp adapter --- .../aiocqhttp/aiocqhttp_platform_adapter.py | 46 +++++++++++++------ 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py b/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py index 29fde59ab..866b6f3e4 100644 --- a/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py +++ b/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py @@ -62,27 +62,44 @@ def __init__( @self.bot.on_request() async def request(event: Event): - abm = await self.convert_message(event) - if abm: + try: + abm = await self.convert_message(event) + if not abm: + return await self.handle_msg(abm) + except BaseException as e: + logger.error(f"Handle request message failed: {e}") + return @self.bot.on_notice() async def notice(event: Event): - abm = await self.convert_message(event) - if abm: - await self.handle_msg(abm) + try: + abm = await self.convert_message(event) + if abm: + await self.handle_msg(abm) + except BaseException as e: + logger.error(f"Handle notice message failed: {e}") + return @self.bot.on_message("group") async def group(event: Event): - abm = await self.convert_message(event) - if abm: - await self.handle_msg(abm) + try: + abm = await self.convert_message(event) + if abm: + await self.handle_msg(abm) + except BaseException as e: + logger.error(f"Handle group message failed: {e}") + return @self.bot.on_message("private") async def private(event: Event): - abm = await self.convert_message(event) - if abm: - await self.handle_msg(abm) + try: + abm = await self.convert_message(event) + if abm: + await self.handle_msg(abm) + except BaseException as e: + logger.error(f"Handle private message failed: {e}") + return @self.bot.on_websocket_connection def on_websocket_connection(_): @@ -372,9 +389,10 @@ async def _convert_handle_message_event( message_str += "".join(at_parts) elif t == "markdown": - text = m["data"].get("markdown") or m["data"].get("content", "") - abm.message.append(Plain(text=text)) - message_str += text + for m in m_group: + text = m["data"].get("markdown") or m["data"].get("content", "") + abm.message.append(Plain(text=text)) + message_str += text else: for m in m_group: try: From b2237783c78f251a16fe9c48eb2d63dd3377f032 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Sat, 24 Jan 2026 14:42:45 +0800 Subject: [PATCH 2/2] fix: improve exception handling and logging in aiocqhttp adapter --- .../aiocqhttp/aiocqhttp_platform_adapter.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py b/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py index 866b6f3e4..d4d8e1d62 100644 --- a/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py +++ b/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py @@ -67,8 +67,8 @@ async def request(event: Event): if not abm: return await self.handle_msg(abm) - except BaseException as e: - logger.error(f"Handle request message failed: {e}") + except Exception as e: + logger.exception(f"Handle request message failed: {e}") return @self.bot.on_notice() @@ -77,8 +77,8 @@ async def notice(event: Event): abm = await self.convert_message(event) if abm: await self.handle_msg(abm) - except BaseException as e: - logger.error(f"Handle notice message failed: {e}") + except Exception as e: + logger.exception(f"Handle notice message failed: {e}") return @self.bot.on_message("group") @@ -87,8 +87,8 @@ async def group(event: Event): abm = await self.convert_message(event) if abm: await self.handle_msg(abm) - except BaseException as e: - logger.error(f"Handle group message failed: {e}") + except Exception as e: + logger.exception(f"Handle group message failed: {e}") return @self.bot.on_message("private") @@ -97,8 +97,8 @@ async def private(event: Event): abm = await self.convert_message(event) if abm: await self.handle_msg(abm) - except BaseException as e: - logger.error(f"Handle private message failed: {e}") + except Exception as e: + logger.exception(f"Handle private message failed: {e}") return @self.bot.on_websocket_connection