加入功能,自动撤回,将异常信息发送后,5秒撤回

This commit is contained in:
liuwei
2025-04-30 17:43:28 +08:00
parent 4321b2a1e5
commit 135d0292de
8 changed files with 181 additions and 11 deletions
+47
View File
@@ -0,0 +1,47 @@
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()