💡 add cqhttp event

This commit is contained in:
yanyongyu 2020-09-29 23:10:29 +08:00
parent f3986ace51
commit edc3aadbb5
6 changed files with 266 additions and 6 deletions

View File

@ -120,6 +120,10 @@ module.exports = context => ({
title: "nonebot.exception 模块",
path: "exception"
},
{
title: "nonebot.adapters 模块",
path: "adapters/"
},
{
title: "nonebot.adapters.cqhttp 模块",
path: "adapters/cqhttp"

View File

@ -0,0 +1,41 @@
---
contentSidebar: true
sidebarDepth: 0
---
# NoneBot.adapters 模块
## _class_ `BaseBot`
基类:`abc.ABC`
## _class_ `BaseEvent`
基类:`abc.ABC`
### `_raw_event`
原始 event
## _class_ `BaseMessageSegment`
基类:`abc.ABC`
## _class_ `BaseMessage`
基类:`list`, `abc.ABC`
### `append(obj)`
Append object to the end of the list.
### `extend(obj)`
Extend list by appending elements from the iterable.

View File

@ -158,9 +158,9 @@ sidebarDepth: 0
## _class_ `Bot`
基类:`nonebot.adapters.BaseBot`
基类:[`nonebot.adapters.BaseBot`](#None)
CQHTTP 协议 Bot 适配
CQHTTP 协议 Bot 适配。继承属性参考 [BaseBot](./#class-basebot) 。
### _property_ `type`
@ -261,14 +261,151 @@ CQHTTP 协议 Bot 适配
## _class_ `Event`
基类:`nonebot.adapters.BaseEvent`
基类:[`nonebot.adapters.BaseEvent`](#None)
CQHTTP 协议 Event 适配。继承属性参考 [BaseEvent](./#class-baseevent) 。
### _property_ `id`
* 类型: `Optional[int]`
* 说明: 事件/消息 ID
### _property_ `name`
* 类型: `str`
* 说明: 事件名称,由类型与 `.` 组合而成
### _property_ `self_id`
* 类型: `str`
* 说明: 机器人自身 ID
### _property_ `time`
* 类型: `int`
* 说明: 事件发生时间
### _property_ `type`
* 类型: `str`
* 说明: 事件类型
### _property_ `detail_type`
* 类型: `str`
* 说明: 事件详细类型
### _property_ `sub_type`
* 类型: `str`
* 说明: 事件类型
### _property_ `user_id`
* 类型: `Optional[int]`
* 说明: 事件主体 ID
### _property_ `group_id`
* 类型: `Optional[int]`
* 说明: 事件主体群 ID
### _property_ `to_me`
* 类型: `Optional[bool]`
* 说明: 消息是否与机器人相关
### _property_ `message`
* 类型: `Optional[Message]`
* 说明: 消息内容
### _property_ `reply`
* 类型: `Optional[dict]`
* 说明: 回复消息详情
### _property_ `raw_message`
* 类型: `Optional[str]`
* 说明: 原始消息
### _property_ `plain_text`
* 类型: `Optional[str]`
* 说明: 纯文本消息内容
### _property_ `sender`
* 类型: `Optional[dict]`
* 说明: 消息发送者信息
## _class_ `MessageSegment`
基类:`nonebot.adapters.BaseMessageSegment`
基类:[`nonebot.adapters.BaseMessageSegment`](#None)
## _class_ `Message`
基类:`nonebot.adapters.BaseMessage`
基类:[`nonebot.adapters.BaseMessage`](#None)

View File

@ -0,0 +1,12 @@
---
contentSidebar: true
sidebarDepth: 0
---
NoneBot.adapters 模块
=================
.. automodule:: nonebot.adapters
:members:
:private-members:
:show-inheritance:

View File

@ -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}>"

View File

@ -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