From ca780919a89a6013afd2a7409ee80c1bb84ec4e7 Mon Sep 17 00:00:00 2001 From: tt-P607 <68868379+tt-P607@users.noreply.github.com> Date: Sat, 20 Sep 2025 22:04:43 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(core):=20=E4=BF=AE=E6=AD=A3=E5=9B=A0?= =?UTF-8?q?=E5=BC=82=E6=AD=A5=E6=94=B9=E9=80=A0=E9=81=97=E6=BC=8F=E7=9A=84?= =?UTF-8?q?=20await=20=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在最近的数据库异步化重构后,部分函数的调用处忘记添加 `await` 关键字,导致协程未被正确执行。 本次提交修复了以下模块中的问题: - `ExpressionLearner` - `ChatMessageBuilder` - `EmojiAction --- src/chat/express/expression_learner.py | 2 +- src/chat/utils/chat_message_builder.py | 2 +- src/plugins/built_in/core_actions/emoji.py | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/chat/express/expression_learner.py b/src/chat/express/expression_learner.py index b7dabe6e1..fb22a4115 100644 --- a/src/chat/express/expression_learner.py +++ b/src/chat/express/expression_learner.py @@ -167,7 +167,7 @@ class ExpressionLearner: Returns: bool: 是否成功触发学习 """ - if not self.should_trigger_learning(): + if not await self.should_trigger_learning(): return False try: diff --git a/src/chat/utils/chat_message_builder.py b/src/chat/utils/chat_message_builder.py index e49c218c4..9555e08c8 100644 --- a/src/chat/utils/chat_message_builder.py +++ b/src/chat/utils/chat_message_builder.py @@ -1232,7 +1232,7 @@ async def build_anonymous_messages(messages: List[Dict[str, Any]]) -> str: # 在最前面添加图片映射信息 final_output_lines = [] - pic_mapping_info = build_pic_mapping_info(pic_id_mapping) + pic_mapping_info = await build_pic_mapping_info(pic_id_mapping) if pic_mapping_info: final_output_lines.append(pic_mapping_info) final_output_lines.append("\n\n") diff --git a/src/plugins/built_in/core_actions/emoji.py b/src/plugins/built_in/core_actions/emoji.py index 2c0940fcc..84dd45981 100644 --- a/src/plugins/built_in/core_actions/emoji.py +++ b/src/plugins/built_in/core_actions/emoji.py @@ -77,7 +77,7 @@ class EmojiAction(BaseAction): # 3. 根据历史记录筛选表情 try: - recent_emojis_desc = get_recent_emojis(self.chat_id, limit=10) + recent_emojis_desc = await get_recent_emojis(self.chat_id, limit=10) if recent_emojis_desc: filtered_emojis = [emoji for emoji in all_emojis_obj if emoji.description not in recent_emojis_desc] if filtered_emojis: @@ -122,7 +122,7 @@ class EmojiAction(BaseAction): emoji_base64, emoji_description = random.choice(all_emojis_data) else: # 获取最近的5条消息内容用于判断 - recent_messages = message_api.get_recent_messages(chat_id=self.chat_id, limit=5) + recent_messages = await message_api.get_recent_messages(chat_id=self.chat_id, limit=5) messages_text = "" if recent_messages: messages_text = await message_api.build_readable_messages( @@ -181,7 +181,7 @@ class EmojiAction(BaseAction): elif global_config.emoji.emoji_selection_mode == "description": # --- 详细描述选择模式 --- # 获取最近的5条消息内容用于判断 - recent_messages = message_api.get_recent_messages(chat_id=self.chat_id, limit=5) + recent_messages = await message_api.get_recent_messages(chat_id=self.chat_id, limit=5) messages_text = "" if recent_messages: messages_text = await message_api.build_readable_messages( @@ -260,7 +260,7 @@ class EmojiAction(BaseAction): # 发送成功后,记录到历史 try: - add_emoji_to_history(self.chat_id, emoji_description) + await add_emoji_to_history(self.chat_id, emoji_description) except Exception as e: logger.error(f"{self.log_prefix} 添加表情到历史记录时出错: {e}") From 0286d75228c26fa3d0ce1d049cb6903921f3a6ff Mon Sep 17 00:00:00 2001 From: tt-P607 <68868379+tt-P607@users.noreply.github.com> Date: Sat, 20 Sep 2025 22:12:07 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(emoji):=20=E4=BF=AE=E6=AD=A3=E5=AF=B9?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=87=BD=E6=95=B0=E7=9A=84=20await=20?= =?UTF-8?q?=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `get_recent_emojis` 和 `add_emoji_to_history` 函数已被重构为同步方法。本次提交移除了对这两个函数不必要的 `await` 调用,以修复由此引发的 `TypeError`。 --- src/plugins/built_in/core_actions/emoji.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/built_in/core_actions/emoji.py b/src/plugins/built_in/core_actions/emoji.py index 84dd45981..3ebf4610a 100644 --- a/src/plugins/built_in/core_actions/emoji.py +++ b/src/plugins/built_in/core_actions/emoji.py @@ -77,7 +77,7 @@ class EmojiAction(BaseAction): # 3. 根据历史记录筛选表情 try: - recent_emojis_desc = await get_recent_emojis(self.chat_id, limit=10) + recent_emojis_desc = get_recent_emojis(self.chat_id, limit=10) if recent_emojis_desc: filtered_emojis = [emoji for emoji in all_emojis_obj if emoji.description not in recent_emojis_desc] if filtered_emojis: @@ -260,7 +260,7 @@ class EmojiAction(BaseAction): # 发送成功后,记录到历史 try: - await add_emoji_to_history(self.chat_id, emoji_description) + add_emoji_to_history(self.chat_id, emoji_description) except Exception as e: logger.error(f"{self.log_prefix} 添加表情到历史记录时出错: {e}")