from typing import Optional from utils.revoke.message_revoke_manager import MessageRevokeManager from wechat_ipad import WechatAPIClient class MessageAutoRevoke: """消息自动撤回工具类""" def __init__(self, client: WechatAPIClient, default_delay: float = 90.0): """ 初始化消息自动撤回工具 Args: client: WechatAPIClient实例 default_delay: 默认撤回延时(秒) """ self.client = client self.revoke_manager = MessageRevokeManager(default_delay) # 设置撤回回调函数 self.revoke_manager.set_revoke_callback(self.client.revoke_message) def add_message_to_revoke(self, wxid: str, client_msg_id: int, create_time: int, new_msg_id: int, delay: Optional[float] = None) -> None: """ 添加消息到撤回队列 Args: wxid: 接收人wxid client_msg_id: 消息ID create_time: 消息创建时间 new_msg_id: 新消息ID delay: 延迟撤回时间(秒),如果为None则使用默认值 """ self.revoke_manager.add_message_to_revoke(wxid, client_msg_id, create_time, new_msg_id, delay) def set_default_delay(self, delay: float) -> None: """ 设置默认撤回延时 Args: delay: 默认撤回延时(秒) """ self.revoke_manager.set_default_delay(delay) def stop(self) -> None: """停止消息撤回任务""" self.revoke_manager.stop()