Archived
1
0
Fork 0
This repository has been archived on 2024-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
akari-bot/core/elements/message/__init__.py

100 lines
2.9 KiB
Python
Raw Normal View History

2021-07-15 14:59:32 +00:00
class MsgInfo:
2021-07-26 12:43:51 +00:00
__slots__ = ["targetId", "senderId", "senderName", "targetFrom", "senderInfo", "senderFrom"]
2021-07-24 08:59:15 +00:00
def __init__(self,
2021-07-24 08:59:15 +00:00
targetId: [int, str],
senderId: [int, str],
senderName: str,
2021-07-26 12:43:51 +00:00
targetFrom: str,
senderFrom: str
):
self.targetId = targetId
self.senderId = senderId
self.senderName = senderName
2021-07-26 12:43:51 +00:00
self.targetFrom = targetFrom
self.senderFrom = senderFrom
2021-07-24 08:59:15 +00:00
class Session:
def __init__(self, message, target, sender):
self.message = message
self.target = target
self.sender = sender
class MessageSession:
2021-08-07 07:56:48 +00:00
"""
消息会话囊括了处理一条消息所需要的东西
"""
2021-08-01 14:54:25 +00:00
__slots__ = ("target", "session", "trigger_msg", "parsed_msg",)
2021-07-24 08:59:15 +00:00
def __init__(self,
2021-07-24 08:59:15 +00:00
target: MsgInfo,
session: Session):
self.target = target
2021-07-24 08:59:15 +00:00
self.session = session
2021-07-12 13:31:11 +00:00
async def sendMessage(self, msgchain, quote=True):
"""
用于向消息发送者回复消息
:param msgchain: 消息链若传入str则自动创建一条带有Plain元素的消息链
:param quote: 是否引用传入dict中的消息仅对Group消息有效默认为True
:return: 被发送的消息链
"""
...
2021-07-12 13:31:11 +00:00
async def waitConfirm(self):
"""
一次性模板用于等待触发对象确认
:param display_msg: 函数传入的dict
:return: 若对象发送confirm_command中的其一文本时返回True反之则返回False
"""
...
def asDisplay(self):
"""
用于将消息转换为一般文本格式
"""
...
async def delete(self):
"""
用于删除这条消息
"""
...
2021-08-01 14:54:25 +00:00
async def checkPermission(self):
"""
用于检查消息发送者在对象内的权限
"""
...
2021-08-01 14:54:25 +00:00
class Typing:
def __init__(self, msg):
"""
:param msg: 本条消息由于此class需要被一同传入下游方便调用所以作为子class存在将来可能会有其他的解决办法
"""
...
2021-08-01 14:54:25 +00:00
def checkSuperUser(self):
"""
用于检查消息发送者是否为超级用户
"""
...
2021-08-01 14:54:25 +00:00
class Feature:
"""
此消息来自的客户端所支持的消息特性一览用于不同平台适用特性判断如QQ支持消息类型的语音而Discord不支持
"""
2021-08-01 14:54:25 +00:00
image = ...
voice = ...
2021-08-07 07:56:48 +00:00
class FetchTarget:
@staticmethod
2021-08-20 16:32:46 +00:00
async def fetch_target(targetId) -> MessageSession:
2021-08-07 07:56:48 +00:00
"""
尝试从数据库记录的对象ID中取得对象消息会话实际此会话中的消息文本会被设为False因为本来就没有
"""
...