📝 update api docs

This commit is contained in:
yanyongyu 2020-12-07 00:52:26 +08:00
parent a420af75fc
commit e0d44f3fa7
12 changed files with 58 additions and 204 deletions

View File

@ -10,7 +10,7 @@ sidebarDepth: 0
各协议请继承以下基类,并使用 `driver.register_adapter` 注册适配器
## _class_ `BaseBot`
## _class_ `Bot`
基类:`abc.ABC`
@ -174,7 +174,7 @@ await bot.send_msg(message="hello world")
## _class_ `BaseEvent`
## _class_ `Event`
基类:`abc.ABC`, `typing.Generic`
@ -271,7 +271,7 @@ Event 基类。提供上报信息的关键信息,其余信息可从原始上
消息发送者信息
## _class_ `BaseMessageSegment`
## _class_ `MessageSegment`
基类:`abc.ABC`
@ -296,7 +296,7 @@ Event 基类。提供上报信息的关键信息,其余信息可从原始上
* 说明: 消息段数据
## _class_ `BaseMessage`
## _class_ `Message`
基类:`list`, `abc.ABC`

View File

@ -176,7 +176,7 @@ sidebarDepth: 0
## _class_ `Bot`
基类:[`nonebot.adapters.BaseBot`](README.md#nonebot.adapters.BaseBot)
基类:[`nonebot.adapters.Bot`](README.md#nonebot.adapters.Bot)
CQHTTP 协议 Bot 适配。继承属性参考 [BaseBot](./#class-basebot) 。
@ -288,7 +288,7 @@ CQHTTP 协议 Bot 适配。继承属性参考 [BaseBot](./#class-basebot) 。
## _class_ `Event`
基类:[`nonebot.adapters.BaseEvent`](README.md#nonebot.adapters.BaseEvent)
基类:[`nonebot.adapters.Event`](README.md#nonebot.adapters.Event)
CQHTTP 协议 Event 适配。继承属性参考 [BaseEvent](./#class-baseevent) 。
@ -430,13 +430,13 @@ CQHTTP 协议 Event 适配。继承属性参考 [BaseEvent](./#class-baseevent)
## _class_ `MessageSegment`
基类:[`nonebot.adapters.BaseMessageSegment`](README.md#nonebot.adapters.BaseMessageSegment)
基类:[`nonebot.adapters.MessageSegment`](README.md#nonebot.adapters.MessageSegment)
CQHTTP 协议 MessageSegment 适配。具体方法参考协议消息段类型或源码。
## _class_ `Message`
基类:[`nonebot.adapters.BaseMessage`](README.md#nonebot.adapters.BaseMessage)
基类:[`nonebot.adapters.Message`](README.md#nonebot.adapters.Message)
CQHTTP 协议 Message 适配。

View File

@ -74,7 +74,7 @@ sidebarDepth: 0
## _class_ `Bot`
基类:[`nonebot.adapters.BaseBot`](README.md#nonebot.adapters.BaseBot)
基类:[`nonebot.adapters.Bot`](README.md#nonebot.adapters.Bot)
钉钉 协议 Bot 适配。继承属性参考 [BaseBot](./#class-basebot) 。
@ -193,7 +193,7 @@ sidebarDepth: 0
## _class_ `Event`
基类:[`nonebot.adapters.BaseEvent`](README.md#nonebot.adapters.BaseEvent)
基类:[`nonebot.adapters.Event`](README.md#nonebot.adapters.Event)
钉钉 协议 Event 适配。继承属性参考 [BaseEvent](./#class-baseevent) 。
@ -340,7 +340,7 @@ sidebarDepth: 0
## _class_ `MessageSegment`
基类:[`nonebot.adapters.BaseMessageSegment`](README.md#nonebot.adapters.BaseMessageSegment)
基类:[`nonebot.adapters.MessageSegment`](README.md#nonebot.adapters.MessageSegment)
钉钉 协议 MessageSegment 适配。具体方法参考协议消息段类型或源码。
@ -375,6 +375,6 @@ sidebarDepth: 0
## _class_ `Message`
基类:[`nonebot.adapters.BaseMessage`](README.md#nonebot.adapters.BaseMessage)
基类:[`nonebot.adapters.Message`](README.md#nonebot.adapters.Message)
钉钉 协议 Message 适配。

View File

@ -10,7 +10,7 @@ sidebarDepth: 0
各驱动请继承以下基类
## _class_ `BaseDriver`
## _class_ `Driver`
基类:`abc.ABC`
@ -189,7 +189,7 @@ Driver 基类。将后端框架封装,以满足适配器使用。
用于处理 WebSocket 类型请求的函数
## _class_ `BaseWebSocket`
## _class_ `WebSocket`
基类:`object`

View File

@ -12,7 +12,7 @@ sidebarDepth: 0
## _class_ `Driver`
基类:[`nonebot.drivers.BaseDriver`](README.md#nonebot.drivers.BaseDriver)
基类:[`nonebot.drivers.Driver`](README.md#nonebot.drivers.Driver)
FastAPI 驱动框架
@ -80,7 +80,7 @@ fastapi 使用的 logger
## _class_ `WebSocket`
基类:[`nonebot.drivers.BaseWebSocket`](README.md#nonebot.drivers.BaseWebSocket)
基类:[`nonebot.drivers.WebSocket`](README.md#nonebot.drivers.WebSocket)
### _property_ `closed`

View File

@ -157,7 +157,7 @@ sidebarDepth: 0
* **类型**
`dict`
`State`
@ -238,7 +238,7 @@ sidebarDepth: 0
* `module: Optional[str]`: 事件响应器所在模块名称
* `default_state: Optional[dict]`: 默认状态 `state`
* `default_state: Optional[State]`: 默认状态 `state`
* `expire_time: Optional[datetime]`: 事件响应器最终有效时间点,过时即被删除
@ -296,7 +296,7 @@ sidebarDepth: 0
* `event: Event`: 上报事件
* `state: dict`: 当前状态
* `state: State`: 当前状态

View File

@ -30,7 +30,7 @@ NoneBot 内部处理并按优先级分发事件给所有事件响应器,提供
* `event: Event`: Event 对象
* `state: dict`: 当前 State
* `state: State`: 当前 State
@ -54,7 +54,7 @@ NoneBot 内部处理并按优先级分发事件给所有事件响应器,提供
* `event: Event`: Event 对象
* `state: dict`: 当前事件运行前 State
* `state: State`: 当前事件运行前 State
@ -81,7 +81,7 @@ NoneBot 内部处理并按优先级分发事件给所有事件响应器,提供
* `event: Event`: Event 对象
* `state: dict`: 当前 State
* `state: State`: 当前 State
@ -111,7 +111,7 @@ NoneBot 内部处理并按优先级分发事件给所有事件响应器,提供
* `event: Event`: Event 对象
* `state: dict`: 当前 State
* `state: State`: 当前 State

View File

@ -133,7 +133,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -171,7 +171,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -212,7 +212,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -250,7 +250,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -288,7 +288,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -332,7 +332,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -376,7 +376,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -420,7 +420,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -469,7 +469,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -518,7 +518,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -666,7 +666,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -704,7 +704,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -745,7 +745,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -783,7 +783,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -821,7 +821,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -865,7 +865,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -909,7 +909,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -953,7 +953,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -1002,7 +1002,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state
@ -1051,7 +1051,7 @@ def something_else():
* `block: bool`: 是否阻止事件向更低优先级传递
* `state: Optional[dict]`: 默认的 state
* `state: Optional[State]`: 默认的 state

View File

@ -42,7 +42,7 @@ Rule(async_function, run_sync(sync_function))
* **参数**
* `*checkers: Callable[[Bot, Event, dict], Awaitable[bool]]`: **异步** RuleChecker
* `*checkers: Callable[[Bot, Event, State], Awaitable[bool]]`: **异步** RuleChecker
@ -58,7 +58,7 @@ Rule(async_function, run_sync(sync_function))
* **类型**
* `Set[Callable[[Bot, Event, dict], Awaitable[bool]]]`
* `Set[Callable[[Bot, Event, State], Awaitable[bool]]]`
@ -80,7 +80,7 @@ Rule(async_function, run_sync(sync_function))
* `event: Event`: Event 对象
* `state: dict`: 当前 State
* `state: State`: 当前 State

View File

@ -14,98 +14,18 @@ sidebarDepth: 0
以下类型均可从 nonebot.typing 模块导入。
## `Driver`
## `State`
* **类型**
`BaseDriver`
`Dict[Any, Any]`
* **说明**
所有 Driver 的基类。
## `WebSocket`
* **类型**
`BaseWebSocket`
* **说明**
所有 WebSocket 的基类。
## `Bot`
* **类型**
`BaseBot`
* **说明**
所有 Bot 的基类。
## `Event`
* **类型**
`BaseEvent`
* **说明**
所有 Event 的基类。
## `Message`
* **类型**
`BaseMessage`
* **说明**
所有 Message 的基类。
## `MessageSegment`
* **类型**
`BaseMessageSegment`
* **说明**
所有 MessageSegment 的基类。
事件处理状态 State 类型
@ -115,7 +35,7 @@ sidebarDepth: 0
* **类型**
`Callable[[Bot, Event, dict], Union[Awaitable[None], Awaitable[NoReturn]]]`
`Callable[[Bot, Event, State], Awaitable[None]]`
@ -131,7 +51,7 @@ sidebarDepth: 0
* **类型**
`Callable[[Bot, Event, dict], Union[Awaitable[None], Awaitable[NoReturn]]]`
`Callable[[Bot, Event, State], Awaitable[None]]`
@ -147,7 +67,7 @@ sidebarDepth: 0
* **类型**
`Callable[[Matcher, Bot, Event, dict], Union[Awaitable[None], Awaitable[NoReturn]]]`
`Callable[[Matcher, Bot, Event, State], Awaitable[None]]`
@ -163,7 +83,7 @@ sidebarDepth: 0
* **类型**
`Callable[[Matcher, Optional[Exception], Bot, Event, dict], Union[Awaitable[None], Awaitable[NoReturn]]]`
`Callable[[Matcher, Optional[Exception], Bot, Event, State], Awaitable[None]]`
@ -174,60 +94,12 @@ sidebarDepth: 0
## `Matcher`
* **类型**
`Matcher`
* **说明**
Matcher 即响应事件的处理类。通过 Rule 判断是否响应事件,运行 Handler。
## `MatcherGroup`
* **类型**
`MatcherGroup`
* **说明**
MatcherGroup 为 Matcher 的集合。可以共享 Handler。
## `Rule`
* **类型**
`Rule`
* **说明**
Rule 即判断是否响应事件的处理类。内部存储 RuleChecker ,返回全为 True 则响应事件。
## `RuleChecker`
* **类型**
`Callable[[Bot, Event, dict], Union[bool, Awaitable[bool]]]`
`Callable[[Bot, Event, State], Union[bool, Awaitable[bool]]]`
@ -238,22 +110,6 @@ sidebarDepth: 0
## `Permission`
* **类型**
`Permission`
* **说明**
Permission 即判断是否响应消息的处理类。内部存储 PermissionChecker ,返回只要有一个 True 则响应消息。
## `PermissionChecker`
@ -275,7 +131,7 @@ sidebarDepth: 0
* **类型**
`Callable[[Bot, Event, dict], Union[Awaitable[None], Awaitable[NoReturn]]]`
`Callable[[Bot, Event, State], Union[Awaitable[None], Awaitable[NoReturn]]]`
@ -291,7 +147,7 @@ sidebarDepth: 0
* **类型**
`Callable[[Bot, Event, dict], Union[Awaitable[None], Awaitable[NoReturn]]]`
`Callable[[Bot, Event, State], Awaitable[None]]`

View File

@ -5,7 +5,6 @@
该模块实现事件响应器的创建与运行并提供一些快捷方法来帮助用户更好的与机器人进行 对话
"""
import typing
import inspect
from functools import wraps
from datetime import datetime
@ -416,10 +415,9 @@ class Matcher(metaclass=MatcherMeta):
for _ in range(len(self.handlers)):
handler = self.handlers.pop(0)
# annotation = typing.get_type_hints(handler)
# BotType = annotation.get("bot")
signature = inspect.signature(handler)
BotType = signature.parameters.get("bot").annotation
print(BotType)
if BotType is not inspect.Parameter.empty and inspect.isclass(
BotType) and not isinstance(bot, BotType):
continue

View File

@ -133,7 +133,7 @@ async def _check_matcher(priority: int, bot: "Bot", event: "Event",
expired = await asyncio.gather(*checking_expire_tasks)
for expired_matcher in filter(lambda x: x and x in results, expired):
try:
matchers[priority].remove(expired_matcher)
matchers[priority].remove(expired_matcher) # type: ignore
except Exception:
pass
return filter(lambda x: x, results)