diff --git a/plugins/message_summary/main.py b/plugins/message_summary/main.py index 0589ede..24356a9 100644 --- a/plugins/message_summary/main.py +++ b/plugins/message_summary/main.py @@ -9,6 +9,7 @@ from typing import Dict, Any, Tuple, Optional, List import requests +from utils.revoke.message_auto_revoke import MessageAutoRevoke from utils.string_utils import remove_trailing_content from utils.wechat.message_to_db import MessageStorage from utils.compress_chat_data import compress_chat_data @@ -51,6 +52,7 @@ class MessageSummaryPlugin(MessagePluginInterface): def __init__(self): super().__init__() self.bot: WechatAPIClient = None + self.revoke: MessageAutoRevoke = None def initialize(self, context: Dict[str, Any]) -> bool: """初始化插件""" @@ -98,6 +100,8 @@ class MessageSummaryPlugin(MessagePluginInterface): return False, None # 获取需要总结的内容 group_id = message.get("roomid") + + self.revoke: MessageAutoRevoke = message.get("revoke") if not group_id: await self.bot.send_text_message(group_id, "只支持群聊消息总结", message.get("sender")) return False, None @@ -115,8 +119,9 @@ class MessageSummaryPlugin(MessagePluginInterface): # 获取群名并处理 group_name = all_contacts.get(group_id, group_id) group_name = self._sanitize_group_name(group_name) - await self.bot.send_text_message(group_id, "⏳群消息总结中… 😊") + client_msg_id, create_time, new_msg_id = await self.bot.send_text_message(group_id, "⏳群消息总结中… 😊") + self.revoke.add_message_to_revoke(group_id, client_msg_id, create_time, new_msg_id, 5) # 创建线程异步处理总结生成和发送 await self._async_generate_and_send_summary(chat_content, group_name, group_id, message) @@ -137,10 +142,13 @@ class MessageSummaryPlugin(MessagePluginInterface): if image_path: await self.bot.send_image_message(group_id, Path(image_path)) else: - await self.bot.send_text_message(group_id, "❌ 生成总结图片失败") + + client_msg_id, create_time, new_msg_id = await self.bot.send_text_message(group_id, "❌ 生成总结图片失败") + self.revoke.add_message_to_revoke(group_id, client_msg_id, create_time, new_msg_id, 5) except Exception as e: self.LOG.error(f"异步生成总结失败: {e}") - await self.bot.send_text_message(group_id, f"❌ 生成总结失败: {str(e)}") + client_msg_id, create_time, new_msg_id = await self.bot.send_text_message(group_id, f"❌ 生成总结失败: {str(e)}") + self.revoke.add_message_to_revoke(group_id, client_msg_id, create_time, new_msg_id, 5) def _sanitize_group_name(self, group_name: str) -> str: """处理群名,去除特殊字符并限制长度"""