加入功能,自动撤回,将异常信息发送后,5秒撤回
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user