mirror of
https://github.com/nonebot/nonebot2.git
synced 2025-07-28 00:31:14 +00:00
💡 add cqhttp event
This commit is contained in:
@ -52,6 +52,9 @@ class BaseEvent(abc.ABC):
|
||||
|
||||
def __init__(self, raw_event: dict):
|
||||
self._raw_event = raw_event
|
||||
"""
|
||||
原始 event
|
||||
"""
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"<Event {self.self_id}: {self.name} {self.time}>"
|
||||
|
@ -256,7 +256,7 @@ class ResultStore:
|
||||
|
||||
class Bot(BaseBot):
|
||||
"""
|
||||
CQHTTP 协议 Bot 适配
|
||||
CQHTTP 协议 Bot 适配。继承属性参考 `BaseBot <./#class-basebot>`_ 。
|
||||
"""
|
||||
|
||||
def __init__(self,
|
||||
@ -435,6 +435,9 @@ class Bot(BaseBot):
|
||||
|
||||
|
||||
class Event(BaseEvent):
|
||||
"""
|
||||
CQHTTP 协议 Event 适配。继承属性参考 `BaseEvent <./#class-baseevent>`_ 。
|
||||
"""
|
||||
|
||||
def __init__(self, raw_event: dict):
|
||||
if "message" in raw_event:
|
||||
@ -445,11 +448,19 @@ class Event(BaseEvent):
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def id(self) -> Optional[int]:
|
||||
"""
|
||||
- 类型: ``Optional[int]``
|
||||
- 说明: 事件/消息 ID
|
||||
"""
|
||||
return self._raw_event.get("message_id") or self._raw_event.get("flag")
|
||||
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def name(self) -> str:
|
||||
"""
|
||||
- 类型: ``str``
|
||||
- 说明: 事件名称,由类型与 ``.`` 组合而成
|
||||
"""
|
||||
n = self.type + "." + self.detail_type
|
||||
if self.sub_type:
|
||||
n += "." + self.sub_type
|
||||
@ -458,16 +469,28 @@ class Event(BaseEvent):
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def self_id(self) -> str:
|
||||
"""
|
||||
- 类型: ``str``
|
||||
- 说明: 机器人自身 ID
|
||||
"""
|
||||
return str(self._raw_event["self_id"])
|
||||
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def time(self) -> int:
|
||||
"""
|
||||
- 类型: ``int``
|
||||
- 说明: 事件发生时间
|
||||
"""
|
||||
return self._raw_event["time"]
|
||||
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def type(self) -> str:
|
||||
"""
|
||||
- 类型: ``str``
|
||||
- 说明: 事件类型
|
||||
"""
|
||||
return self._raw_event["post_type"]
|
||||
|
||||
@type.setter
|
||||
@ -478,6 +501,10 @@ class Event(BaseEvent):
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def detail_type(self) -> str:
|
||||
"""
|
||||
- 类型: ``str``
|
||||
- 说明: 事件详细类型
|
||||
"""
|
||||
return self._raw_event[f"{self.type}_type"]
|
||||
|
||||
@detail_type.setter
|
||||
@ -488,6 +515,10 @@ class Event(BaseEvent):
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def sub_type(self) -> Optional[str]:
|
||||
"""
|
||||
- 类型: ``Optional[str]``
|
||||
- 说明: 事件子类型
|
||||
"""
|
||||
return self._raw_event.get("sub_type")
|
||||
|
||||
@type.setter
|
||||
@ -498,6 +529,10 @@ class Event(BaseEvent):
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def user_id(self) -> Optional[int]:
|
||||
"""
|
||||
- 类型: ``Optional[int]``
|
||||
- 说明: 事件主体 ID
|
||||
"""
|
||||
return self._raw_event.get("user_id")
|
||||
|
||||
@user_id.setter
|
||||
@ -508,6 +543,10 @@ class Event(BaseEvent):
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def group_id(self) -> Optional[int]:
|
||||
"""
|
||||
- 类型: ``Optional[int]``
|
||||
- 说明: 事件主体群 ID
|
||||
"""
|
||||
return self._raw_event.get("group_id")
|
||||
|
||||
@group_id.setter
|
||||
@ -518,6 +557,10 @@ class Event(BaseEvent):
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def to_me(self) -> Optional[bool]:
|
||||
"""
|
||||
- 类型: ``Optional[bool]``
|
||||
- 说明: 消息是否与机器人相关
|
||||
"""
|
||||
return self._raw_event.get("to_me")
|
||||
|
||||
@to_me.setter
|
||||
@ -528,6 +571,10 @@ class Event(BaseEvent):
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def message(self) -> Optional["Message"]:
|
||||
"""
|
||||
- 类型: ``Optional[Message]``
|
||||
- 说明: 消息内容
|
||||
"""
|
||||
return self._raw_event.get("message")
|
||||
|
||||
@message.setter
|
||||
@ -538,6 +585,10 @@ class Event(BaseEvent):
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def reply(self) -> Optional[dict]:
|
||||
"""
|
||||
- 类型: ``Optional[dict]``
|
||||
- 说明: 回复消息详情
|
||||
"""
|
||||
return self._raw_event.get("reply")
|
||||
|
||||
@reply.setter
|
||||
@ -548,6 +599,10 @@ class Event(BaseEvent):
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def raw_message(self) -> Optional[str]:
|
||||
"""
|
||||
- 类型: ``Optional[str]``
|
||||
- 说明: 原始消息
|
||||
"""
|
||||
return self._raw_event.get("raw_message")
|
||||
|
||||
@raw_message.setter
|
||||
@ -558,11 +613,19 @@ class Event(BaseEvent):
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def plain_text(self) -> Optional[str]:
|
||||
"""
|
||||
- 类型: ``Optional[str]``
|
||||
- 说明: 纯文本消息内容
|
||||
"""
|
||||
return self.message and self.message.extract_plain_text()
|
||||
|
||||
@property
|
||||
@overrides(BaseEvent)
|
||||
def sender(self) -> Optional[dict]:
|
||||
"""
|
||||
- 类型: ``Optional[dict]``
|
||||
- 说明: 消息发送者信息
|
||||
"""
|
||||
return self._raw_event.get("sender")
|
||||
|
||||
@sender.setter
|
||||
|
Reference in New Issue
Block a user