Files
abot/utils/revoke/message_auto_revoke.py
T

47 lines
1.6 KiB
Python

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()