总结加入撤回流程
This commit is contained in:
@@ -9,6 +9,7 @@ from typing import Dict, Any, Tuple, Optional, List
|
|||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
|
from utils.revoke.message_auto_revoke import MessageAutoRevoke
|
||||||
from utils.string_utils import remove_trailing_content
|
from utils.string_utils import remove_trailing_content
|
||||||
from utils.wechat.message_to_db import MessageStorage
|
from utils.wechat.message_to_db import MessageStorage
|
||||||
from utils.compress_chat_data import compress_chat_data
|
from utils.compress_chat_data import compress_chat_data
|
||||||
@@ -51,6 +52,7 @@ class MessageSummaryPlugin(MessagePluginInterface):
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.bot: WechatAPIClient = None
|
self.bot: WechatAPIClient = None
|
||||||
|
self.revoke: MessageAutoRevoke = None
|
||||||
|
|
||||||
def initialize(self, context: Dict[str, Any]) -> bool:
|
def initialize(self, context: Dict[str, Any]) -> bool:
|
||||||
"""初始化插件"""
|
"""初始化插件"""
|
||||||
@@ -98,6 +100,8 @@ class MessageSummaryPlugin(MessagePluginInterface):
|
|||||||
return False, None
|
return False, None
|
||||||
# 获取需要总结的内容
|
# 获取需要总结的内容
|
||||||
group_id = message.get("roomid")
|
group_id = message.get("roomid")
|
||||||
|
|
||||||
|
self.revoke: MessageAutoRevoke = message.get("revoke")
|
||||||
if not group_id:
|
if not group_id:
|
||||||
await self.bot.send_text_message(group_id, "只支持群聊消息总结", message.get("sender"))
|
await self.bot.send_text_message(group_id, "只支持群聊消息总结", message.get("sender"))
|
||||||
return False, None
|
return False, None
|
||||||
@@ -115,8 +119,9 @@ class MessageSummaryPlugin(MessagePluginInterface):
|
|||||||
# 获取群名并处理
|
# 获取群名并处理
|
||||||
group_name = all_contacts.get(group_id, group_id)
|
group_name = all_contacts.get(group_id, group_id)
|
||||||
group_name = self._sanitize_group_name(group_name)
|
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,
|
await self._async_generate_and_send_summary(chat_content, group_name, group_id,
|
||||||
message)
|
message)
|
||||||
@@ -137,10 +142,13 @@ class MessageSummaryPlugin(MessagePluginInterface):
|
|||||||
if image_path:
|
if image_path:
|
||||||
await self.bot.send_image_message(group_id, Path(image_path))
|
await self.bot.send_image_message(group_id, Path(image_path))
|
||||||
else:
|
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:
|
except Exception as e:
|
||||||
self.LOG.error(f"异步生成总结失败: {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:
|
def _sanitize_group_name(self, group_name: str) -> str:
|
||||||
"""处理群名,去除特殊字符并限制长度"""
|
"""处理群名,去除特殊字符并限制长度"""
|
||||||
|
|||||||
Reference in New Issue
Block a user