zhenxun_bot/utils/manager/withdraw_message_manager.py

53 lines
1.5 KiB
Python
Raw Normal View History

2023-03-18 01:39:31 +08:00
from typing import Dict, Optional, Tuple, Union
from nonebot.adapters.onebot.v11 import (
GroupMessageEvent,
MessageEvent,
PrivateMessageEvent,
)
2021-10-03 14:24:07 +08:00
class WithdrawMessageManager:
def __init__(self):
self.data = []
def append(self, message_data: Tuple[Union[int, Dict[str, int]], int]):
"""
2022-07-23 14:09:17 +08:00
说明:
2021-10-03 14:24:07 +08:00
添加一个撤回消息id和时间
2022-07-23 14:09:17 +08:00
参数:
2021-10-03 14:24:07 +08:00
:param message_data: 撤回消息id和时间
"""
if isinstance(message_data[0], dict):
2021-11-04 16:11:50 +08:00
message_data = (message_data[0]["message_id"], message_data[1])
2021-10-03 14:24:07 +08:00
self.data.append(message_data)
def remove(self, message_data: Tuple[int, int]):
"""
2022-07-23 14:09:17 +08:00
说明:
2021-10-03 14:24:07 +08:00
删除一个数据
2022-07-23 14:09:17 +08:00
参数:
2021-10-03 14:24:07 +08:00
:param message_data: 消息id和时间
"""
self.data.remove(message_data)
2021-11-04 16:11:50 +08:00
def withdraw_message(
2023-03-18 01:39:31 +08:00
self,
event: MessageEvent,
id_: Union[int, Dict[str, int]],
conditions: Optional[Tuple[int, int]],
2021-11-04 16:11:50 +08:00
):
"""
便捷判断消息撤回
:param event: event
:param id_: 消息id send 返回的字典
:param conditions: 判断条件
"""
2023-03-18 01:39:31 +08:00
if conditions and conditions[0]:
2021-11-04 16:11:50 +08:00
if (
(conditions[1] == 0 and isinstance(event, PrivateMessageEvent))
or (conditions[1] == 1 and isinstance(event, GroupMessageEvent))
or conditions[1] == 2
):
self.append((id_, conditions[0]))