mirror of
https://github.com/nonebot/nonebot2.git
synced 2025-07-27 16:21:28 +00:00
🔖 Release 2.4.0
This commit is contained in:
0
website/versioned_docs/version-2.4.0/api/.gitkeep
Normal file
0
website/versioned_docs/version-2.4.0/api/.gitkeep
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"position": 15
|
||||
}
|
880
website/versioned_docs/version-2.4.0/api/adapters/index.md
Normal file
880
website/versioned_docs/version-2.4.0/api/adapters/index.md
Normal file
@ -0,0 +1,880 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 0
|
||||
description: nonebot.adapters 模块
|
||||
---
|
||||
|
||||
# nonebot.adapters
|
||||
|
||||
本模块定义了协议适配基类,各协议请继承以下基类。
|
||||
|
||||
使用 [Driver.register_adapter](../drivers/index.md#Driver-register-adapter) 注册适配器。
|
||||
|
||||
## _abstract class_ `Bot(adapter, self_id)` {#Bot}
|
||||
|
||||
- **说明**
|
||||
|
||||
Bot 基类。
|
||||
|
||||
用于处理上报消息,并提供 API 调用接口。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `adapter` ([Adapter](#Adapter)): 协议适配器实例
|
||||
|
||||
- `self_id` (str): 机器人 ID
|
||||
|
||||
### _instance-var_ `adapter` {#Bot-adapter}
|
||||
|
||||
- **类型:** [Adapter](#Adapter)
|
||||
|
||||
- **说明:** 协议适配器实例
|
||||
|
||||
### _instance-var_ `self_id` {#Bot-self-id}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 机器人 ID
|
||||
|
||||
### _property_ `type` {#Bot-type}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 协议适配器名称
|
||||
|
||||
### _property_ `config` {#Bot-config}
|
||||
|
||||
- **类型:** [Config](../config.md#Config)
|
||||
|
||||
- **说明:** 全局 NoneBot 配置
|
||||
|
||||
### _async method_ `call_api(api, **data)` {#Bot-call-api}
|
||||
|
||||
- **说明:** 调用机器人 API 接口,可以通过该函数或直接通过 bot 属性进行调用
|
||||
|
||||
- **参数**
|
||||
|
||||
- `api` (str): API 名称
|
||||
|
||||
- `**data` (Any): API 数据
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
await bot.call_api("send_msg", message="hello world")
|
||||
await bot.send_msg(message="hello world")
|
||||
```
|
||||
|
||||
### _abstract async method_ `send(event, message, **kwargs)` {#Bot-send}
|
||||
|
||||
- **说明:** 调用机器人基础发送消息接口
|
||||
|
||||
- **参数**
|
||||
|
||||
- `event` ([Event](#Event)): 上报事件
|
||||
|
||||
- `message` (str | [Message](#Message) | [MessageSegment](#MessageSegment)): 要发送的消息
|
||||
|
||||
- `**kwargs` (Any): 任意额外参数
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
### _classmethod_ `on_calling_api(func)` {#Bot-on-calling-api}
|
||||
|
||||
- **说明**
|
||||
|
||||
调用 api 预处理。
|
||||
|
||||
钩子函数参数:
|
||||
|
||||
- bot: 当前 bot 对象
|
||||
- api: 调用的 api 名称
|
||||
- data: api 调用的参数字典
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` ([T_CallingAPIHook](../typing.md#T-CallingAPIHook))
|
||||
|
||||
- **返回**
|
||||
|
||||
- [T_CallingAPIHook](../typing.md#T-CallingAPIHook)
|
||||
|
||||
### _classmethod_ `on_called_api(func)` {#Bot-on-called-api}
|
||||
|
||||
- **说明**
|
||||
|
||||
调用 api 后处理。
|
||||
|
||||
钩子函数参数:
|
||||
|
||||
- bot: 当前 bot 对象
|
||||
- exception: 调用 api 时发生的错误
|
||||
- api: 调用的 api 名称
|
||||
- data: api 调用的参数字典
|
||||
- result: api 调用的返回
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` ([T_CalledAPIHook](../typing.md#T-CalledAPIHook))
|
||||
|
||||
- **返回**
|
||||
|
||||
- [T_CalledAPIHook](../typing.md#T-CalledAPIHook)
|
||||
|
||||
## _abstract class_ `Event(<auto>)` {#Event}
|
||||
|
||||
- **说明:** Event 基类。提供获取关键信息的方法,其余信息可直接获取。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _abstract method_ `get_type()` {#Event-get-type}
|
||||
|
||||
- **说明:** 获取事件类型的方法,类型通常为 NoneBot 内置的四种类型。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _abstract method_ `get_event_name()` {#Event-get-event-name}
|
||||
|
||||
- **说明:** 获取事件名称的方法。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _abstract method_ `get_event_description()` {#Event-get-event-description}
|
||||
|
||||
- **说明:** 获取事件描述的方法,通常为事件具体内容。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _method_ `get_log_string()` {#Event-get-log-string}
|
||||
|
||||
- **说明**
|
||||
|
||||
获取事件日志信息的方法。
|
||||
|
||||
通常你不需要修改这个方法,只有当希望 NoneBot 隐藏该事件日志时,
|
||||
可以抛出 `NoLogException` 异常。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
- **异常**
|
||||
|
||||
- NoLogException: 希望 NoneBot 隐藏该事件日志
|
||||
|
||||
### _abstract method_ `get_user_id()` {#Event-get-user-id}
|
||||
|
||||
- **说明:** 获取事件主体 id 的方法,通常是用户 id 。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _abstract method_ `get_session_id()` {#Event-get-session-id}
|
||||
|
||||
- **说明:** 获取会话 id 的方法,用于判断当前事件属于哪一个会话, 通常是用户 id、群组 id 组合。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _abstract method_ `get_message()` {#Event-get-message}
|
||||
|
||||
- **说明:** 获取事件消息内容的方法。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Message](#Message)
|
||||
|
||||
### _method_ `get_plaintext()` {#Event-get-plaintext}
|
||||
|
||||
- **说明**
|
||||
|
||||
获取消息纯文本的方法。
|
||||
|
||||
通常不需要修改,默认通过 `get_message().extract_plain_text` 获取。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _abstract method_ `is_tome()` {#Event-is-tome}
|
||||
|
||||
- **说明:** 获取事件是否与机器人有关的方法。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _abstract class_ `Adapter(driver, **kwargs)` {#Adapter}
|
||||
|
||||
- **说明**
|
||||
|
||||
协议适配器基类。
|
||||
|
||||
通常,在 Adapter 中编写协议通信相关代码,如: 建立通信连接、处理接收与发送 data 等。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `driver` ([Driver](../drivers/index.md#Driver)): [Driver](../drivers/index.md#Driver) 实例
|
||||
|
||||
- `**kwargs` (Any): 其他由 [Driver.register_adapter](../drivers/index.md#Driver-register-adapter) 传入的额外参数
|
||||
|
||||
### _instance-var_ `driver` {#Adapter-driver}
|
||||
|
||||
- **类型:** [Driver](../drivers/index.md#Driver)
|
||||
|
||||
- **说明:** 实例
|
||||
|
||||
### _instance-var_ `bots` {#Adapter-bots}
|
||||
|
||||
- **类型:** dict[str, [Bot](#Bot)]
|
||||
|
||||
- **说明:** 本协议适配器已建立连接的 [Bot](#Bot) 实例
|
||||
|
||||
### _abstract classmethod_ `get_name()` {#Adapter-get-name}
|
||||
|
||||
- **说明:** 当前协议适配器的名称
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _property_ `config` {#Adapter-config}
|
||||
|
||||
- **类型:** [Config](../config.md#Config)
|
||||
|
||||
- **说明:** 全局 NoneBot 配置
|
||||
|
||||
### _method_ `bot_connect(bot)` {#Adapter-bot-connect}
|
||||
|
||||
- **说明**
|
||||
|
||||
告知 NoneBot 建立了一个新的 [Bot](#Bot) 连接。
|
||||
|
||||
当有新的 [Bot](#Bot) 实例连接建立成功时调用。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `bot` ([Bot](#Bot)): [Bot](#Bot) 实例
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _method_ `bot_disconnect(bot)` {#Adapter-bot-disconnect}
|
||||
|
||||
- **说明**
|
||||
|
||||
告知 NoneBot [Bot](#Bot) 连接已断开。
|
||||
|
||||
当有 [Bot](#Bot) 实例连接断开时调用。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `bot` ([Bot](#Bot)): [Bot](#Bot) 实例
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _method_ `setup_http_server(setup)` {#Adapter-setup-http-server}
|
||||
|
||||
- **说明:** 设置一个 HTTP 服务器路由配置
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([HTTPServerSetup](../drivers/index.md#HTTPServerSetup))
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _method_ `setup_websocket_server(setup)` {#Adapter-setup-websocket-server}
|
||||
|
||||
- **说明:** 设置一个 WebSocket 服务器路由配置
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([WebSocketServerSetup](../drivers/index.md#WebSocketServerSetup))
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _async method_ `request(setup)` {#Adapter-request}
|
||||
|
||||
- **说明:** 进行一个 HTTP 客户端请求
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([Request](../drivers/index.md#Request))
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Response](../drivers/index.md#Response)
|
||||
|
||||
### _method_ `websocket(setup)` {#Adapter-websocket}
|
||||
|
||||
- **说明:** 建立一个 WebSocket 客户端连接请求
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([Request](../drivers/index.md#Request))
|
||||
|
||||
- **返回**
|
||||
|
||||
- AsyncGenerator[[WebSocket](../drivers/index.md#WebSocket), None]
|
||||
|
||||
### _method_ `on_ready(func)` {#Adapter-on-ready}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` (LIFESPAN_FUNC)
|
||||
|
||||
- **返回**
|
||||
|
||||
- LIFESPAN_FUNC
|
||||
|
||||
## _abstract class_ `Message(<auto>)` {#Message}
|
||||
|
||||
- **说明:** 消息序列
|
||||
|
||||
- **参数**
|
||||
|
||||
- `message`: 消息内容
|
||||
|
||||
### _classmethod_ `template(format_string)` {#Message-template}
|
||||
|
||||
- **说明**
|
||||
|
||||
创建消息模板。
|
||||
|
||||
用法和 `str.format` 大致相同,支持以 `Message` 对象作为消息模板并输出消息对象。
|
||||
并且提供了拓展的格式化控制符,
|
||||
可以通过该消息类型的 `MessageSegment` 工厂方法创建消息。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `format_string` (str | TM): 格式化模板
|
||||
|
||||
- **返回**
|
||||
|
||||
- [MessageTemplate](#MessageTemplate)[Self]: 消息格式化器
|
||||
|
||||
### _abstract classmethod_ `get_segment_class()` {#Message-get-segment-class}
|
||||
|
||||
- **说明:** 获取消息段类型
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[TMS]
|
||||
|
||||
### _abstract staticmethod_ `_construct(msg)` {#Message--construct}
|
||||
|
||||
- **说明:** 构造消息数组
|
||||
|
||||
- **参数**
|
||||
|
||||
- `msg` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- Iterable[TMS]
|
||||
|
||||
### _method_ `__getitem__(args)` {#Message---getitem--}
|
||||
|
||||
- **重载**
|
||||
|
||||
**1.** `(args) -> Self`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `args` (str): 消息段类型
|
||||
|
||||
- **返回**
|
||||
|
||||
- Self: 所有类型为 `args` 的消息段
|
||||
|
||||
**2.** `(args) -> TMS`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `args` (tuple[str, int]): 消息段类型和索引
|
||||
|
||||
- **返回**
|
||||
|
||||
- TMS: 类型为 `args[0]` 的消息段第 `args[1]` 个
|
||||
|
||||
**3.** `(args) -> Self`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `args` (tuple[str, slice]): 消息段类型和切片
|
||||
|
||||
- **返回**
|
||||
|
||||
- Self: 类型为 `args[0]` 的消息段切片 `args[1]`
|
||||
|
||||
**4.** `(args) -> TMS`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `args` (int): 索引
|
||||
|
||||
- **返回**
|
||||
|
||||
- TMS: 第 `args` 个消息段
|
||||
|
||||
**5.** `(args) -> Self`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `args` (slice): 切片
|
||||
|
||||
- **返回**
|
||||
|
||||
- Self: 消息切片 `args`
|
||||
|
||||
### _method_ `__contains__(value)` {#Message---contains--}
|
||||
|
||||
- **说明:** 检查消息段是否存在
|
||||
|
||||
- **参数**
|
||||
|
||||
- `value` (TMS | str): 消息段或消息段类型
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool: 消息内是否存在给定消息段或给定类型的消息段
|
||||
|
||||
### _method_ `has(value)` {#Message-has}
|
||||
|
||||
- **说明:** 与 [`__contains__`](#Message---contains--) 相同
|
||||
|
||||
- **参数**
|
||||
|
||||
- `value` (TMS | str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
### _method_ `index(value, *args)` {#Message-index}
|
||||
|
||||
- **说明:** 索引消息段
|
||||
|
||||
- **参数**
|
||||
|
||||
- `value` (TMS | str): 消息段或者消息段类型
|
||||
|
||||
- `*args` (SupportsIndex)
|
||||
|
||||
- `arg`: start 与 end
|
||||
|
||||
- **返回**
|
||||
|
||||
- int: 索引 index
|
||||
|
||||
- **异常**
|
||||
|
||||
- ValueError: 消息段不存在
|
||||
|
||||
### _method_ `get(type_, count=None)` {#Message-get}
|
||||
|
||||
- **说明:** 获取指定类型的消息段
|
||||
|
||||
- **参数**
|
||||
|
||||
- `type_` (str): 消息段类型
|
||||
|
||||
- `count` (int | None): 获取个数
|
||||
|
||||
- **返回**
|
||||
|
||||
- Self: 构建的新消息
|
||||
|
||||
### _method_ `count(value)` {#Message-count}
|
||||
|
||||
- **说明:** 计算指定消息段的个数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `value` (TMS | str): 消息段或消息段类型
|
||||
|
||||
- **返回**
|
||||
|
||||
- int: 个数
|
||||
|
||||
### _method_ `only(value)` {#Message-only}
|
||||
|
||||
- **说明:** 检查消息中是否仅包含指定消息段
|
||||
|
||||
- **参数**
|
||||
|
||||
- `value` (TMS | str): 指定消息段或消息段类型
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool: 是否仅包含指定消息段
|
||||
|
||||
### _method_ `append(obj)` {#Message-append}
|
||||
|
||||
- **说明:** 添加一个消息段到消息数组末尾。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `obj` (str | TMS): 要添加的消息段
|
||||
|
||||
- **返回**
|
||||
|
||||
- Self
|
||||
|
||||
### _method_ `extend(obj)` {#Message-extend}
|
||||
|
||||
- **说明:** 拼接一个消息数组或多个消息段到消息数组末尾。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `obj` (Self | Iterable[TMS]): 要添加的消息数组
|
||||
|
||||
- **返回**
|
||||
|
||||
- Self
|
||||
|
||||
### _method_ `join(iterable)` {#Message-join}
|
||||
|
||||
- **说明:** 将多个消息连接并将自身作为分割
|
||||
|
||||
- **参数**
|
||||
|
||||
- `iterable` (Iterable[TMS | Self]): 要连接的消息
|
||||
|
||||
- **返回**
|
||||
|
||||
- Self: 连接后的消息
|
||||
|
||||
### _method_ `copy()` {#Message-copy}
|
||||
|
||||
- **说明:** 深拷贝消息
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- Self
|
||||
|
||||
### _method_ `include(*types)` {#Message-include}
|
||||
|
||||
- **说明:** 过滤消息
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*types` (str): 包含的消息段类型
|
||||
|
||||
- **返回**
|
||||
|
||||
- Self: 新构造的消息
|
||||
|
||||
### _method_ `exclude(*types)` {#Message-exclude}
|
||||
|
||||
- **说明:** 过滤消息
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*types` (str): 不包含的消息段类型
|
||||
|
||||
- **返回**
|
||||
|
||||
- Self: 新构造的消息
|
||||
|
||||
### _method_ `extract_plain_text()` {#Message-extract-plain-text}
|
||||
|
||||
- **说明:** 提取消息内纯文本消息
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _abstract class_ `MessageSegment(<auto>)` {#MessageSegment}
|
||||
|
||||
- **说明:** 消息段基类
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _instance-var_ `type` {#MessageSegment-type}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 消息段类型
|
||||
|
||||
### _class-var_ `data` {#MessageSegment-data}
|
||||
|
||||
- **类型:** dict[str, Any]
|
||||
|
||||
- **说明:** 消息段数据
|
||||
|
||||
### _abstract classmethod_ `get_message_class()` {#MessageSegment-get-message-class}
|
||||
|
||||
- **说明:** 获取消息数组类型
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[TM]
|
||||
|
||||
### _abstract method_ `__str__()` {#MessageSegment---str--}
|
||||
|
||||
- **说明:** 该消息段所代表的 str,在命令匹配部分使用
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _method_ `__add__(other)` {#MessageSegment---add--}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `other` (str | TMS | Iterable[TMS])
|
||||
|
||||
- **返回**
|
||||
|
||||
- TM
|
||||
|
||||
### _method_ `get(key, default=None)` {#MessageSegment-get}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `key` (str)
|
||||
|
||||
- `default` (Any)
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _method_ `keys()` {#MessageSegment-keys}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _method_ `values()` {#MessageSegment-values}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _method_ `items()` {#MessageSegment-items}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _method_ `join(iterable)` {#MessageSegment-join}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `iterable` (Iterable[TMS | TM])
|
||||
|
||||
- **返回**
|
||||
|
||||
- TM
|
||||
|
||||
### _method_ `copy()` {#MessageSegment-copy}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- Self
|
||||
|
||||
### _abstract method_ `is_text()` {#MessageSegment-is-text}
|
||||
|
||||
- **说明:** 当前消息段是否为纯文本
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _class_ `MessageTemplate(template, factory=str, private_getattr=False)` {#MessageTemplate}
|
||||
|
||||
- **说明:** 消息模板格式化实现类。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `template` (str | TM): 模板
|
||||
|
||||
- `factory` (type[str] | type[TM]): 消息类型工厂,默认为 `str`
|
||||
|
||||
- `private_getattr` (bool): 是否允许在模板中访问私有属性,默认为 `False`
|
||||
|
||||
### _method_ `add_format_spec(spec, name=None)` {#MessageTemplate-add-format-spec}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `spec` (FormatSpecFunc_T)
|
||||
|
||||
- `name` (str | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- FormatSpecFunc_T
|
||||
|
||||
### _method_ `format(*args, **kwargs)` {#MessageTemplate-format}
|
||||
|
||||
- **说明:** 根据传入参数和模板生成消息对象
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*args`
|
||||
|
||||
- `**kwargs`
|
||||
|
||||
- **返回**
|
||||
|
||||
- TF
|
||||
|
||||
### _method_ `format_map(mapping)` {#MessageTemplate-format-map}
|
||||
|
||||
- **说明:** 根据传入字典和模板生成消息对象, 在传入字段名不是有效标识符时有用
|
||||
|
||||
- **参数**
|
||||
|
||||
- `mapping` (Mapping[str, Any])
|
||||
|
||||
- **返回**
|
||||
|
||||
- TF
|
||||
|
||||
### _method_ `vformat(format_string, args, kwargs)` {#MessageTemplate-vformat}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `format_string` (str)
|
||||
|
||||
- `args` (Sequence[Any])
|
||||
|
||||
- `kwargs` (Mapping[str, Any])
|
||||
|
||||
- **返回**
|
||||
|
||||
- TF
|
||||
|
||||
### _method_ `get_field(field_name, args, kwargs)` {#MessageTemplate-get-field}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `field_name` (str)
|
||||
|
||||
- `args` (Sequence[Any])
|
||||
|
||||
- `kwargs` (Mapping[str, Any])
|
||||
|
||||
- **返回**
|
||||
|
||||
- tuple[Any, int | str]
|
||||
|
||||
### _method_ `format_field(value, format_spec)` {#MessageTemplate-format-field}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `value` (Any)
|
||||
|
||||
- `format_spec` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
216
website/versioned_docs/version-2.4.0/api/compat.md
Normal file
216
website/versioned_docs/version-2.4.0/api/compat.md
Normal file
@ -0,0 +1,216 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 16
|
||||
description: nonebot.compat 模块
|
||||
---
|
||||
|
||||
# nonebot.compat
|
||||
|
||||
本模块为 Pydantic 版本兼容层模块
|
||||
|
||||
为兼容 Pydantic V1 与 V2 版本,定义了一系列兼容函数与类供使用。
|
||||
|
||||
## _var_ `Required` {#Required}
|
||||
|
||||
- **类型:** untyped
|
||||
|
||||
- **说明:** Alias of Ellipsis for compatibility with pydantic v1
|
||||
|
||||
## _library-attr_ `PydanticUndefined` {#PydanticUndefined}
|
||||
|
||||
- **说明:** Pydantic Undefined object
|
||||
|
||||
## _library-attr_ `PydanticUndefinedType` {#PydanticUndefinedType}
|
||||
|
||||
- **说明:** Pydantic Undefined type
|
||||
|
||||
## _var_ `DEFAULT_CONFIG` {#DEFAULT-CONFIG}
|
||||
|
||||
- **类型:** untyped
|
||||
|
||||
- **说明:** Default config for validations
|
||||
|
||||
## _class_ `FieldInfo(default=PydanticUndefined, **kwargs)` {#FieldInfo}
|
||||
|
||||
- **说明:** FieldInfo class with extra property for compatibility with pydantic v1
|
||||
|
||||
- **参数**
|
||||
|
||||
- `default` (Any)
|
||||
|
||||
- `**kwargs` (Any)
|
||||
|
||||
### _property_ `extra` {#FieldInfo-extra}
|
||||
|
||||
- **类型:** dict[str, Any]
|
||||
|
||||
- **说明**
|
||||
|
||||
Extra data that is not part of the standard pydantic fields.
|
||||
|
||||
For compatibility with pydantic v1.
|
||||
|
||||
## _class_ `ModelField(<auto>)` {#ModelField}
|
||||
|
||||
- **说明:** ModelField class for compatibility with pydantic v1
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _instance-var_ `name` {#ModelField-name}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** The name of the field.
|
||||
|
||||
### _instance-var_ `annotation` {#ModelField-annotation}
|
||||
|
||||
- **类型:** Any
|
||||
|
||||
- **说明:** The annotation of the field.
|
||||
|
||||
### _instance-var_ `field_info` {#ModelField-field-info}
|
||||
|
||||
- **类型:** FieldInfo
|
||||
|
||||
- **说明:** The FieldInfo of the field.
|
||||
|
||||
### _classmethod_ `construct(name, annotation, field_info=None)` {#ModelField-construct}
|
||||
|
||||
- **说明:** Construct a ModelField from given infos.
|
||||
|
||||
- **参数**
|
||||
|
||||
- `name` (str)
|
||||
|
||||
- `annotation` (Any)
|
||||
|
||||
- `field_info` (FieldInfo | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- Self
|
||||
|
||||
### _method_ `get_default()` {#ModelField-get-default}
|
||||
|
||||
- **说明:** Get the default value of the field.
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
### _method_ `validate_value(value)` {#ModelField-validate-value}
|
||||
|
||||
- **说明:** Validate the value pass to the field.
|
||||
|
||||
- **参数**
|
||||
|
||||
- `value` (Any)
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
## _def_ `extract_field_info(field_info)` {#extract-field-info}
|
||||
|
||||
- **说明:** Get FieldInfo init kwargs from a FieldInfo instance.
|
||||
|
||||
- **参数**
|
||||
|
||||
- `field_info` (BaseFieldInfo)
|
||||
|
||||
- **返回**
|
||||
|
||||
- dict[str, Any]
|
||||
|
||||
## _def_ `model_fields(model)` {#model-fields}
|
||||
|
||||
- **说明:** Get field list of a model.
|
||||
|
||||
- **参数**
|
||||
|
||||
- `model` (type[BaseModel])
|
||||
|
||||
- **返回**
|
||||
|
||||
- list[ModelField]
|
||||
|
||||
## _def_ `model_config(model)` {#model-config}
|
||||
|
||||
- **说明:** Get config of a model.
|
||||
|
||||
- **参数**
|
||||
|
||||
- `model` (type[BaseModel])
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
## _def_ `model_dump(model, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)` {#model-dump}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `model` (BaseModel)
|
||||
|
||||
- `include` (set[str] | None)
|
||||
|
||||
- `exclude` (set[str] | None)
|
||||
|
||||
- `by_alias` (bool)
|
||||
|
||||
- `exclude_unset` (bool)
|
||||
|
||||
- `exclude_defaults` (bool)
|
||||
|
||||
- `exclude_none` (bool)
|
||||
|
||||
- **返回**
|
||||
|
||||
- dict[str, Any]
|
||||
|
||||
## _def_ `type_validate_python(type_, data)` {#type-validate-python}
|
||||
|
||||
- **说明:** Validate data with given type.
|
||||
|
||||
- **参数**
|
||||
|
||||
- `type_` (type[T])
|
||||
|
||||
- `data` (Any)
|
||||
|
||||
- **返回**
|
||||
|
||||
- T
|
||||
|
||||
## _def_ `type_validate_json(type_, data)` {#type-validate-json}
|
||||
|
||||
- **说明:** Validate JSON with given type.
|
||||
|
||||
- **参数**
|
||||
|
||||
- `type_` (type[T])
|
||||
|
||||
- `data` (str | bytes)
|
||||
|
||||
- **返回**
|
||||
|
||||
- T
|
||||
|
||||
## _def_ `custom_validation(class_)` {#custom-validation}
|
||||
|
||||
- **说明:** Use pydantic v1 like validator generator in pydantic v2
|
||||
|
||||
- **参数**
|
||||
|
||||
- `class_` (type[CVC])
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[CVC]
|
181
website/versioned_docs/version-2.4.0/api/config.md
Normal file
181
website/versioned_docs/version-2.4.0/api/config.md
Normal file
@ -0,0 +1,181 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 1
|
||||
description: nonebot.config 模块
|
||||
---
|
||||
|
||||
# nonebot.config
|
||||
|
||||
本模块定义了 NoneBot 本身运行所需的配置项。
|
||||
|
||||
NoneBot 使用 [`pydantic`](https://pydantic-docs.helpmanual.io/) 以及
|
||||
[`python-dotenv`](https://saurabh-kumar.com/python-dotenv/) 来读取配置。
|
||||
|
||||
配置项需符合特殊格式或 json 序列化格式
|
||||
详情见 [`pydantic Field Type`](https://pydantic-docs.helpmanual.io/usage/types/) 文档。
|
||||
|
||||
## _class_ `Env(_env_file=ENV_FILE_SENTINEL, _env_file_encoding=None, _env_nested_delimiter=None, **values)` {#Env}
|
||||
|
||||
- **说明**
|
||||
|
||||
运行环境配置。大小写不敏感。
|
||||
|
||||
将会从 **环境变量** > **dotenv 配置文件** 的优先级读取环境信息。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `_env_file` (DOTENV_TYPE | None)
|
||||
|
||||
- `_env_file_encoding` (str | None)
|
||||
|
||||
- `_env_nested_delimiter` (str | None)
|
||||
|
||||
- `**values` (Any)
|
||||
|
||||
### _class-var_ `environment` {#Env-environment}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明**
|
||||
|
||||
当前环境名。
|
||||
|
||||
NoneBot 将从 `.env.{environment}` 文件中加载配置。
|
||||
|
||||
## _class_ `Config(_env_file=ENV_FILE_SENTINEL, _env_file_encoding=None, _env_nested_delimiter=None, **values)` {#Config}
|
||||
|
||||
- **说明**
|
||||
|
||||
NoneBot 主要配置。大小写不敏感。
|
||||
|
||||
除了 NoneBot 的配置项外,还可以自行添加配置项到 `.env.{environment}` 文件中。
|
||||
这些配置将会在 json 反序列化后一起带入 `Config` 类中。
|
||||
|
||||
配置方法参考: [配置](https://nonebot.dev/docs/appendices/config)
|
||||
|
||||
- **参数**
|
||||
|
||||
- `_env_file` (DOTENV_TYPE | None)
|
||||
|
||||
- `_env_file_encoding` (str | None)
|
||||
|
||||
- `_env_nested_delimiter` (str | None)
|
||||
|
||||
- `**values` (Any)
|
||||
|
||||
### _class-var_ `driver` {#Config-driver}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明**
|
||||
|
||||
NoneBot 运行所使用的 `Driver` 。继承自 [Driver](drivers/index.md#Driver) 。
|
||||
|
||||
配置格式为 `<module>[:<Driver>][+<module>[:<Mixin>]]*`。
|
||||
|
||||
`~` 为 `nonebot.drivers.` 的缩写。
|
||||
|
||||
配置方法参考: [配置驱动器](https://nonebot.dev/docs/advanced/driver#%E9%85%8D%E7%BD%AE%E9%A9%B1%E5%8A%A8%E5%99%A8)
|
||||
|
||||
### _class-var_ `host` {#Config-host}
|
||||
|
||||
- **类型:** IPvAnyAddress
|
||||
|
||||
- **说明:** NoneBot [ReverseDriver](drivers/index.md#ReverseDriver) 服务端监听的 IP/主机名。
|
||||
|
||||
### _class-var_ `port` {#Config-port}
|
||||
|
||||
- **类型:** int
|
||||
|
||||
- **说明:** NoneBot [ReverseDriver](drivers/index.md#ReverseDriver) 服务端监听的端口。
|
||||
|
||||
### _class-var_ `log_level` {#Config-log-level}
|
||||
|
||||
- **类型:** int | str
|
||||
|
||||
- **说明**
|
||||
|
||||
NoneBot 日志输出等级,可以为 `int` 类型等级或等级名称。
|
||||
|
||||
参考 [记录日志](https://nonebot.dev/docs/appendices/log),[loguru 日志等级](https://loguru.readthedocs.io/en/stable/api/logger.html#levels)。
|
||||
|
||||
:::tip 提示
|
||||
日志等级名称应为大写,如 `INFO`。
|
||||
:::
|
||||
|
||||
- **用法**
|
||||
|
||||
```conf
|
||||
LOG_LEVEL=25
|
||||
LOG_LEVEL=INFO
|
||||
```
|
||||
|
||||
### _class-var_ `api_timeout` {#Config-api-timeout}
|
||||
|
||||
- **类型:** float | None
|
||||
|
||||
- **说明:** API 请求超时时间,单位: 秒。
|
||||
|
||||
### _class-var_ `superusers` {#Config-superusers}
|
||||
|
||||
- **类型:** set[str]
|
||||
|
||||
- **说明:** 机器人超级用户。
|
||||
|
||||
- **用法**
|
||||
|
||||
```conf
|
||||
SUPERUSERS=["12345789"]
|
||||
```
|
||||
|
||||
### _class-var_ `nickname` {#Config-nickname}
|
||||
|
||||
- **类型:** set[str]
|
||||
|
||||
- **说明:** 机器人昵称。
|
||||
|
||||
### _class-var_ `command_start` {#Config-command-start}
|
||||
|
||||
- **类型:** set[str]
|
||||
|
||||
- **说明**
|
||||
|
||||
命令的起始标记,用于判断一条消息是不是命令。
|
||||
|
||||
参考[命令响应规则](https://nonebot.dev/docs/advanced/matcher#command)。
|
||||
|
||||
- **用法**
|
||||
|
||||
```conf
|
||||
COMMAND_START=["/", ""]
|
||||
```
|
||||
|
||||
### _class-var_ `command_sep` {#Config-command-sep}
|
||||
|
||||
- **类型:** set[str]
|
||||
|
||||
- **说明**
|
||||
|
||||
命令的分隔标记,用于将文本形式的命令切分为元组(实际的命令名)。
|
||||
|
||||
参考[命令响应规则](https://nonebot.dev/docs/advanced/matcher#command)。
|
||||
|
||||
- **用法**
|
||||
|
||||
```conf
|
||||
COMMAND_SEP=["."]
|
||||
```
|
||||
|
||||
### _class-var_ `session_expire_timeout` {#Config-session-expire-timeout}
|
||||
|
||||
- **类型:** timedelta
|
||||
|
||||
- **说明:** 等待用户回复的超时时间。
|
||||
|
||||
- **用法**
|
||||
|
||||
```conf
|
||||
SESSION_EXPIRE_TIMEOUT=[-][DD]D[,][HH:MM:]SS[.ffffff]
|
||||
SESSION_EXPIRE_TIMEOUT=[±]P[DD]DT[HH]H[MM]M[SS]S # ISO 8601
|
||||
```
|
118
website/versioned_docs/version-2.4.0/api/consts.md
Normal file
118
website/versioned_docs/version-2.4.0/api/consts.md
Normal file
@ -0,0 +1,118 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 9
|
||||
description: nonebot.consts 模块
|
||||
---
|
||||
|
||||
# nonebot.consts
|
||||
|
||||
本模块包含了 NoneBot 事件处理过程中使用到的常量。
|
||||
|
||||
## _var_ `RECEIVE_KEY` {#RECEIVE-KEY}
|
||||
|
||||
- **类型:** Literal['\_receive\_{id}']
|
||||
|
||||
- **说明:** `receive` 存储 key
|
||||
|
||||
## _var_ `LAST_RECEIVE_KEY` {#LAST-RECEIVE-KEY}
|
||||
|
||||
- **类型:** Literal['\_last\_receive']
|
||||
|
||||
- **说明:** `last_receive` 存储 key
|
||||
|
||||
## _var_ `ARG_KEY` {#ARG-KEY}
|
||||
|
||||
- **类型:** Literal['{key}']
|
||||
|
||||
- **说明:** `arg` 存储 key
|
||||
|
||||
## _var_ `REJECT_TARGET` {#REJECT-TARGET}
|
||||
|
||||
- **类型:** Literal['\_current\_target']
|
||||
|
||||
- **说明:** 当前 `reject` 目标存储 key
|
||||
|
||||
## _var_ `REJECT_CACHE_TARGET` {#REJECT-CACHE-TARGET}
|
||||
|
||||
- **类型:** Literal['\_next\_target']
|
||||
|
||||
- **说明:** 下一个 `reject` 目标存储 key
|
||||
|
||||
## _var_ `PREFIX_KEY` {#PREFIX-KEY}
|
||||
|
||||
- **类型:** Literal['\_prefix']
|
||||
|
||||
- **说明:** 命令前缀存储 key
|
||||
|
||||
## _var_ `CMD_KEY` {#CMD-KEY}
|
||||
|
||||
- **类型:** Literal['command']
|
||||
|
||||
- **说明:** 命令元组存储 key
|
||||
|
||||
## _var_ `RAW_CMD_KEY` {#RAW-CMD-KEY}
|
||||
|
||||
- **类型:** Literal['raw\_command']
|
||||
|
||||
- **说明:** 命令文本存储 key
|
||||
|
||||
## _var_ `CMD_ARG_KEY` {#CMD-ARG-KEY}
|
||||
|
||||
- **类型:** Literal['command\_arg']
|
||||
|
||||
- **说明:** 命令参数存储 key
|
||||
|
||||
## _var_ `CMD_START_KEY` {#CMD-START-KEY}
|
||||
|
||||
- **类型:** Literal['command\_start']
|
||||
|
||||
- **说明:** 命令开头存储 key
|
||||
|
||||
## _var_ `CMD_WHITESPACE_KEY` {#CMD-WHITESPACE-KEY}
|
||||
|
||||
- **类型:** Literal['command\_whitespace']
|
||||
|
||||
- **说明:** 命令与参数间空白符存储 key
|
||||
|
||||
## _var_ `SHELL_ARGS` {#SHELL-ARGS}
|
||||
|
||||
- **类型:** Literal['\_args']
|
||||
|
||||
- **说明:** shell 命令 parse 后参数字典存储 key
|
||||
|
||||
## _var_ `SHELL_ARGV` {#SHELL-ARGV}
|
||||
|
||||
- **类型:** Literal['\_argv']
|
||||
|
||||
- **说明:** shell 命令原始参数列表存储 key
|
||||
|
||||
## _var_ `REGEX_MATCHED` {#REGEX-MATCHED}
|
||||
|
||||
- **类型:** Literal['\_matched']
|
||||
|
||||
- **说明:** 正则匹配结果存储 key
|
||||
|
||||
## _var_ `STARTSWITH_KEY` {#STARTSWITH-KEY}
|
||||
|
||||
- **类型:** Literal['\_startswith']
|
||||
|
||||
- **说明:** 响应触发前缀 key
|
||||
|
||||
## _var_ `ENDSWITH_KEY` {#ENDSWITH-KEY}
|
||||
|
||||
- **类型:** Literal['\_endswith']
|
||||
|
||||
- **说明:** 响应触发后缀 key
|
||||
|
||||
## _var_ `FULLMATCH_KEY` {#FULLMATCH-KEY}
|
||||
|
||||
- **类型:** Literal['\_fullmatch']
|
||||
|
||||
- **说明:** 响应触发完整消息 key
|
||||
|
||||
## _var_ `KEYWORD_KEY` {#KEYWORD-KEY}
|
||||
|
||||
- **类型:** Literal['\_keyword']
|
||||
|
||||
- **说明:** 响应触发关键字 key
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"position": 13
|
||||
}
|
100
website/versioned_docs/version-2.4.0/api/dependencies/index.md
Normal file
100
website/versioned_docs/version-2.4.0/api/dependencies/index.md
Normal file
@ -0,0 +1,100 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 0
|
||||
description: nonebot.dependencies 模块
|
||||
---
|
||||
|
||||
# nonebot.dependencies
|
||||
|
||||
本模块模块实现了依赖注入的定义与处理。
|
||||
|
||||
## _abstract class_ `Param(*args, validate=False, **kwargs)` {#Param}
|
||||
|
||||
- **说明**
|
||||
|
||||
依赖注入的基本单元 —— 参数。
|
||||
|
||||
继承自 `pydantic.fields.FieldInfo`,用于描述参数信息(不包括参数名)。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*args`
|
||||
|
||||
- `validate` (bool)
|
||||
|
||||
- `**kwargs` (Any)
|
||||
|
||||
## _class_ `Dependent(<auto>)` {#Dependent}
|
||||
|
||||
- **说明:** 依赖注入容器
|
||||
|
||||
- **参数**
|
||||
|
||||
- `call`: 依赖注入的可调用对象,可以是任何 Callable 对象
|
||||
|
||||
- `pre_checkers`: 依赖注入解析前的参数检查
|
||||
|
||||
- `params`: 具名参数列表
|
||||
|
||||
- `parameterless`: 匿名参数列表
|
||||
|
||||
- `allow_types`: 允许的参数类型
|
||||
|
||||
### _staticmethod_ `parse_params(call, allow_types)` {#Dependent-parse-params}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `call` (\_DependentCallable[R])
|
||||
|
||||
- `allow_types` (tuple[type[Param], ...])
|
||||
|
||||
- **返回**
|
||||
|
||||
- tuple[[ModelField](../compat.md#ModelField), ...]
|
||||
|
||||
### _staticmethod_ `parse_parameterless(parameterless, allow_types)` {#Dependent-parse-parameterless}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `parameterless` (tuple[Any, ...])
|
||||
|
||||
- `allow_types` (tuple[type[Param], ...])
|
||||
|
||||
- **返回**
|
||||
|
||||
- tuple[Param, ...]
|
||||
|
||||
### _classmethod_ `parse(*, call, parameterless=None, allow_types)` {#Dependent-parse}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `call` (\_DependentCallable[R])
|
||||
|
||||
- `parameterless` (Iterable[Any] | None)
|
||||
|
||||
- `allow_types` (Iterable[type[Param]])
|
||||
|
||||
- **返回**
|
||||
|
||||
- Dependent[R]
|
||||
|
||||
### _async method_ `check(**params)` {#Dependent-check}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `**params` (Any)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _async method_ `solve(**params)` {#Dependent-solve}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `**params` (Any)
|
||||
|
||||
- **返回**
|
||||
|
||||
- dict[str, Any]
|
@ -0,0 +1,48 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 1
|
||||
description: nonebot.dependencies.utils 模块
|
||||
---
|
||||
|
||||
# nonebot.dependencies.utils
|
||||
|
||||
## _def_ `get_typed_signature(call)` {#get-typed-signature}
|
||||
|
||||
- **说明:** 获取可调用对象签名
|
||||
|
||||
- **参数**
|
||||
|
||||
- `call` ((...) -> Any)
|
||||
|
||||
- **返回**
|
||||
|
||||
- inspect.Signature
|
||||
|
||||
## _def_ `get_typed_annotation(param, globalns)` {#get-typed-annotation}
|
||||
|
||||
- **说明:** 获取参数的类型注解
|
||||
|
||||
- **参数**
|
||||
|
||||
- `param` (inspect.Parameter)
|
||||
|
||||
- `globalns` (dict[str, Any])
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
## _def_ `check_field_type(field, value)` {#check-field-type}
|
||||
|
||||
- **说明:** 检查字段类型是否匹配
|
||||
|
||||
- **参数**
|
||||
|
||||
- `field` ([ModelField](../compat.md#ModelField))
|
||||
|
||||
- `value` (Any)
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"position": 14
|
||||
}
|
206
website/versioned_docs/version-2.4.0/api/drivers/aiohttp.md
Normal file
206
website/versioned_docs/version-2.4.0/api/drivers/aiohttp.md
Normal file
@ -0,0 +1,206 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 2
|
||||
description: nonebot.drivers.aiohttp 模块
|
||||
---
|
||||
|
||||
# nonebot.drivers.aiohttp
|
||||
|
||||
[AIOHTTP](https://aiohttp.readthedocs.io/en/stable/) 驱动适配器。
|
||||
|
||||
```bash
|
||||
nb driver install aiohttp
|
||||
# 或者
|
||||
pip install nonebot2[aiohttp]
|
||||
```
|
||||
|
||||
:::tip 提示
|
||||
本驱动仅支持客户端连接
|
||||
:::
|
||||
|
||||
## _class_ `Session(params=None, headers=None, cookies=None, version=HTTPVersion.H11, timeout=None, proxy=None)` {#Session}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `params` (QueryTypes)
|
||||
|
||||
- `headers` (HeaderTypes)
|
||||
|
||||
- `cookies` (CookieTypes)
|
||||
|
||||
- `version` (str | [HTTPVersion](index.md#HTTPVersion))
|
||||
|
||||
- `timeout` (float | None)
|
||||
|
||||
- `proxy` (str | None)
|
||||
|
||||
### _async method_ `request(setup)` {#Session-request}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([Request](index.md#Request))
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Response](index.md#Response)
|
||||
|
||||
### _async method_ `setup()` {#Session-setup}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _async method_ `close()` {#Session-close}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
## _class_ `Mixin(<auto>)` {#Mixin}
|
||||
|
||||
- **说明:** AIOHTTP Mixin
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _async method_ `request(setup)` {#Mixin-request}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([Request](index.md#Request))
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Response](index.md#Response)
|
||||
|
||||
### _method_ `websocket(setup)` {#Mixin-websocket}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([Request](index.md#Request))
|
||||
|
||||
- **返回**
|
||||
|
||||
- AsyncGenerator[[WebSocket](index.md#WebSocket), None]
|
||||
|
||||
### _method_ `get_session(params=None, headers=None, cookies=None, version=HTTPVersion.H11, timeout=None, proxy=None)` {#Mixin-get-session}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `params` (QueryTypes)
|
||||
|
||||
- `headers` (HeaderTypes)
|
||||
|
||||
- `cookies` (CookieTypes)
|
||||
|
||||
- `version` (str | [HTTPVersion](index.md#HTTPVersion))
|
||||
|
||||
- `timeout` (float | None)
|
||||
|
||||
- `proxy` (str | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- Session
|
||||
|
||||
## _class_ `WebSocket(*, request, session, websocket)` {#WebSocket}
|
||||
|
||||
- **说明:** AIOHTTP Websocket Wrapper
|
||||
|
||||
- **参数**
|
||||
|
||||
- `request` ([Request](index.md#Request))
|
||||
|
||||
- `session` (aiohttp.ClientSession)
|
||||
|
||||
- `websocket` (aiohttp.ClientWebSocketResponse)
|
||||
|
||||
### _async method_ `accept()` {#WebSocket-accept}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _async method_ `close(code=1000, reason="")` {#WebSocket-close}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `code` (int)
|
||||
|
||||
- `reason` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _async method_ `receive()` {#WebSocket-receive}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _async method_ `receive_text()` {#WebSocket-receive-text}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _async method_ `receive_bytes()` {#WebSocket-receive-bytes}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- bytes
|
||||
|
||||
### _async method_ `send_text(data)` {#WebSocket-send-text}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `data` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _async method_ `send_bytes(data)` {#WebSocket-send-bytes}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `data` (bytes)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
## _class_ `Driver(env, config)` {#Driver}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `env` ([Env](../config.md#Env))
|
||||
|
||||
- `config` ([Config](../config.md#Config))
|
244
website/versioned_docs/version-2.4.0/api/drivers/fastapi.md
Normal file
244
website/versioned_docs/version-2.4.0/api/drivers/fastapi.md
Normal file
@ -0,0 +1,244 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 1
|
||||
description: nonebot.drivers.fastapi 模块
|
||||
---
|
||||
|
||||
# nonebot.drivers.fastapi
|
||||
|
||||
[FastAPI](https://fastapi.tiangolo.com/) 驱动适配
|
||||
|
||||
```bash
|
||||
nb driver install fastapi
|
||||
# 或者
|
||||
pip install nonebot2[fastapi]
|
||||
```
|
||||
|
||||
:::tip 提示
|
||||
本驱动仅支持服务端连接
|
||||
:::
|
||||
|
||||
## _class_ `Config(<auto>)` {#Config}
|
||||
|
||||
- **说明:** FastAPI 驱动框架设置,详情参考 FastAPI 文档
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _class-var_ `fastapi_openapi_url` {#Config-fastapi-openapi-url}
|
||||
|
||||
- **类型:** str | None
|
||||
|
||||
- **说明:** `openapi.json` 地址,默认为 `None` 即关闭
|
||||
|
||||
### _class-var_ `fastapi_docs_url` {#Config-fastapi-docs-url}
|
||||
|
||||
- **类型:** str | None
|
||||
|
||||
- **说明:** `swagger` 地址,默认为 `None` 即关闭
|
||||
|
||||
### _class-var_ `fastapi_redoc_url` {#Config-fastapi-redoc-url}
|
||||
|
||||
- **类型:** str | None
|
||||
|
||||
- **说明:** `redoc` 地址,默认为 `None` 即关闭
|
||||
|
||||
### _class-var_ `fastapi_include_adapter_schema` {#Config-fastapi-include-adapter-schema}
|
||||
|
||||
- **类型:** bool
|
||||
|
||||
- **说明:** 是否包含适配器路由的 schema,默认为 `True`
|
||||
|
||||
### _class-var_ `fastapi_reload` {#Config-fastapi-reload}
|
||||
|
||||
- **类型:** bool
|
||||
|
||||
- **说明:** 开启/关闭冷重载
|
||||
|
||||
### _class-var_ `fastapi_reload_dirs` {#Config-fastapi-reload-dirs}
|
||||
|
||||
- **类型:** list[str] | None
|
||||
|
||||
- **说明:** 重载监控文件夹列表,默认为 uvicorn 默认值
|
||||
|
||||
### _class-var_ `fastapi_reload_delay` {#Config-fastapi-reload-delay}
|
||||
|
||||
- **类型:** float
|
||||
|
||||
- **说明:** 重载延迟,默认为 uvicorn 默认值
|
||||
|
||||
### _class-var_ `fastapi_reload_includes` {#Config-fastapi-reload-includes}
|
||||
|
||||
- **类型:** list[str] | None
|
||||
|
||||
- **说明:** 要监听的文件列表,支持 glob pattern,默认为 uvicorn 默认值
|
||||
|
||||
### _class-var_ `fastapi_reload_excludes` {#Config-fastapi-reload-excludes}
|
||||
|
||||
- **类型:** list[str] | None
|
||||
|
||||
- **说明:** 不要监听的文件列表,支持 glob pattern,默认为 uvicorn 默认值
|
||||
|
||||
### _class-var_ `fastapi_extra` {#Config-fastapi-extra}
|
||||
|
||||
- **类型:** dict[str, Any]
|
||||
|
||||
- **说明:** 传递给 `FastAPI` 的其他参数。
|
||||
|
||||
## _class_ `Driver(env, config)` {#Driver}
|
||||
|
||||
- **说明:** FastAPI 驱动框架。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `env` ([Env](../config.md#Env))
|
||||
|
||||
- `config` (NoneBotConfig)
|
||||
|
||||
### _property_ `type` {#Driver-type}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 驱动名称: `fastapi`
|
||||
|
||||
### _property_ `server_app` {#Driver-server-app}
|
||||
|
||||
- **类型:** FastAPI
|
||||
|
||||
- **说明:** `FastAPI APP` 对象
|
||||
|
||||
### _property_ `asgi` {#Driver-asgi}
|
||||
|
||||
- **类型:** FastAPI
|
||||
|
||||
- **说明:** `FastAPI APP` 对象
|
||||
|
||||
### _property_ `logger` {#Driver-logger}
|
||||
|
||||
- **类型:** logging.Logger
|
||||
|
||||
- **说明:** fastapi 使用的 logger
|
||||
|
||||
### _method_ `setup_http_server(setup)` {#Driver-setup-http-server}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([HTTPServerSetup](index.md#HTTPServerSetup))
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _method_ `setup_websocket_server(setup)` {#Driver-setup-websocket-server}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([WebSocketServerSetup](index.md#WebSocketServerSetup))
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _method_ `run(host=None, port=None, *args, app=None, **kwargs)` {#Driver-run}
|
||||
|
||||
- **说明:** 使用 `uvicorn` 启动 FastAPI
|
||||
|
||||
- **参数**
|
||||
|
||||
- `host` (str | None)
|
||||
|
||||
- `port` (int | None)
|
||||
|
||||
- `*args`
|
||||
|
||||
- `app` (str | None)
|
||||
|
||||
- `**kwargs`
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
## _class_ `FastAPIWebSocket(*, request, websocket)` {#FastAPIWebSocket}
|
||||
|
||||
- **说明:** FastAPI WebSocket Wrapper
|
||||
|
||||
- **参数**
|
||||
|
||||
- `request` (BaseRequest)
|
||||
|
||||
- `websocket` ([WebSocket](index.md#WebSocket))
|
||||
|
||||
### _async method_ `accept()` {#FastAPIWebSocket-accept}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _async method_ `close(code=status.WS_1000_NORMAL_CLOSURE, reason="")` {#FastAPIWebSocket-close}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `code` (int)
|
||||
|
||||
- `reason` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _async method_ `receive()` {#FastAPIWebSocket-receive}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str | bytes
|
||||
|
||||
### _async method_ `receive_text()` {#FastAPIWebSocket-receive-text}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _async method_ `receive_bytes()` {#FastAPIWebSocket-receive-bytes}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- bytes
|
||||
|
||||
### _async method_ `send_text(data)` {#FastAPIWebSocket-send-text}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `data` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _async method_ `send_bytes(data)` {#FastAPIWebSocket-send-bytes}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `data` (bytes)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
112
website/versioned_docs/version-2.4.0/api/drivers/httpx.md
Normal file
112
website/versioned_docs/version-2.4.0/api/drivers/httpx.md
Normal file
@ -0,0 +1,112 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 3
|
||||
description: nonebot.drivers.httpx 模块
|
||||
---
|
||||
|
||||
# nonebot.drivers.httpx
|
||||
|
||||
[HTTPX](https://www.python-httpx.org/) 驱动适配
|
||||
|
||||
```bash
|
||||
nb driver install httpx
|
||||
# 或者
|
||||
pip install nonebot2[httpx]
|
||||
```
|
||||
|
||||
:::tip 提示
|
||||
本驱动仅支持客户端 HTTP 连接
|
||||
:::
|
||||
|
||||
## _class_ `Session(params=None, headers=None, cookies=None, version=HTTPVersion.H11, timeout=None, proxy=None)` {#Session}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `params` (QueryTypes)
|
||||
|
||||
- `headers` (HeaderTypes)
|
||||
|
||||
- `cookies` (CookieTypes)
|
||||
|
||||
- `version` (str | [HTTPVersion](index.md#HTTPVersion))
|
||||
|
||||
- `timeout` (float | None)
|
||||
|
||||
- `proxy` (str | None)
|
||||
|
||||
### _async method_ `request(setup)` {#Session-request}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([Request](index.md#Request))
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Response](index.md#Response)
|
||||
|
||||
### _async method_ `setup()` {#Session-setup}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _async method_ `close()` {#Session-close}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
## _class_ `Mixin(<auto>)` {#Mixin}
|
||||
|
||||
- **说明:** HTTPX Mixin
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _async method_ `request(setup)` {#Mixin-request}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([Request](index.md#Request))
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Response](index.md#Response)
|
||||
|
||||
### _method_ `get_session(params=None, headers=None, cookies=None, version=HTTPVersion.H11, timeout=None, proxy=None)` {#Mixin-get-session}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `params` (QueryTypes)
|
||||
|
||||
- `headers` (HeaderTypes)
|
||||
|
||||
- `cookies` (CookieTypes)
|
||||
|
||||
- `version` (str | [HTTPVersion](index.md#HTTPVersion))
|
||||
|
||||
- `timeout` (float | None)
|
||||
|
||||
- `proxy` (str | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- Session
|
||||
|
||||
## _class_ `Driver(env, config)` {#Driver}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `env` ([Env](../config.md#Env))
|
||||
|
||||
- `config` ([Config](../config.md#Config))
|
598
website/versioned_docs/version-2.4.0/api/drivers/index.md
Normal file
598
website/versioned_docs/version-2.4.0/api/drivers/index.md
Normal file
@ -0,0 +1,598 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 0
|
||||
description: nonebot.drivers 模块
|
||||
---
|
||||
|
||||
# nonebot.drivers
|
||||
|
||||
本模块定义了驱动适配器基类。
|
||||
|
||||
各驱动请继承以下基类。
|
||||
|
||||
## _abstract class_ `Mixin(<auto>)` {#Mixin}
|
||||
|
||||
- **说明:** 可与其他驱动器共用的混入基类。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _abstract property_ `type` {#Mixin-type}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 混入驱动类型名称
|
||||
|
||||
## _abstract class_ `Driver(env, config)` {#Driver}
|
||||
|
||||
- **说明**
|
||||
|
||||
驱动器基类。
|
||||
|
||||
驱动器控制框架的启动和停止,适配器的注册,以及机器人生命周期管理。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `env` ([Env](../config.md#Env)): 包含环境信息的 Env 对象
|
||||
|
||||
- `config` ([Config](../config.md#Config)): 包含配置信息的 Config 对象
|
||||
|
||||
### _instance-var_ `env` {#Driver-env}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 环境名称
|
||||
|
||||
### _instance-var_ `config` {#Driver-config}
|
||||
|
||||
- **类型:** [Config](../config.md#Config)
|
||||
|
||||
- **说明:** 全局配置对象
|
||||
|
||||
### _property_ `bots` {#Driver-bots}
|
||||
|
||||
- **类型:** dict[str, [Bot](../adapters/index.md#Bot)]
|
||||
|
||||
- **说明:** 获取当前所有已连接的 Bot
|
||||
|
||||
### _method_ `register_adapter(adapter, **kwargs)` {#Driver-register-adapter}
|
||||
|
||||
- **说明:** 注册一个协议适配器
|
||||
|
||||
- **参数**
|
||||
|
||||
- `adapter` (type[[Adapter](../adapters/index.md#Adapter)]): 适配器类
|
||||
|
||||
- `**kwargs`: 其他传递给适配器的参数
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _abstract property_ `type` {#Driver-type}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 驱动类型名称
|
||||
|
||||
### _abstract property_ `logger` {#Driver-logger}
|
||||
|
||||
- **类型:** untyped
|
||||
|
||||
- **说明:** 驱动专属 logger 日志记录器
|
||||
|
||||
### _abstract method_ `run(*args, **kwargs)` {#Driver-run}
|
||||
|
||||
- **说明:** 启动驱动框架
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*args`
|
||||
|
||||
- `**kwargs`
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _method_ `on_startup(func)` {#Driver-on-startup}
|
||||
|
||||
- **说明:** 注册一个启动时执行的函数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` (LIFESPAN_FUNC)
|
||||
|
||||
- **返回**
|
||||
|
||||
- LIFESPAN_FUNC
|
||||
|
||||
### _method_ `on_shutdown(func)` {#Driver-on-shutdown}
|
||||
|
||||
- **说明:** 注册一个停止时执行的函数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` (LIFESPAN_FUNC)
|
||||
|
||||
- **返回**
|
||||
|
||||
- LIFESPAN_FUNC
|
||||
|
||||
### _classmethod_ `on_bot_connect(func)` {#Driver-on-bot-connect}
|
||||
|
||||
- **说明**
|
||||
|
||||
装饰一个函数使他在 bot 连接成功时执行。
|
||||
|
||||
钩子函数参数:
|
||||
|
||||
- bot: 当前连接上的 Bot 对象
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` ([T_BotConnectionHook](../typing.md#T-BotConnectionHook))
|
||||
|
||||
- **返回**
|
||||
|
||||
- [T_BotConnectionHook](../typing.md#T-BotConnectionHook)
|
||||
|
||||
### _classmethod_ `on_bot_disconnect(func)` {#Driver-on-bot-disconnect}
|
||||
|
||||
- **说明**
|
||||
|
||||
装饰一个函数使他在 bot 连接断开时执行。
|
||||
|
||||
钩子函数参数:
|
||||
|
||||
- bot: 当前连接上的 Bot 对象
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` ([T_BotDisconnectionHook](../typing.md#T-BotDisconnectionHook))
|
||||
|
||||
- **返回**
|
||||
|
||||
- [T_BotDisconnectionHook](../typing.md#T-BotDisconnectionHook)
|
||||
|
||||
## _class_ `Cookies(cookies=None)` {#Cookies}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `cookies` (CookieTypes)
|
||||
|
||||
### _method_ `set(name, value, domain="", path="/")` {#Cookies-set}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `name` (str)
|
||||
|
||||
- `value` (str)
|
||||
|
||||
- `domain` (str)
|
||||
|
||||
- `path` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _method_ `get(name, default=None, domain=None, path=None)` {#Cookies-get}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `name` (str)
|
||||
|
||||
- `default` (str | None)
|
||||
|
||||
- `domain` (str | None)
|
||||
|
||||
- `path` (str | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- str | None
|
||||
|
||||
### _method_ `delete(name, domain=None, path=None)` {#Cookies-delete}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `name` (str)
|
||||
|
||||
- `domain` (str | None)
|
||||
|
||||
- `path` (str | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _method_ `clear(domain=None, path=None)` {#Cookies-clear}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `domain` (str | None)
|
||||
|
||||
- `path` (str | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _method_ `update(cookies=None)` {#Cookies-update}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `cookies` (CookieTypes)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _method_ `as_header(request)` {#Cookies-as-header}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `request` (Request)
|
||||
|
||||
- **返回**
|
||||
|
||||
- dict[str, str]
|
||||
|
||||
## _class_ `Request(method, url, *, params=None, headers=None, cookies=None, content=None, data=None, json=None, files=None, version=HTTPVersion.H11, timeout=None, proxy=None)` {#Request}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `method` (str | bytes)
|
||||
|
||||
- `url` (URL | str | RawURL)
|
||||
|
||||
- `params` (QueryTypes)
|
||||
|
||||
- `headers` (HeaderTypes)
|
||||
|
||||
- `cookies` (CookieTypes)
|
||||
|
||||
- `content` (ContentTypes)
|
||||
|
||||
- `data` (DataTypes)
|
||||
|
||||
- `json` (Any)
|
||||
|
||||
- `files` (FilesTypes)
|
||||
|
||||
- `version` (str | HTTPVersion)
|
||||
|
||||
- `timeout` (float | None)
|
||||
|
||||
- `proxy` (str | None)
|
||||
|
||||
## _class_ `Response(status_code, *, headers=None, content=None, request=None)` {#Response}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `status_code` (int)
|
||||
|
||||
- `headers` (HeaderTypes)
|
||||
|
||||
- `content` (ContentTypes)
|
||||
|
||||
- `request` (Request | None)
|
||||
|
||||
## _abstract class_ `ASGIMixin(<auto>)` {#ASGIMixin}
|
||||
|
||||
- **说明**
|
||||
|
||||
ASGI 服务端基类。
|
||||
|
||||
将后端框架封装,以满足适配器使用。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _abstract property_ `server_app` {#ASGIMixin-server-app}
|
||||
|
||||
- **类型:** Any
|
||||
|
||||
- **说明:** 驱动 APP 对象
|
||||
|
||||
### _abstract property_ `asgi` {#ASGIMixin-asgi}
|
||||
|
||||
- **类型:** Any
|
||||
|
||||
- **说明:** 驱动 ASGI 对象
|
||||
|
||||
### _abstract method_ `setup_http_server(setup)` {#ASGIMixin-setup-http-server}
|
||||
|
||||
- **说明:** 设置一个 HTTP 服务器路由配置
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([HTTPServerSetup](#HTTPServerSetup))
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _abstract method_ `setup_websocket_server(setup)` {#ASGIMixin-setup-websocket-server}
|
||||
|
||||
- **说明:** 设置一个 WebSocket 服务器路由配置
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([WebSocketServerSetup](#WebSocketServerSetup))
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
## _abstract class_ `WebSocket(*, request)` {#WebSocket}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `request` (Request)
|
||||
|
||||
### _abstract property_ `closed` {#WebSocket-closed}
|
||||
|
||||
- **类型:** bool
|
||||
|
||||
- **说明:** 连接是否已经关闭
|
||||
|
||||
### _abstract async method_ `accept()` {#WebSocket-accept}
|
||||
|
||||
- **说明:** 接受 WebSocket 连接请求
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _abstract async method_ `close(code=1000, reason="")` {#WebSocket-close}
|
||||
|
||||
- **说明:** 关闭 WebSocket 连接请求
|
||||
|
||||
- **参数**
|
||||
|
||||
- `code` (int)
|
||||
|
||||
- `reason` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _abstract async method_ `receive()` {#WebSocket-receive}
|
||||
|
||||
- **说明:** 接收一条 WebSocket text/bytes 信息
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str | bytes
|
||||
|
||||
### _abstract async method_ `receive_text()` {#WebSocket-receive-text}
|
||||
|
||||
- **说明:** 接收一条 WebSocket text 信息
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _abstract async method_ `receive_bytes()` {#WebSocket-receive-bytes}
|
||||
|
||||
- **说明:** 接收一条 WebSocket binary 信息
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- bytes
|
||||
|
||||
### _async method_ `send(data)` {#WebSocket-send}
|
||||
|
||||
- **说明:** 发送一条 WebSocket text/bytes 信息
|
||||
|
||||
- **参数**
|
||||
|
||||
- `data` (str | bytes)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _abstract async method_ `send_text(data)` {#WebSocket-send-text}
|
||||
|
||||
- **说明:** 发送一条 WebSocket text 信息
|
||||
|
||||
- **参数**
|
||||
|
||||
- `data` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _abstract async method_ `send_bytes(data)` {#WebSocket-send-bytes}
|
||||
|
||||
- **说明:** 发送一条 WebSocket binary 信息
|
||||
|
||||
- **参数**
|
||||
|
||||
- `data` (bytes)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
## _enum_ `HTTPVersion` {#HTTPVersion}
|
||||
|
||||
- **说明:** An enumeration.
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
- `H10: '1.0'`
|
||||
|
||||
- `H11: '1.1'`
|
||||
|
||||
- `H2: '2'`
|
||||
|
||||
## _abstract class_ `ForwardMixin(<auto>)` {#ForwardMixin}
|
||||
|
||||
- **说明:** 客户端混入基类。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _abstract class_ `ReverseMixin(<auto>)` {#ReverseMixin}
|
||||
|
||||
- **说明:** 服务端混入基类。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _var_ `ForwardDriver` {#ForwardDriver}
|
||||
|
||||
- **类型:** ForwardMixin
|
||||
|
||||
- **说明**
|
||||
|
||||
支持客户端请求的驱动器。
|
||||
|
||||
**Deprecated**,请使用 [ForwardMixin](#ForwardMixin) 或其子类代替。
|
||||
|
||||
## _var_ `ReverseDriver` {#ReverseDriver}
|
||||
|
||||
- **类型:** ReverseMixin
|
||||
|
||||
- **说明**
|
||||
|
||||
支持服务端请求的驱动器。
|
||||
|
||||
**Deprecated**,请使用 [ReverseMixin](#ReverseMixin) 或其子类代替。
|
||||
|
||||
## _def_ `combine_driver(driver, *mixins)` {#combine-driver}
|
||||
|
||||
- **说明:** 将一个驱动器和多个混入类合并。
|
||||
|
||||
- **重载**
|
||||
|
||||
**1.** `(driver) -> type[D]`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `driver` (type[D])
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[D]
|
||||
|
||||
**2.** `(driver, __m, /, *mixins) -> type[CombinedDriver]`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `driver` (type[D])
|
||||
|
||||
- `__m` (type[[Mixin](#Mixin)])
|
||||
|
||||
- `*mixins` (type[[Mixin](#Mixin)])
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[CombinedDriver]
|
||||
|
||||
## _abstract class_ `HTTPClientMixin(<auto>)` {#HTTPClientMixin}
|
||||
|
||||
- **说明:** HTTP 客户端混入基类。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _abstract async method_ `request(setup)` {#HTTPClientMixin-request}
|
||||
|
||||
- **说明:** 发送一个 HTTP 请求
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([Request](#Request))
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Response](#Response)
|
||||
|
||||
### _abstract method_ `get_session(params=None, headers=None, cookies=None, version=HTTPVersion.H11, timeout=None, proxy=None)` {#HTTPClientMixin-get-session}
|
||||
|
||||
- **说明:** 获取一个 HTTP 会话
|
||||
|
||||
- **参数**
|
||||
|
||||
- `params` (QueryTypes)
|
||||
|
||||
- `headers` (HeaderTypes)
|
||||
|
||||
- `cookies` (CookieTypes)
|
||||
|
||||
- `version` (str | [HTTPVersion](#HTTPVersion))
|
||||
|
||||
- `timeout` (float | None)
|
||||
|
||||
- `proxy` (str | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- HTTPClientSession
|
||||
|
||||
## _class_ `HTTPServerSetup(<auto>)` {#HTTPServerSetup}
|
||||
|
||||
- **说明:** HTTP 服务器路由配置。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _abstract class_ `WebSocketClientMixin(<auto>)` {#WebSocketClientMixin}
|
||||
|
||||
- **说明:** WebSocket 客户端混入基类。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _abstract method_ `websocket(setup)` {#WebSocketClientMixin-websocket}
|
||||
|
||||
- **说明:** 发起一个 WebSocket 连接
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([Request](#Request))
|
||||
|
||||
- **返回**
|
||||
|
||||
- AsyncGenerator[[WebSocket](#WebSocket), None]
|
||||
|
||||
## _class_ `WebSocketServerSetup(<auto>)` {#WebSocketServerSetup}
|
||||
|
||||
- **说明:** WebSocket 服务器路由配置。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
62
website/versioned_docs/version-2.4.0/api/drivers/none.md
Normal file
62
website/versioned_docs/version-2.4.0/api/drivers/none.md
Normal file
@ -0,0 +1,62 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 6
|
||||
description: nonebot.drivers.none 模块
|
||||
---
|
||||
|
||||
# nonebot.drivers.none
|
||||
|
||||
None 驱动适配
|
||||
|
||||
:::tip 提示
|
||||
本驱动不支持任何服务器或客户端连接
|
||||
:::
|
||||
|
||||
## _class_ `Driver(env, config)` {#Driver}
|
||||
|
||||
- **说明:** None 驱动框架
|
||||
|
||||
- **参数**
|
||||
|
||||
- `env` ([Env](../config.md#Env))
|
||||
|
||||
- `config` ([Config](../config.md#Config))
|
||||
|
||||
### _property_ `type` {#Driver-type}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 驱动名称: `none`
|
||||
|
||||
### _property_ `logger` {#Driver-logger}
|
||||
|
||||
- **类型:** untyped
|
||||
|
||||
- **说明:** none driver 使用的 logger
|
||||
|
||||
### _method_ `run(*args, **kwargs)` {#Driver-run}
|
||||
|
||||
- **说明:** 启动 none driver
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*args`
|
||||
|
||||
- `**kwargs`
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _method_ `exit(force=False)` {#Driver-exit}
|
||||
|
||||
- **说明:** 退出 none driver
|
||||
|
||||
- **参数**
|
||||
|
||||
- `force` (bool): 强制退出
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
220
website/versioned_docs/version-2.4.0/api/drivers/quart.md
Normal file
220
website/versioned_docs/version-2.4.0/api/drivers/quart.md
Normal file
@ -0,0 +1,220 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 5
|
||||
description: nonebot.drivers.quart 模块
|
||||
---
|
||||
|
||||
# nonebot.drivers.quart
|
||||
|
||||
[Quart](https://pgjones.gitlab.io/quart/index.html) 驱动适配
|
||||
|
||||
```bash
|
||||
nb driver install quart
|
||||
# 或者
|
||||
pip install nonebot2[quart]
|
||||
```
|
||||
|
||||
:::tip 提示
|
||||
本驱动仅支持服务端连接
|
||||
:::
|
||||
|
||||
## _class_ `Config(<auto>)` {#Config}
|
||||
|
||||
- **说明:** Quart 驱动框架设置
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _class-var_ `quart_reload` {#Config-quart-reload}
|
||||
|
||||
- **类型:** bool
|
||||
|
||||
- **说明:** 开启/关闭冷重载
|
||||
|
||||
### _class-var_ `quart_reload_dirs` {#Config-quart-reload-dirs}
|
||||
|
||||
- **类型:** list[str] | None
|
||||
|
||||
- **说明:** 重载监控文件夹列表,默认为 uvicorn 默认值
|
||||
|
||||
### _class-var_ `quart_reload_delay` {#Config-quart-reload-delay}
|
||||
|
||||
- **类型:** float
|
||||
|
||||
- **说明:** 重载延迟,默认为 uvicorn 默认值
|
||||
|
||||
### _class-var_ `quart_reload_includes` {#Config-quart-reload-includes}
|
||||
|
||||
- **类型:** list[str] | None
|
||||
|
||||
- **说明:** 要监听的文件列表,支持 glob pattern,默认为 uvicorn 默认值
|
||||
|
||||
### _class-var_ `quart_reload_excludes` {#Config-quart-reload-excludes}
|
||||
|
||||
- **类型:** list[str] | None
|
||||
|
||||
- **说明:** 不要监听的文件列表,支持 glob pattern,默认为 uvicorn 默认值
|
||||
|
||||
### _class-var_ `quart_extra` {#Config-quart-extra}
|
||||
|
||||
- **类型:** dict[str, Any]
|
||||
|
||||
- **说明:** 传递给 `Quart` 的其他参数。
|
||||
|
||||
## _class_ `Driver(env, config)` {#Driver}
|
||||
|
||||
- **说明:** Quart 驱动框架
|
||||
|
||||
- **参数**
|
||||
|
||||
- `env` ([Env](../config.md#Env))
|
||||
|
||||
- `config` (NoneBotConfig)
|
||||
|
||||
### _property_ `type` {#Driver-type}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 驱动名称: `quart`
|
||||
|
||||
### _property_ `server_app` {#Driver-server-app}
|
||||
|
||||
- **类型:** Quart
|
||||
|
||||
- **说明:** `Quart` 对象
|
||||
|
||||
### _property_ `asgi` {#Driver-asgi}
|
||||
|
||||
- **类型:** untyped
|
||||
|
||||
- **说明:** `Quart` 对象
|
||||
|
||||
### _property_ `logger` {#Driver-logger}
|
||||
|
||||
- **类型:** untyped
|
||||
|
||||
- **说明:** Quart 使用的 logger
|
||||
|
||||
### _method_ `setup_http_server(setup)` {#Driver-setup-http-server}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([HTTPServerSetup](index.md#HTTPServerSetup))
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _method_ `setup_websocket_server(setup)` {#Driver-setup-websocket-server}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([WebSocketServerSetup](index.md#WebSocketServerSetup))
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _method_ `run(host=None, port=None, *args, app=None, **kwargs)` {#Driver-run}
|
||||
|
||||
- **说明:** 使用 `uvicorn` 启动 Quart
|
||||
|
||||
- **参数**
|
||||
|
||||
- `host` (str | None)
|
||||
|
||||
- `port` (int | None)
|
||||
|
||||
- `*args`
|
||||
|
||||
- `app` (str | None)
|
||||
|
||||
- `**kwargs`
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
## _class_ `WebSocket(*, request, websocket_ctx)` {#WebSocket}
|
||||
|
||||
- **说明:** Quart WebSocket Wrapper
|
||||
|
||||
- **参数**
|
||||
|
||||
- `request` (BaseRequest)
|
||||
|
||||
- `websocket_ctx` (WebsocketContext)
|
||||
|
||||
### _async method_ `accept()` {#WebSocket-accept}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _async method_ `close(code=1000, reason="")` {#WebSocket-close}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `code` (int)
|
||||
|
||||
- `reason` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _async method_ `receive()` {#WebSocket-receive}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str | bytes
|
||||
|
||||
### _async method_ `receive_text()` {#WebSocket-receive-text}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _async method_ `receive_bytes()` {#WebSocket-receive-bytes}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- bytes
|
||||
|
||||
### _async method_ `send_text(data)` {#WebSocket-send-text}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `data` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _async method_ `send_bytes(data)` {#WebSocket-send-bytes}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `data` (bytes)
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
138
website/versioned_docs/version-2.4.0/api/drivers/websockets.md
Normal file
138
website/versioned_docs/version-2.4.0/api/drivers/websockets.md
Normal file
@ -0,0 +1,138 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 4
|
||||
description: nonebot.drivers.websockets 模块
|
||||
---
|
||||
|
||||
# nonebot.drivers.websockets
|
||||
|
||||
[websockets](https://websockets.readthedocs.io/) 驱动适配
|
||||
|
||||
```bash
|
||||
nb driver install websockets
|
||||
# 或者
|
||||
pip install nonebot2[websockets]
|
||||
```
|
||||
|
||||
:::tip 提示
|
||||
本驱动仅支持客户端 WebSocket 连接
|
||||
:::
|
||||
|
||||
## _def_ `catch_closed(func)` {#catch-closed}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` ((P) -> Coroutine[Any, Any, T])
|
||||
|
||||
- **返回**
|
||||
|
||||
- (P) -> Coroutine[Any, Any, T]
|
||||
|
||||
## _class_ `Mixin(<auto>)` {#Mixin}
|
||||
|
||||
- **说明:** Websockets Mixin
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _method_ `websocket(setup)` {#Mixin-websocket}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `setup` ([Request](index.md#Request))
|
||||
|
||||
- **返回**
|
||||
|
||||
- AsyncGenerator[[WebSocket](index.md#WebSocket), None]
|
||||
|
||||
## _class_ `WebSocket(*, request, websocket)` {#WebSocket}
|
||||
|
||||
- **说明:** Websockets WebSocket Wrapper
|
||||
|
||||
- **参数**
|
||||
|
||||
- `request` ([Request](index.md#Request))
|
||||
|
||||
- `websocket` (WebSocketClientProtocol)
|
||||
|
||||
### _async method_ `accept()` {#WebSocket-accept}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _async method_ `close(code=1000, reason="")` {#WebSocket-close}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `code` (int)
|
||||
|
||||
- `reason` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _async method_ `receive()` {#WebSocket-receive}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str | bytes
|
||||
|
||||
### _async method_ `receive_text()` {#WebSocket-receive-text}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _async method_ `receive_bytes()` {#WebSocket-receive-bytes}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- bytes
|
||||
|
||||
### _async method_ `send_text(data)` {#WebSocket-send-text}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `data` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _async method_ `send_bytes(data)` {#WebSocket-send-bytes}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `data` (bytes)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
## _class_ `Driver(env, config)` {#Driver}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `env` ([Env](../config.md#Env))
|
||||
|
||||
- `config` ([Config](../config.md#Config))
|
256
website/versioned_docs/version-2.4.0/api/exception.md
Normal file
256
website/versioned_docs/version-2.4.0/api/exception.md
Normal file
@ -0,0 +1,256 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 10
|
||||
description: nonebot.exception 模块
|
||||
---
|
||||
|
||||
# nonebot.exception
|
||||
|
||||
本模块包含了所有 NoneBot 运行时可能会抛出的异常。
|
||||
|
||||
这些异常并非所有需要用户处理,在 NoneBot 内部运行时被捕获,并进行对应操作。
|
||||
|
||||
```bash
|
||||
NoneBotException
|
||||
├── ParserExit
|
||||
├── ProcessException
|
||||
| ├── IgnoredException
|
||||
| ├── SkippedException
|
||||
| | └── TypeMisMatch
|
||||
| ├── MockApiException
|
||||
| └── StopPropagation
|
||||
├── MatcherException
|
||||
| ├── PausedException
|
||||
| ├── RejectedException
|
||||
| └── FinishedException
|
||||
├── AdapterException
|
||||
| ├── NoLogException
|
||||
| ├── ApiNotAvailable
|
||||
| ├── NetworkError
|
||||
| └── ActionFailed
|
||||
└── DriverException
|
||||
└── WebSocketClosed
|
||||
```
|
||||
|
||||
## _class_ `NoneBotException(<auto>)` {#NoneBotException}
|
||||
|
||||
- **说明:** 所有 NoneBot 发生的异常基类。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `ParserExit(<auto>)` {#ParserExit}
|
||||
|
||||
- **说明:** 处理消息失败时返回的异常。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `ProcessException(<auto>)` {#ProcessException}
|
||||
|
||||
- **说明:** 事件处理过程中发生的异常基类。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `IgnoredException(<auto>)` {#IgnoredException}
|
||||
|
||||
- **说明:** 指示 NoneBot 应该忽略该事件。可由 PreProcessor 抛出。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `reason`: 忽略事件的原因
|
||||
|
||||
## _class_ `SkippedException(<auto>)` {#SkippedException}
|
||||
|
||||
- **说明**
|
||||
|
||||
指示 NoneBot 立即结束当前 `Dependent` 的运行。
|
||||
|
||||
例如,可以在 `Handler` 中通过 [Matcher.skip](matcher.md#Matcher-skip) 抛出。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
def always_skip():
|
||||
Matcher.skip()
|
||||
|
||||
@matcher.handle()
|
||||
async def handler(dependency = Depends(always_skip)):
|
||||
# never run
|
||||
```
|
||||
|
||||
## _class_ `TypeMisMatch(<auto>)` {#TypeMisMatch}
|
||||
|
||||
- **说明:** 当前 `Handler` 的参数类型不匹配。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `MockApiException(<auto>)` {#MockApiException}
|
||||
|
||||
- **说明:** 指示 NoneBot 阻止本次 API 调用或修改本次调用返回值,并返回自定义内容。 可由 api hook 抛出。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `result`: 返回的内容
|
||||
|
||||
## _class_ `StopPropagation(<auto>)` {#StopPropagation}
|
||||
|
||||
- **说明**
|
||||
|
||||
指示 NoneBot 终止事件向下层传播。
|
||||
|
||||
在 [Matcher.block](matcher.md#Matcher-block) 为 `True`
|
||||
或使用 [Matcher.stop_propagation](matcher.md#Matcher-stop-propagation) 方法时抛出。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
matcher = on_notice(block=True)
|
||||
# 或者
|
||||
@matcher.handle()
|
||||
async def handler(matcher: Matcher):
|
||||
matcher.stop_propagation()
|
||||
```
|
||||
|
||||
## _class_ `MatcherException(<auto>)` {#MatcherException}
|
||||
|
||||
- **说明:** 所有 Matcher 发生的异常基类。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `PausedException(<auto>)` {#PausedException}
|
||||
|
||||
- **说明**
|
||||
|
||||
指示 NoneBot 结束当前 `Handler` 并等待下一条消息后继续下一个 `Handler`。 可用于用户输入新信息。
|
||||
|
||||
可以在 `Handler` 中通过 [Matcher.pause](matcher.md#Matcher-pause) 抛出。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
@matcher.handle()
|
||||
async def handler():
|
||||
await matcher.pause("some message")
|
||||
```
|
||||
|
||||
## _class_ `RejectedException(<auto>)` {#RejectedException}
|
||||
|
||||
- **说明**
|
||||
|
||||
指示 NoneBot 结束当前 `Handler` 并等待下一条消息后重新运行当前 `Handler`。 可用于用户重新输入。
|
||||
|
||||
可以在 `Handler` 中通过 [Matcher.reject](matcher.md#Matcher-reject) 抛出。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
@matcher.handle()
|
||||
async def handler():
|
||||
await matcher.reject("some message")
|
||||
```
|
||||
|
||||
## _class_ `FinishedException(<auto>)` {#FinishedException}
|
||||
|
||||
- **说明**
|
||||
|
||||
指示 NoneBot 结束当前 `Handler` 且后续 `Handler` 不再被运行。可用于结束用户会话。
|
||||
|
||||
可以在 `Handler` 中通过 [Matcher.finish](matcher.md#Matcher-finish) 抛出。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
@matcher.handle()
|
||||
async def handler():
|
||||
await matcher.finish("some message")
|
||||
```
|
||||
|
||||
## _class_ `AdapterException(<auto>)` {#AdapterException}
|
||||
|
||||
- **说明:** 代表 `Adapter` 抛出的异常,所有的 `Adapter` 都要在内部继承自这个 `Exception`。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `adapter_name`: 标识 adapter
|
||||
|
||||
## _class_ `NoLogException(<auto>)` {#NoLogException}
|
||||
|
||||
- **说明**
|
||||
|
||||
指示 NoneBot 对当前 `Event` 进行处理但不显示 Log 信息。
|
||||
|
||||
可在 [Event.get_log_string](adapters/index.md#Event-get-log-string) 时抛出
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `ApiNotAvailable(<auto>)` {#ApiNotAvailable}
|
||||
|
||||
- **说明:** 在 API 连接不可用时抛出。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `NetworkError(<auto>)` {#NetworkError}
|
||||
|
||||
- **说明:** 在网络出现问题时抛出, 如: API 请求地址不正确, API 请求无返回或返回状态非正常等。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `ActionFailed(<auto>)` {#ActionFailed}
|
||||
|
||||
- **说明:** API 请求成功返回数据,但 API 操作失败。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `DriverException(<auto>)` {#DriverException}
|
||||
|
||||
- **说明:** `Driver` 抛出的异常基类。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `WebSocketClosed(<auto>)` {#WebSocketClosed}
|
||||
|
||||
- **说明:** WebSocket 连接已关闭。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
286
website/versioned_docs/version-2.4.0/api/index.md
Normal file
286
website/versioned_docs/version-2.4.0/api/index.md
Normal file
@ -0,0 +1,286 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 0
|
||||
description: nonebot 模块
|
||||
---
|
||||
|
||||
# nonebot
|
||||
|
||||
本模块主要定义了 NoneBot 启动所需函数,供 bot 入口文件调用。
|
||||
|
||||
## 快捷导入
|
||||
|
||||
为方便使用,本模块从子模块导入了部分内容,以下内容可以直接通过本模块导入:
|
||||
|
||||
- `on` => [`on`](plugin/on.md#on)
|
||||
- `on_metaevent` => [`on_metaevent`](plugin/on.md#on-metaevent)
|
||||
- `on_message` => [`on_message`](plugin/on.md#on-message)
|
||||
- `on_notice` => [`on_notice`](plugin/on.md#on-notice)
|
||||
- `on_request` => [`on_request`](plugin/on.md#on-request)
|
||||
- `on_startswith` => [`on_startswith`](plugin/on.md#on-startswith)
|
||||
- `on_endswith` => [`on_endswith`](plugin/on.md#on-endswith)
|
||||
- `on_fullmatch` => [`on_fullmatch`](plugin/on.md#on-fullmatch)
|
||||
- `on_keyword` => [`on_keyword`](plugin/on.md#on-keyword)
|
||||
- `on_command` => [`on_command`](plugin/on.md#on-command)
|
||||
- `on_shell_command` => [`on_shell_command`](plugin/on.md#on-shell-command)
|
||||
- `on_regex` => [`on_regex`](plugin/on.md#on-regex)
|
||||
- `on_type` => [`on_type`](plugin/on.md#on-type)
|
||||
- `CommandGroup` => [`CommandGroup`](plugin/on.md#CommandGroup)
|
||||
- `Matchergroup` => [`MatcherGroup`](plugin/on.md#MatcherGroup)
|
||||
- `load_plugin` => [`load_plugin`](plugin/load.md#load-plugin)
|
||||
- `load_plugins` => [`load_plugins`](plugin/load.md#load-plugins)
|
||||
- `load_all_plugins` => [`load_all_plugins`](plugin/load.md#load-all-plugins)
|
||||
- `load_from_json` => [`load_from_json`](plugin/load.md#load-from-json)
|
||||
- `load_from_toml` => [`load_from_toml`](plugin/load.md#load-from-toml)
|
||||
- `load_builtin_plugin` =>
|
||||
[`load_builtin_plugin`](plugin/load.md#load-builtin-plugin)
|
||||
- `load_builtin_plugins` =>
|
||||
[`load_builtin_plugins`](plugin/load.md#load-builtin-plugins)
|
||||
- `get_plugin` => [`get_plugin`](plugin/index.md#get-plugin)
|
||||
- `get_plugin_by_module_name` =>
|
||||
[`get_plugin_by_module_name`](plugin/index.md#get-plugin-by-module-name)
|
||||
- `get_loaded_plugins` =>
|
||||
[`get_loaded_plugins`](plugin/index.md#get-loaded-plugins)
|
||||
- `get_available_plugin_names` =>
|
||||
[`get_available_plugin_names`](plugin/index.md#get-available-plugin-names)
|
||||
- `get_plugin_config` => [`get_plugin_config`](plugin/index.md#get-plugin-config)
|
||||
- `require` => [`require`](plugin/load.md#require)
|
||||
|
||||
## _def_ `get_driver()` {#get-driver}
|
||||
|
||||
- **说明**
|
||||
|
||||
获取全局 [Driver](drivers/index.md#Driver) 实例。
|
||||
|
||||
可用于在计划任务的回调等情形中获取当前 [Driver](drivers/index.md#Driver) 实例。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Driver](drivers/index.md#Driver): 全局 [Driver](drivers/index.md#Driver) 对象
|
||||
|
||||
- **异常**
|
||||
|
||||
- ValueError: 全局 [Driver](drivers/index.md#Driver) 对象尚未初始化 ([nonebot.init](#init) 尚未调用)
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
driver = nonebot.get_driver()
|
||||
```
|
||||
|
||||
## _def_ `get_adapter(name)` {#get-adapter}
|
||||
|
||||
- **说明:** 获取已注册的 [Adapter](adapters/index.md#Adapter) 实例。
|
||||
|
||||
- **重载**
|
||||
|
||||
**1.** `(name) -> Adapter`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `name` (str): 适配器名称
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Adapter](adapters/index.md#Adapter): 指定名称的 [Adapter](adapters/index.md#Adapter) 对象
|
||||
|
||||
**2.** `(name) -> A`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `name` (type[A]): 适配器类型
|
||||
|
||||
- **返回**
|
||||
|
||||
- A: 指定类型的 [Adapter](adapters/index.md#Adapter) 对象
|
||||
|
||||
- **异常**
|
||||
|
||||
- ValueError: 指定的 [Adapter](adapters/index.md#Adapter) 未注册
|
||||
|
||||
- ValueError: 全局 [Driver](drivers/index.md#Driver) 对象尚未初始化 ([nonebot.init](#init) 尚未调用)
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
from nonebot.adapters.console import Adapter
|
||||
adapter = nonebot.get_adapter(Adapter)
|
||||
```
|
||||
|
||||
## _def_ `get_adapters()` {#get-adapters}
|
||||
|
||||
- **说明:** 获取所有已注册的 [Adapter](adapters/index.md#Adapter) 实例。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- dict[str, [Adapter](adapters/index.md#Adapter)]: 所有 [Adapter](adapters/index.md#Adapter) 实例字典
|
||||
|
||||
- **异常**
|
||||
|
||||
- ValueError: 全局 [Driver](drivers/index.md#Driver) 对象尚未初始化 ([nonebot.init](#init) 尚未调用)
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
adapters = nonebot.get_adapters()
|
||||
```
|
||||
|
||||
## _def_ `get_app()` {#get-app}
|
||||
|
||||
- **说明:** 获取全局 [ASGIMixin](drivers/index.md#ASGIMixin) 对应的 Server App 对象。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any: Server App 对象
|
||||
|
||||
- **异常**
|
||||
|
||||
- AssertionError: 全局 Driver 对象不是 [ASGIMixin](drivers/index.md#ASGIMixin) 类型
|
||||
|
||||
- ValueError: 全局 [Driver](drivers/index.md#Driver) 对象尚未初始化 ([nonebot.init](#init) 尚未调用)
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
app = nonebot.get_app()
|
||||
```
|
||||
|
||||
## _def_ `get_asgi()` {#get-asgi}
|
||||
|
||||
- **说明:** 获取全局 [ASGIMixin](drivers/index.md#ASGIMixin) 对应的 [ASGI](https://asgi.readthedocs.io/) 对象。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any: ASGI 对象
|
||||
|
||||
- **异常**
|
||||
|
||||
- AssertionError: 全局 Driver 对象不是 [ASGIMixin](drivers/index.md#ASGIMixin) 类型
|
||||
|
||||
- ValueError: 全局 [Driver](drivers/index.md#Driver) 对象尚未初始化 ([nonebot.init](#init) 尚未调用)
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
asgi = nonebot.get_asgi()
|
||||
```
|
||||
|
||||
## _def_ `get_bot(self_id=None)` {#get-bot}
|
||||
|
||||
- **说明**
|
||||
|
||||
获取一个连接到 NoneBot 的 [Bot](adapters/index.md#Bot) 对象。
|
||||
|
||||
当提供 `self_id` 时,此函数是 `get_bots()[self_id]` 的简写;
|
||||
当不提供时,返回一个 [Bot](adapters/index.md#Bot)。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `self_id` (str | None): 用来识别 [Bot](adapters/index.md#Bot) 的 [Bot.self_id](adapters/index.md#Bot-self-id) 属性
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Bot](adapters/index.md#Bot): [Bot](adapters/index.md#Bot) 对象
|
||||
|
||||
- **异常**
|
||||
|
||||
- KeyError: 对应 self_id 的 Bot 不存在
|
||||
|
||||
- ValueError: 没有传入 self_id 且没有 Bot 可用
|
||||
|
||||
- ValueError: 全局 [Driver](drivers/index.md#Driver) 对象尚未初始化 ([nonebot.init](#init) 尚未调用)
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
assert nonebot.get_bot("12345") == nonebot.get_bots()["12345"]
|
||||
|
||||
another_unspecified_bot = nonebot.get_bot()
|
||||
```
|
||||
|
||||
## _def_ `get_bots()` {#get-bots}
|
||||
|
||||
- **说明:** 获取所有连接到 NoneBot 的 [Bot](adapters/index.md#Bot) 对象。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- dict[str, [Bot](adapters/index.md#Bot)]: 一个以 [Bot.self_id](adapters/index.md#Bot-self-id) 为键
|
||||
|
||||
[Bot](adapters/index.md#Bot) 对象为值的字典
|
||||
|
||||
- **异常**
|
||||
|
||||
- ValueError: 全局 [Driver](drivers/index.md#Driver) 对象尚未初始化 ([nonebot.init](#init) 尚未调用)
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
bots = nonebot.get_bots()
|
||||
```
|
||||
|
||||
## _def_ `init(*, _env_file=None, **kwargs)` {#init}
|
||||
|
||||
- **说明**
|
||||
|
||||
初始化 NoneBot 以及 全局 [Driver](drivers/index.md#Driver) 对象。
|
||||
|
||||
NoneBot 将会从 .env 文件中读取环境信息,并使用相应的 env 文件配置。
|
||||
|
||||
也可以传入自定义的 `_env_file` 来指定 NoneBot 从该文件读取配置。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `_env_file` (DOTENV_TYPE | None): 配置文件名,默认从 `.env.{env_name}` 中读取配置
|
||||
|
||||
- `**kwargs` (Any): 任意变量,将会存储到 [Driver.config](drivers/index.md#Driver-config) 对象里
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
nonebot.init(database=Database(...))
|
||||
```
|
||||
|
||||
## _def_ `run(*args, **kwargs)` {#run}
|
||||
|
||||
- **说明:** 启动 NoneBot,即运行全局 [Driver](drivers/index.md#Driver) 对象。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*args` (Any): 传入 [Driver.run](drivers/index.md#Driver-run) 的位置参数
|
||||
|
||||
- `**kwargs` (Any): 传入 [Driver.run](drivers/index.md#Driver-run) 的命名参数
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
nonebot.run(host="127.0.0.1", port=8080)
|
||||
```
|
73
website/versioned_docs/version-2.4.0/api/log.md
Normal file
73
website/versioned_docs/version-2.4.0/api/log.md
Normal file
@ -0,0 +1,73 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 7
|
||||
description: nonebot.log 模块
|
||||
---
|
||||
|
||||
# nonebot.log
|
||||
|
||||
本模块定义了 NoneBot 的日志记录 Logger。
|
||||
|
||||
NoneBot 使用 [`loguru`][loguru] 来记录日志信息。
|
||||
|
||||
自定义 logger 请参考 [自定义日志](https://nonebot.dev/docs/appendices/log)
|
||||
以及 [`loguru`][loguru] 文档。
|
||||
|
||||
[loguru]: https://github.com/Delgan/loguru
|
||||
|
||||
## _var_ `logger` {#logger}
|
||||
|
||||
- **类型:** Logger
|
||||
|
||||
- **说明**
|
||||
|
||||
NoneBot 日志记录器对象。
|
||||
|
||||
默认信息:
|
||||
|
||||
- 格式: `[%(asctime)s %(name)s] %(levelname)s: %(message)s`
|
||||
- 等级: `INFO` ,根据 `config.log_level` 配置改变
|
||||
- 输出: 输出至 stdout
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
from nonebot.log import logger
|
||||
```
|
||||
|
||||
## _class_ `LoguruHandler(<auto>)` {#LoguruHandler}
|
||||
|
||||
- **说明:** logging 与 loguru 之间的桥梁,将 logging 的日志转发到 loguru。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _method_ `emit(record)` {#LoguruHandler-emit}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `record` (logging.LogRecord)
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
## _def_ `default_filter(record)` {#default-filter}
|
||||
|
||||
- **说明:** 默认的日志过滤器,根据 `config.log_level` 配置改变日志等级。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `record` (Record)
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
## _var_ `default_format` {#default-format}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 默认日志格式
|
751
website/versioned_docs/version-2.4.0/api/matcher.md
Normal file
751
website/versioned_docs/version-2.4.0/api/matcher.md
Normal file
@ -0,0 +1,751 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 3
|
||||
description: nonebot.matcher 模块
|
||||
---
|
||||
|
||||
# nonebot.matcher
|
||||
|
||||
本模块实现事件响应器的创建与运行,并提供一些快捷方法来帮助用户更好的与机器人进行对话。
|
||||
|
||||
## _class_ `Matcher()` {#Matcher}
|
||||
|
||||
- **说明:** 事件响应器类
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
### _class-var_ `type` {#Matcher-type}
|
||||
|
||||
- **类型:** ClassVar[str]
|
||||
|
||||
- **说明:** 事件响应器类型
|
||||
|
||||
### _class-var_ `rule` {#Matcher-rule}
|
||||
|
||||
- **类型:** ClassVar[[Rule](rule.md#Rule)]
|
||||
|
||||
- **说明:** 事件响应器匹配规则
|
||||
|
||||
### _class-var_ `permission` {#Matcher-permission}
|
||||
|
||||
- **类型:** ClassVar[[Permission](permission.md#Permission)]
|
||||
|
||||
- **说明:** 事件响应器触发权限
|
||||
|
||||
### _class-var_ `handlers` {#Matcher-handlers}
|
||||
|
||||
- **类型:** ClassVar[list[[Dependent](dependencies/index.md#Dependent)[Any]]]
|
||||
|
||||
- **说明:** 事件响应器拥有的事件处理函数列表
|
||||
|
||||
### _class-var_ `priority` {#Matcher-priority}
|
||||
|
||||
- **类型:** ClassVar[int]
|
||||
|
||||
- **说明:** 事件响应器优先级
|
||||
|
||||
### _class-var_ `block` {#Matcher-block}
|
||||
|
||||
- **类型:** bool
|
||||
|
||||
- **说明:** 事件响应器是否阻止事件传播
|
||||
|
||||
### _class-var_ `temp` {#Matcher-temp}
|
||||
|
||||
- **类型:** ClassVar[bool]
|
||||
|
||||
- **说明:** 事件响应器是否为临时
|
||||
|
||||
### _class-var_ `expire_time` {#Matcher-expire-time}
|
||||
|
||||
- **类型:** ClassVar[datetime | None]
|
||||
|
||||
- **说明:** 事件响应器过期时间点
|
||||
|
||||
### _classmethod_ `new(type_="", rule=None, permission=None, handlers=None, temp=False, priority=1, block=False, *, plugin=None, module=None, source=None, expire_time=None, default_state=None, default_type_updater=None, default_permission_updater=None)` {#Matcher-new}
|
||||
|
||||
- **说明:** 创建一个新的事件响应器,并存储至 `matchers <#matchers>`\_
|
||||
|
||||
- **参数**
|
||||
|
||||
- `type_` (str): 事件响应器类型,与 `event.get_type()` 一致时触发,空字符串表示任意
|
||||
|
||||
- `rule` ([Rule](rule.md#Rule) | None): 匹配规则
|
||||
|
||||
- `permission` ([Permission](permission.md#Permission) | None): 权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](typing.md#T-Handler) | [Dependent](dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器,即触发一次后删除
|
||||
|
||||
- `priority` (int): 响应优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级的响应器传播
|
||||
|
||||
- `plugin` ([Plugin](plugin/model.md#Plugin) | None): **Deprecated.** 事件响应器所在插件
|
||||
|
||||
- `module` (ModuleType | None): **Deprecated.** 事件响应器所在模块
|
||||
|
||||
- `source` (MatcherSource | None): 事件响应器源代码上下文信息
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `default_state` ([T_State](typing.md#T-State) | None): 默认状态 `state`
|
||||
|
||||
- `default_type_updater` ([T_TypeUpdater](typing.md#T-TypeUpdater) | [Dependent](dependencies/index.md#Dependent)[str] | None): 默认事件类型更新函数
|
||||
|
||||
- `default_permission_updater` ([T_PermissionUpdater](typing.md#T-PermissionUpdater) | [Dependent](dependencies/index.md#Dependent)[[Permission](permission.md#Permission)] | None): 默认会话权限更新函数
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[Matcher]: 新的事件响应器类
|
||||
|
||||
### _classmethod_ `destroy()` {#Matcher-destroy}
|
||||
|
||||
- **说明:** 销毁当前的事件响应器
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _classmethod_ `check_perm(bot, event, stack=None, dependency_cache=None)` {#Matcher-check-perm}
|
||||
|
||||
- **说明:** 检查是否满足触发权限
|
||||
|
||||
- **参数**
|
||||
|
||||
- `bot` ([Bot](adapters/index.md#Bot)): Bot 对象
|
||||
|
||||
- `event` ([Event](adapters/index.md#Event)): 上报事件
|
||||
|
||||
- `stack` (AsyncExitStack | None): 异步上下文栈
|
||||
|
||||
- `dependency_cache` ([T_DependencyCache](typing.md#T-DependencyCache) | None): 依赖缓存
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool: 是否满足权限
|
||||
|
||||
### _classmethod_ `check_rule(bot, event, state, stack=None, dependency_cache=None)` {#Matcher-check-rule}
|
||||
|
||||
- **说明:** 检查是否满足匹配规则
|
||||
|
||||
- **参数**
|
||||
|
||||
- `bot` ([Bot](adapters/index.md#Bot)): Bot 对象
|
||||
|
||||
- `event` ([Event](adapters/index.md#Event)): 上报事件
|
||||
|
||||
- `state` ([T_State](typing.md#T-State)): 当前状态
|
||||
|
||||
- `stack` (AsyncExitStack | None): 异步上下文栈
|
||||
|
||||
- `dependency_cache` ([T_DependencyCache](typing.md#T-DependencyCache) | None): 依赖缓存
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool: 是否满足匹配规则
|
||||
|
||||
### _classmethod_ `type_updater(func)` {#Matcher-type-updater}
|
||||
|
||||
- **说明:** 装饰一个函数来更改当前事件响应器的默认响应事件类型更新函数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` ([T_TypeUpdater](typing.md#T-TypeUpdater)): 响应事件类型更新函数
|
||||
|
||||
- **返回**
|
||||
|
||||
- [T_TypeUpdater](typing.md#T-TypeUpdater)
|
||||
|
||||
### _classmethod_ `permission_updater(func)` {#Matcher-permission-updater}
|
||||
|
||||
- **说明:** 装饰一个函数来更改当前事件响应器的默认会话权限更新函数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` ([T_PermissionUpdater](typing.md#T-PermissionUpdater)): 会话权限更新函数
|
||||
|
||||
- **返回**
|
||||
|
||||
- [T_PermissionUpdater](typing.md#T-PermissionUpdater)
|
||||
|
||||
### _classmethod_ `append_handler(handler, parameterless=None)` {#Matcher-append-handler}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `handler` ([T_Handler](typing.md#T-Handler))
|
||||
|
||||
- `parameterless` (Iterable[Any] | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Dependent](dependencies/index.md#Dependent)[Any]
|
||||
|
||||
### _classmethod_ `handle(parameterless=None)` {#Matcher-handle}
|
||||
|
||||
- **说明:** 装饰一个函数来向事件响应器直接添加一个处理函数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `parameterless` (Iterable[Any] | None): 非参数类型依赖列表
|
||||
|
||||
- **返回**
|
||||
|
||||
- ([T_Handler](typing.md#T-Handler)) -> [T_Handler](typing.md#T-Handler)
|
||||
|
||||
### _classmethod_ `receive(id="", parameterless=None)` {#Matcher-receive}
|
||||
|
||||
- **说明:** 装饰一个函数来指示 NoneBot 在接收用户新的一条消息后继续运行该函数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `id` (str): 消息 ID
|
||||
|
||||
- `parameterless` (Iterable[Any] | None): 非参数类型依赖列表
|
||||
|
||||
- **返回**
|
||||
|
||||
- ([T_Handler](typing.md#T-Handler)) -> [T_Handler](typing.md#T-Handler)
|
||||
|
||||
### _classmethod_ `got(key, prompt=None, parameterless=None)` {#Matcher-got}
|
||||
|
||||
- **说明**
|
||||
|
||||
装饰一个函数来指示 NoneBot 获取一个参数 `key`
|
||||
|
||||
当要获取的 `key` 不存在时接收用户新的一条消息再运行该函数,
|
||||
如果 `key` 已存在则直接继续运行
|
||||
|
||||
- **参数**
|
||||
|
||||
- `key` (str): 参数名
|
||||
|
||||
- `prompt` (str | [Message](adapters/index.md#Message) | [MessageSegment](adapters/index.md#MessageSegment) | [MessageTemplate](adapters/index.md#MessageTemplate) | None): 在参数不存在时向用户发送的消息
|
||||
|
||||
- `parameterless` (Iterable[Any] | None): 非参数类型依赖列表
|
||||
|
||||
- **返回**
|
||||
|
||||
- ([T_Handler](typing.md#T-Handler)) -> [T_Handler](typing.md#T-Handler)
|
||||
|
||||
### _classmethod_ `send(message, **kwargs)` {#Matcher-send}
|
||||
|
||||
- **说明:** 发送一条消息给当前交互用户
|
||||
|
||||
- **参数**
|
||||
|
||||
- `message` (str | [Message](adapters/index.md#Message) | [MessageSegment](adapters/index.md#MessageSegment) | [MessageTemplate](adapters/index.md#MessageTemplate)): 消息内容
|
||||
|
||||
- `**kwargs` (Any): [Bot.send](adapters/index.md#Bot-send) 的参数, 请参考对应 adapter 的 bot 对象 api
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
### _classmethod_ `finish(message=None, **kwargs)` {#Matcher-finish}
|
||||
|
||||
- **说明:** 发送一条消息给当前交互用户并结束当前事件响应器
|
||||
|
||||
- **参数**
|
||||
|
||||
- `message` (str | [Message](adapters/index.md#Message) | [MessageSegment](adapters/index.md#MessageSegment) | [MessageTemplate](adapters/index.md#MessageTemplate) | None): 消息内容
|
||||
|
||||
- `**kwargs`: [Bot.send](adapters/index.md#Bot-send) 的参数, 请参考对应 adapter 的 bot 对象 api
|
||||
|
||||
- **返回**
|
||||
|
||||
- NoReturn
|
||||
|
||||
### _classmethod_ `pause(prompt=None, **kwargs)` {#Matcher-pause}
|
||||
|
||||
- **说明:** 发送一条消息给当前交互用户并暂停事件响应器,在接收用户新的一条消息后继续下一个处理函数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `prompt` (str | [Message](adapters/index.md#Message) | [MessageSegment](adapters/index.md#MessageSegment) | [MessageTemplate](adapters/index.md#MessageTemplate) | None): 消息内容
|
||||
|
||||
- `**kwargs`: [Bot.send](adapters/index.md#Bot-send) 的参数, 请参考对应 adapter 的 bot 对象 api
|
||||
|
||||
- **返回**
|
||||
|
||||
- NoReturn
|
||||
|
||||
### _classmethod_ `reject(prompt=None, **kwargs)` {#Matcher-reject}
|
||||
|
||||
- **说明:** 最近使用 `got` / `receive` 接收的消息不符合预期, 发送一条消息给当前交互用户并将当前事件处理流程中断在当前位置,在接收用户新的一个事件后从头开始执行当前处理函数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `prompt` (str | [Message](adapters/index.md#Message) | [MessageSegment](adapters/index.md#MessageSegment) | [MessageTemplate](adapters/index.md#MessageTemplate) | None): 消息内容
|
||||
|
||||
- `**kwargs`: [Bot.send](adapters/index.md#Bot-send) 的参数, 请参考对应 adapter 的 bot 对象 api
|
||||
|
||||
- **返回**
|
||||
|
||||
- NoReturn
|
||||
|
||||
### _classmethod_ `reject_arg(key, prompt=None, **kwargs)` {#Matcher-reject-arg}
|
||||
|
||||
- **说明:** 最近使用 `got` 接收的消息不符合预期, 发送一条消息给当前交互用户并将当前事件处理流程中断在当前位置,在接收用户新的一条消息后从头开始执行当前处理函数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `key` (str): 参数名
|
||||
|
||||
- `prompt` (str | [Message](adapters/index.md#Message) | [MessageSegment](adapters/index.md#MessageSegment) | [MessageTemplate](adapters/index.md#MessageTemplate) | None): 消息内容
|
||||
|
||||
- `**kwargs`: [Bot.send](adapters/index.md#Bot-send) 的参数, 请参考对应 adapter 的 bot 对象 api
|
||||
|
||||
- **返回**
|
||||
|
||||
- NoReturn
|
||||
|
||||
### _classmethod_ `reject_receive(id="", prompt=None, **kwargs)` {#Matcher-reject-receive}
|
||||
|
||||
- **说明:** 最近使用 `receive` 接收的消息不符合预期, 发送一条消息给当前交互用户并将当前事件处理流程中断在当前位置,在接收用户新的一个事件后从头开始执行当前处理函数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `id` (str): 消息 id
|
||||
|
||||
- `prompt` (str | [Message](adapters/index.md#Message) | [MessageSegment](adapters/index.md#MessageSegment) | [MessageTemplate](adapters/index.md#MessageTemplate) | None): 消息内容
|
||||
|
||||
- `**kwargs`: [Bot.send](adapters/index.md#Bot-send) 的参数, 请参考对应 adapter 的 bot 对象 api
|
||||
|
||||
- **返回**
|
||||
|
||||
- NoReturn
|
||||
|
||||
### _classmethod_ `skip()` {#Matcher-skip}
|
||||
|
||||
- **说明**
|
||||
|
||||
跳过当前事件处理函数,继续下一个处理函数
|
||||
|
||||
通常在事件处理函数的依赖中使用。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- NoReturn
|
||||
|
||||
### _method_ `get_receive(id, default=None)` {#Matcher-get-receive}
|
||||
|
||||
- **说明**
|
||||
|
||||
获取一个 `receive` 事件
|
||||
|
||||
如果没有找到对应的事件,返回 `default` 值
|
||||
|
||||
- **重载**
|
||||
|
||||
**1.** `(id) -> Event | None`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `id` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Event](adapters/index.md#Event) | None
|
||||
|
||||
**2.** `(id, default) -> Event | T`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `id` (str)
|
||||
|
||||
- `default` (T)
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Event](adapters/index.md#Event) | T
|
||||
|
||||
### _method_ `set_receive(id, event)` {#Matcher-set-receive}
|
||||
|
||||
- **说明:** 设置一个 `receive` 事件
|
||||
|
||||
- **参数**
|
||||
|
||||
- `id` (str)
|
||||
|
||||
- `event` ([Event](adapters/index.md#Event))
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _method_ `get_last_receive(default=None)` {#Matcher-get-last-receive}
|
||||
|
||||
- **说明**
|
||||
|
||||
获取最近一次 `receive` 事件
|
||||
|
||||
如果没有事件,返回 `default` 值
|
||||
|
||||
- **重载**
|
||||
|
||||
**1.** `() -> Event | None`
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Event](adapters/index.md#Event) | None
|
||||
|
||||
**2.** `(default) -> Event | T`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `default` (T)
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Event](adapters/index.md#Event) | T
|
||||
|
||||
### _method_ `get_arg(key, default=None)` {#Matcher-get-arg}
|
||||
|
||||
- **说明**
|
||||
|
||||
获取一个 `got` 消息
|
||||
|
||||
如果没有找到对应的消息,返回 `default` 值
|
||||
|
||||
- **重载**
|
||||
|
||||
**1.** `(key) -> Message | None`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `key` (str)
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Message](adapters/index.md#Message) | None
|
||||
|
||||
**2.** `(key, default) -> Message | T`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `key` (str)
|
||||
|
||||
- `default` (T)
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Message](adapters/index.md#Message) | T
|
||||
|
||||
### _method_ `set_arg(key, message)` {#Matcher-set-arg}
|
||||
|
||||
- **说明:** 设置一个 `got` 消息
|
||||
|
||||
- **参数**
|
||||
|
||||
- `key` (str)
|
||||
|
||||
- `message` ([Message](adapters/index.md#Message))
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _method_ `set_target(target, cache=True)` {#Matcher-set-target}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `target` (str)
|
||||
|
||||
- `cache` (bool)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _method_ `get_target(default=None)` {#Matcher-get-target}
|
||||
|
||||
- **重载**
|
||||
|
||||
**1.** `() -> str | None`
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str | None
|
||||
|
||||
**2.** `(default) -> str | T`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `default` (T)
|
||||
|
||||
- **返回**
|
||||
|
||||
- str | T
|
||||
|
||||
### _method_ `stop_propagation()` {#Matcher-stop-propagation}
|
||||
|
||||
- **说明:** 阻止事件传播
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _async method_ `update_type(bot, event, stack=None, dependency_cache=None)` {#Matcher-update-type}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `bot` ([Bot](adapters/index.md#Bot))
|
||||
|
||||
- `event` ([Event](adapters/index.md#Event))
|
||||
|
||||
- `stack` (AsyncExitStack | None)
|
||||
|
||||
- `dependency_cache` ([T_DependencyCache](typing.md#T-DependencyCache) | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
### _async method_ `update_permission(bot, event, stack=None, dependency_cache=None)` {#Matcher-update-permission}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `bot` ([Bot](adapters/index.md#Bot))
|
||||
|
||||
- `event` ([Event](adapters/index.md#Event))
|
||||
|
||||
- `stack` (AsyncExitStack | None)
|
||||
|
||||
- `dependency_cache` ([T_DependencyCache](typing.md#T-DependencyCache) | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Permission](permission.md#Permission)
|
||||
|
||||
### _async method_ `resolve_reject()` {#Matcher-resolve-reject}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _method_ `ensure_context(bot, event)` {#Matcher-ensure-context}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `bot` ([Bot](adapters/index.md#Bot))
|
||||
|
||||
- `event` ([Event](adapters/index.md#Event))
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _async method_ `simple_run(bot, event, state, stack=None, dependency_cache=None)` {#Matcher-simple-run}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `bot` ([Bot](adapters/index.md#Bot))
|
||||
|
||||
- `event` ([Event](adapters/index.md#Event))
|
||||
|
||||
- `state` ([T_State](typing.md#T-State))
|
||||
|
||||
- `stack` (AsyncExitStack | None)
|
||||
|
||||
- `dependency_cache` ([T_DependencyCache](typing.md#T-DependencyCache) | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
### _async method_ `run(bot, event, state, stack=None, dependency_cache=None)` {#Matcher-run}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `bot` ([Bot](adapters/index.md#Bot))
|
||||
|
||||
- `event` ([Event](adapters/index.md#Event))
|
||||
|
||||
- `state` ([T_State](typing.md#T-State))
|
||||
|
||||
- `stack` (AsyncExitStack | None)
|
||||
|
||||
- `dependency_cache` ([T_DependencyCache](typing.md#T-DependencyCache) | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
## _var_ `matchers` {#matchers}
|
||||
|
||||
- **类型:** untyped
|
||||
|
||||
## _class_ `MatcherManager()` {#MatcherManager}
|
||||
|
||||
- **说明**
|
||||
|
||||
事件响应器管理器
|
||||
|
||||
实现了常用字典操作,用于管理事件响应器。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
### _method_ `keys()` {#MatcherManager-keys}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- KeysView[int]
|
||||
|
||||
### _method_ `values()` {#MatcherManager-values}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- ValuesView[list[type[[Matcher](#Matcher)]]]
|
||||
|
||||
### _method_ `items()` {#MatcherManager-items}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- ItemsView[int, list[type[[Matcher](#Matcher)]]]
|
||||
|
||||
### _method_ `get(key, default=None)` {#MatcherManager-get}
|
||||
|
||||
- **重载**
|
||||
|
||||
**1.** `(key) -> list[type[Matcher]] | None`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `key` (int)
|
||||
|
||||
- **返回**
|
||||
|
||||
- list[type[[Matcher](#Matcher)]] | None
|
||||
|
||||
**2.** `(key, default) -> list[type[Matcher]] | T`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `key` (int)
|
||||
|
||||
- `default` (T)
|
||||
|
||||
- **返回**
|
||||
|
||||
- list[type[[Matcher](#Matcher)]] | T
|
||||
|
||||
### _method_ `pop(key)` {#MatcherManager-pop}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `key` (int)
|
||||
|
||||
- **返回**
|
||||
|
||||
- list[type[[Matcher](#Matcher)]]
|
||||
|
||||
### _method_ `popitem()` {#MatcherManager-popitem}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- tuple[int, list[type[[Matcher](#Matcher)]]]
|
||||
|
||||
### _method_ `clear()` {#MatcherManager-clear}
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _method_ `update(__m)` {#MatcherManager-update}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `__m` (MutableMapping[int, list[type[[Matcher](#Matcher)]]])
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
### _method_ `setdefault(key, default)` {#MatcherManager-setdefault}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `key` (int)
|
||||
|
||||
- `default` (list[type[[Matcher](#Matcher)]])
|
||||
|
||||
- **返回**
|
||||
|
||||
- list[type[[Matcher](#Matcher)]]
|
||||
|
||||
### _method_ `set_provider(provider_class)` {#MatcherManager-set-provider}
|
||||
|
||||
- **说明:** 设置事件响应器存储器
|
||||
|
||||
- **参数**
|
||||
|
||||
- `provider_class` (type[[MatcherProvider](#MatcherProvider)]): 事件响应器存储器类
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
## _abstract class_ `MatcherProvider(matchers)` {#MatcherProvider}
|
||||
|
||||
- **说明:** 事件响应器存储器基类
|
||||
|
||||
- **参数**
|
||||
|
||||
- `matchers` (Mapping[int, list[type[[Matcher](#Matcher)]]]): 当前存储器中已有的事件响应器
|
||||
|
||||
## _var_ `DEFAULT_PROVIDER_CLASS` {#DEFAULT-PROVIDER-CLASS}
|
||||
|
||||
- **类型:** untyped
|
||||
|
||||
- **说明:** 默认存储器类型
|
118
website/versioned_docs/version-2.4.0/api/message.md
Normal file
118
website/versioned_docs/version-2.4.0/api/message.md
Normal file
@ -0,0 +1,118 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 2
|
||||
description: nonebot.message 模块
|
||||
---
|
||||
|
||||
# nonebot.message
|
||||
|
||||
本模块定义了事件处理主要流程。
|
||||
|
||||
NoneBot 内部处理并按优先级分发事件给所有事件响应器,提供了多个插槽以进行事件的预处理等。
|
||||
|
||||
## _def_ `event_preprocessor(func)` {#event-preprocessor}
|
||||
|
||||
- **说明**
|
||||
|
||||
事件预处理。
|
||||
|
||||
装饰一个函数,使它在每次接收到事件并分发给各响应器之前执行。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` ([T_EventPreProcessor](typing.md#T-EventPreProcessor))
|
||||
|
||||
- **返回**
|
||||
|
||||
- [T_EventPreProcessor](typing.md#T-EventPreProcessor)
|
||||
|
||||
## _def_ `event_postprocessor(func)` {#event-postprocessor}
|
||||
|
||||
- **说明**
|
||||
|
||||
事件后处理。
|
||||
|
||||
装饰一个函数,使它在每次接收到事件并分发给各响应器之后执行。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` ([T_EventPostProcessor](typing.md#T-EventPostProcessor))
|
||||
|
||||
- **返回**
|
||||
|
||||
- [T_EventPostProcessor](typing.md#T-EventPostProcessor)
|
||||
|
||||
## _def_ `run_preprocessor(func)` {#run-preprocessor}
|
||||
|
||||
- **说明**
|
||||
|
||||
运行预处理。
|
||||
|
||||
装饰一个函数,使它在每次事件响应器运行前执行。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` ([T_RunPreProcessor](typing.md#T-RunPreProcessor))
|
||||
|
||||
- **返回**
|
||||
|
||||
- [T_RunPreProcessor](typing.md#T-RunPreProcessor)
|
||||
|
||||
## _def_ `run_postprocessor(func)` {#run-postprocessor}
|
||||
|
||||
- **说明**
|
||||
|
||||
运行后处理。
|
||||
|
||||
装饰一个函数,使它在每次事件响应器运行后执行。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` ([T_RunPostProcessor](typing.md#T-RunPostProcessor))
|
||||
|
||||
- **返回**
|
||||
|
||||
- [T_RunPostProcessor](typing.md#T-RunPostProcessor)
|
||||
|
||||
## _async def_ `check_and_run_matcher(Matcher, bot, event, state, stack=None, dependency_cache=None)` {#check-and-run-matcher}
|
||||
|
||||
- **说明:** 检查并运行事件响应器。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `Matcher` (type[[Matcher](matcher.md#Matcher)]): 事件响应器
|
||||
|
||||
- `bot` ([Bot](adapters/index.md#Bot)): Bot 对象
|
||||
|
||||
- `event` ([Event](adapters/index.md#Event)): Event 对象
|
||||
|
||||
- `state` ([T_State](typing.md#T-State)): 会话状态
|
||||
|
||||
- `stack` (AsyncExitStack | None): 异步上下文栈
|
||||
|
||||
- `dependency_cache` ([T_DependencyCache](typing.md#T-DependencyCache) | None): 依赖缓存
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
## _async def_ `handle_event(bot, event)` {#handle-event}
|
||||
|
||||
- **说明:** 处理一个事件。调用该函数以实现分发事件。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `bot` ([Bot](adapters/index.md#Bot)): Bot 对象
|
||||
|
||||
- `event` ([Event](adapters/index.md#Event)): Event 对象
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
driver.task_group.start_soon(handle_event, bot, event)
|
||||
```
|
512
website/versioned_docs/version-2.4.0/api/params.md
Normal file
512
website/versioned_docs/version-2.4.0/api/params.md
Normal file
@ -0,0 +1,512 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 4
|
||||
description: nonebot.params 模块
|
||||
---
|
||||
|
||||
# nonebot.params
|
||||
|
||||
本模块定义了依赖注入的各类参数。
|
||||
|
||||
## _def_ `Arg(key=None)` {#Arg}
|
||||
|
||||
- **说明:** Arg 参数消息
|
||||
|
||||
- **参数**
|
||||
|
||||
- `key` (str | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
## _def_ `ArgStr(key=None)` {#ArgStr}
|
||||
|
||||
- **说明:** Arg 参数消息文本
|
||||
|
||||
- **参数**
|
||||
|
||||
- `key` (str | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _def_ `Depends(dependency=None, *, use_cache=True, validate=False)` {#Depends}
|
||||
|
||||
- **说明:** 子依赖装饰器
|
||||
|
||||
- **参数**
|
||||
|
||||
- `dependency` ([T_Handler](typing.md#T-Handler) | None): 依赖函数。默认为参数的类型注释。
|
||||
|
||||
- `use_cache` (bool): 是否使用缓存。默认为 `True`。
|
||||
|
||||
- `validate` (bool | PydanticFieldInfo): 是否使用 Pydantic 类型校验。默认为 `False`。
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
def depend_func() -> Any:
|
||||
return ...
|
||||
|
||||
def depend_gen_func():
|
||||
try:
|
||||
yield ...
|
||||
finally:
|
||||
...
|
||||
|
||||
async def handler(
|
||||
param_name: Any = Depends(depend_func),
|
||||
gen: Any = Depends(depend_gen_func),
|
||||
):
|
||||
...
|
||||
```
|
||||
|
||||
## _class_ `ArgParam(*args, key, type, **kwargs)` {#ArgParam}
|
||||
|
||||
- **说明**
|
||||
|
||||
Arg 注入参数
|
||||
|
||||
本注入解析事件响应器操作 `got` 所获取的参数。
|
||||
|
||||
可以通过 `Arg`、`ArgStr`、`ArgPlainText` 等函数参数 `key` 指定获取的参数,
|
||||
留空则会根据参数名称获取。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*args`
|
||||
|
||||
- `key` (str)
|
||||
|
||||
- `type` (Literal['message', 'str', 'plaintext'])
|
||||
|
||||
- `**kwargs` (Any)
|
||||
|
||||
## _class_ `BotParam(*args, checker=None, **kwargs)` {#BotParam}
|
||||
|
||||
- **说明**
|
||||
|
||||
注入参数。
|
||||
|
||||
本注入解析所有类型为且仅为 [Bot](adapters/index.md#Bot) 及其子类或 `None` 的参数。
|
||||
|
||||
为保证兼容性,本注入还会解析名为 `bot` 且没有类型注解的参数。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*args`
|
||||
|
||||
- `checker` ([ModelField](compat.md#ModelField) | None)
|
||||
|
||||
- `**kwargs` (Any)
|
||||
|
||||
## _class_ `EventParam(*args, checker=None, **kwargs)` {#EventParam}
|
||||
|
||||
- **说明**
|
||||
|
||||
注入参数
|
||||
|
||||
本注入解析所有类型为且仅为 [Event](adapters/index.md#Event) 及其子类或 `None` 的参数。
|
||||
|
||||
为保证兼容性,本注入还会解析名为 `event` 且没有类型注解的参数。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*args`
|
||||
|
||||
- `checker` ([ModelField](compat.md#ModelField) | None)
|
||||
|
||||
- `**kwargs` (Any)
|
||||
|
||||
## _class_ `StateParam(*args, validate=False, **kwargs)` {#StateParam}
|
||||
|
||||
- **说明**
|
||||
|
||||
事件处理状态注入参数
|
||||
|
||||
本注入解析所有类型为 `T_State` 的参数。
|
||||
|
||||
为保证兼容性,本注入还会解析名为 `state` 且没有类型注解的参数。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*args`
|
||||
|
||||
- `validate` (bool)
|
||||
|
||||
- `**kwargs` (Any)
|
||||
|
||||
## _class_ `DependParam(*args, dependent, use_cache, **kwargs)` {#DependParam}
|
||||
|
||||
- **说明**
|
||||
|
||||
子依赖注入参数。
|
||||
|
||||
本注入解析所有子依赖注入,然后将它们的返回值作为参数值传递给父依赖。
|
||||
|
||||
本注入应该具有最高优先级,因此应该在其他参数之前检查。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*args`
|
||||
|
||||
- `dependent` ([Dependent](dependencies/index.md#Dependent)[Any])
|
||||
|
||||
- `use_cache` (bool)
|
||||
|
||||
- `**kwargs` (Any)
|
||||
|
||||
## _def_ `ArgPlainText(key=None)` {#ArgPlainText}
|
||||
|
||||
- **说明:** Arg 参数消息纯文本
|
||||
|
||||
- **参数**
|
||||
|
||||
- `key` (str | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _class_ `DefaultParam(*args, validate=False, **kwargs)` {#DefaultParam}
|
||||
|
||||
- **说明**
|
||||
|
||||
默认值注入参数
|
||||
|
||||
本注入解析所有剩余未能解析且具有默认值的参数。
|
||||
|
||||
本注入参数应该具有最低优先级,因此应该在所有其他注入参数之后使用。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*args`
|
||||
|
||||
- `validate` (bool)
|
||||
|
||||
- `**kwargs` (Any)
|
||||
|
||||
## _class_ `MatcherParam(*args, checker=None, **kwargs)` {#MatcherParam}
|
||||
|
||||
- **说明**
|
||||
|
||||
事件响应器实例注入参数
|
||||
|
||||
本注入解析所有类型为且仅为 [Matcher](matcher.md#Matcher) 及其子类或 `None` 的参数。
|
||||
|
||||
为保证兼容性,本注入还会解析名为 `matcher` 且没有类型注解的参数。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*args`
|
||||
|
||||
- `checker` ([ModelField](compat.md#ModelField) | None)
|
||||
|
||||
- `**kwargs` (Any)
|
||||
|
||||
## _class_ `ExceptionParam(*args, validate=False, **kwargs)` {#ExceptionParam}
|
||||
|
||||
- **说明**
|
||||
|
||||
的异常注入参数
|
||||
|
||||
本注入解析所有类型为 `Exception` 或 `None` 的参数。
|
||||
|
||||
为保证兼容性,本注入还会解析名为 `exception` 且没有类型注解的参数。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*args`
|
||||
|
||||
- `validate` (bool)
|
||||
|
||||
- `**kwargs` (Any)
|
||||
|
||||
## _def_ `EventType()` {#EventType}
|
||||
|
||||
- **说明:** 类型参数
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _def_ `EventMessage()` {#EventMessage}
|
||||
|
||||
- **说明:** 消息参数
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
## _def_ `EventPlainText()` {#EventPlainText}
|
||||
|
||||
- **说明:** 纯文本消息参数
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _def_ `EventToMe()` {#EventToMe}
|
||||
|
||||
- **说明:** `to_me` 参数
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _def_ `Command()` {#Command}
|
||||
|
||||
- **说明:** 消息命令元组
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- tuple[str, ...]
|
||||
|
||||
## _def_ `RawCommand()` {#RawCommand}
|
||||
|
||||
- **说明:** 消息命令文本
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _def_ `CommandArg()` {#CommandArg}
|
||||
|
||||
- **说明:** 消息命令参数
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
## _def_ `CommandStart()` {#CommandStart}
|
||||
|
||||
- **说明:** 消息命令开头
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _def_ `CommandWhitespace()` {#CommandWhitespace}
|
||||
|
||||
- **说明:** 消息命令与参数之间的空白
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _def_ `ShellCommandArgs()` {#ShellCommandArgs}
|
||||
|
||||
- **说明:** shell 命令解析后的参数字典
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
## _def_ `ShellCommandArgv()` {#ShellCommandArgv}
|
||||
|
||||
- **说明:** shell 命令原始参数列表
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
## _def_ `RegexMatched()` {#RegexMatched}
|
||||
|
||||
- **说明:** 正则匹配结果
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- Match[str]
|
||||
|
||||
## _def_ `RegexStr(*groups)` {#RegexStr}
|
||||
|
||||
- **说明:** 正则匹配结果文本
|
||||
|
||||
- **重载**
|
||||
|
||||
**1.** `(__group=0) -> str`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `__group` (Literal[0])
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
**2.** `(__group) -> str | Any`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `__group` (str | int)
|
||||
|
||||
- **返回**
|
||||
|
||||
- str | Any
|
||||
|
||||
**3.** `(__group1, __group2, *groups) -> tuple[str | Any, ...]`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `__group1` (str | int)
|
||||
|
||||
- `__group2` (str | int)
|
||||
|
||||
- `*groups` (str | int)
|
||||
|
||||
- **返回**
|
||||
|
||||
- tuple[str | Any, ...]
|
||||
|
||||
## _def_ `RegexGroup()` {#RegexGroup}
|
||||
|
||||
- **说明:** 正则匹配结果 group 元组
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- tuple[Any, ...]
|
||||
|
||||
## _def_ `RegexDict()` {#RegexDict}
|
||||
|
||||
- **说明:** 正则匹配结果 group 字典
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- dict[str, Any]
|
||||
|
||||
## _def_ `Startswith()` {#Startswith}
|
||||
|
||||
- **说明:** 响应触发前缀
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _def_ `Endswith()` {#Endswith}
|
||||
|
||||
- **说明:** 响应触发后缀
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _def_ `Fullmatch()` {#Fullmatch}
|
||||
|
||||
- **说明:** 响应触发完整消息
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _def_ `Keyword()` {#Keyword}
|
||||
|
||||
- **说明:** 响应触发关键字
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _def_ `Received(id=None, default=None)` {#Received}
|
||||
|
||||
- **说明:** `receive` 事件参数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `id` (str | None)
|
||||
|
||||
- `default` (Any)
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
## _def_ `LastReceived(default=None)` {#LastReceived}
|
||||
|
||||
- **说明:** `last_receive` 事件参数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `default` (Any)
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
210
website/versioned_docs/version-2.4.0/api/permission.md
Normal file
210
website/versioned_docs/version-2.4.0/api/permission.md
Normal file
@ -0,0 +1,210 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 6
|
||||
description: nonebot.permission 模块
|
||||
---
|
||||
|
||||
# nonebot.permission
|
||||
|
||||
本模块是 [Matcher.permission](matcher.md#Matcher-permission) 的类型定义。
|
||||
|
||||
每个[事件响应器](matcher.md#Matcher)
|
||||
拥有一个 [Permission](#Permission),其中是 `PermissionChecker` 的集合。
|
||||
只要有一个 `PermissionChecker` 检查结果为 `True` 时就会继续运行。
|
||||
|
||||
## _def_ `USER(*users, perm=None)` {#USER}
|
||||
|
||||
- **说明**
|
||||
|
||||
匹配当前事件属于指定会话。
|
||||
|
||||
如果 `perm` 中仅有 `User` 类型的权限检查函数,则会去除原有检查函数的会话 ID 限制。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*users` (str)
|
||||
|
||||
- `perm` (Permission | None): 需要同时满足的权限
|
||||
|
||||
- `user`: 会话白名单
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
## _class_ `User(users, perm=None)` {#User}
|
||||
|
||||
- **说明:** 检查当前事件是否属于指定会话。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `users` (tuple[str, ...]): 会话 ID 元组
|
||||
|
||||
- `perm` (Permission | None): 需同时满足的权限
|
||||
|
||||
### _classmethod_ `from_event(event, perm=None)` {#User-from-event}
|
||||
|
||||
- **说明**
|
||||
|
||||
从事件中获取会话 ID。
|
||||
|
||||
如果 `perm` 中仅有 `User` 类型的权限检查函数,则会去除原有的会话 ID 限制。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `event` ([Event](adapters/index.md#Event)): Event 对象
|
||||
|
||||
- `perm` (Permission | None): 需同时满足的权限
|
||||
|
||||
- **返回**
|
||||
|
||||
- Self
|
||||
|
||||
### _classmethod_ `from_permission(*users, perm=None)` {#User-from-permission}
|
||||
|
||||
- **说明**
|
||||
|
||||
指定会话与权限。
|
||||
|
||||
如果 `perm` 中仅有 `User` 类型的权限检查函数,则会去除原有的会话 ID 限制。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*users` (str): 会话白名单
|
||||
|
||||
- `perm` (Permission | None): 需同时满足的权限
|
||||
|
||||
- **返回**
|
||||
|
||||
- Self
|
||||
|
||||
## _class_ `Permission(*checkers)` {#Permission}
|
||||
|
||||
- **说明**
|
||||
|
||||
权限类。
|
||||
|
||||
当事件传递时,在 [Matcher](matcher.md#Matcher) 运行前进行检查。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*checkers` ([T_PermissionChecker](typing.md#T-PermissionChecker) | [Dependent](dependencies/index.md#Dependent)[bool]): PermissionChecker
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
Permission(async_function) | sync_function
|
||||
# 等价于
|
||||
Permission(async_function, sync_function)
|
||||
```
|
||||
|
||||
### _instance-var_ `checkers` {#Permission-checkers}
|
||||
|
||||
- **类型:** set[[Dependent](dependencies/index.md#Dependent)[bool]]
|
||||
|
||||
- **说明:** 存储 `PermissionChecker`
|
||||
|
||||
### _async method_ `__call__(bot, event, stack=None, dependency_cache=None)` {#Permission---call--}
|
||||
|
||||
- **说明:** 检查是否满足某个权限。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `bot` ([Bot](adapters/index.md#Bot)): Bot 对象
|
||||
|
||||
- `event` ([Event](adapters/index.md#Event)): Event 对象
|
||||
|
||||
- `stack` (AsyncExitStack | None): 异步上下文栈
|
||||
|
||||
- `dependency_cache` ([T_DependencyCache](typing.md#T-DependencyCache) | None): 依赖缓存
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _class_ `Message(<auto>)` {#Message}
|
||||
|
||||
- **说明:** 检查是否为消息事件
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `Notice(<auto>)` {#Notice}
|
||||
|
||||
- **说明:** 检查是否为通知事件
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `Request(<auto>)` {#Request}
|
||||
|
||||
- **说明:** 检查是否为请求事件
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `MetaEvent(<auto>)` {#MetaEvent}
|
||||
|
||||
- **说明:** 检查是否为元事件
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _var_ `MESSAGE` {#MESSAGE}
|
||||
|
||||
- **类型:** [Permission](#Permission)
|
||||
|
||||
- **说明**
|
||||
|
||||
匹配任意 `message` 类型事件
|
||||
|
||||
仅在需要同时捕获不同类型事件时使用,优先使用 message type 的 Matcher。
|
||||
|
||||
## _var_ `NOTICE` {#NOTICE}
|
||||
|
||||
- **类型:** [Permission](#Permission)
|
||||
|
||||
- **说明**
|
||||
|
||||
匹配任意 `notice` 类型事件
|
||||
|
||||
仅在需要同时捕获不同类型事件时使用,优先使用 notice type 的 Matcher。
|
||||
|
||||
## _var_ `REQUEST` {#REQUEST}
|
||||
|
||||
- **类型:** [Permission](#Permission)
|
||||
|
||||
- **说明**
|
||||
|
||||
匹配任意 `request` 类型事件
|
||||
|
||||
仅在需要同时捕获不同类型事件时使用,优先使用 request type 的 Matcher。
|
||||
|
||||
## _var_ `METAEVENT` {#METAEVENT}
|
||||
|
||||
- **类型:** [Permission](#Permission)
|
||||
|
||||
- **说明**
|
||||
|
||||
匹配任意 `meta_event` 类型事件
|
||||
|
||||
仅在需要同时捕获不同类型事件时使用,优先使用 meta_event type 的 Matcher。
|
||||
|
||||
## _class_ `SuperUser(<auto>)` {#SuperUser}
|
||||
|
||||
- **说明:** 检查当前事件是否是消息事件且属于超级管理员
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _var_ `SUPERUSER` {#SUPERUSER}
|
||||
|
||||
- **类型:** [Permission](#Permission)
|
||||
|
||||
- **说明:** 匹配任意超级用户事件
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"position": 12
|
||||
}
|
111
website/versioned_docs/version-2.4.0/api/plugin/index.md
Normal file
111
website/versioned_docs/version-2.4.0/api/plugin/index.md
Normal file
@ -0,0 +1,111 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 0
|
||||
description: nonebot.plugin 模块
|
||||
---
|
||||
|
||||
# nonebot.plugin
|
||||
|
||||
本模块为 NoneBot 插件开发提供便携的定义函数。
|
||||
|
||||
## 快捷导入
|
||||
|
||||
为方便使用,本模块从子模块导入了部分内容,以下内容可以直接通过本模块导入:
|
||||
|
||||
- `on` => [`on`](on.md#on)
|
||||
- `on_metaevent` => [`on_metaevent`](on.md#on-metaevent)
|
||||
- `on_message` => [`on_message`](on.md#on-message)
|
||||
- `on_notice` => [`on_notice`](on.md#on-notice)
|
||||
- `on_request` => [`on_request`](on.md#on-request)
|
||||
- `on_startswith` => [`on_startswith`](on.md#on-startswith)
|
||||
- `on_endswith` => [`on_endswith`](on.md#on-endswith)
|
||||
- `on_fullmatch` => [`on_fullmatch`](on.md#on-fullmatch)
|
||||
- `on_keyword` => [`on_keyword`](on.md#on-keyword)
|
||||
- `on_command` => [`on_command`](on.md#on-command)
|
||||
- `on_shell_command` => [`on_shell_command`](on.md#on-shell-command)
|
||||
- `on_regex` => [`on_regex`](on.md#on-regex)
|
||||
- `on_type` => [`on_type`](on.md#on-type)
|
||||
- `CommandGroup` => [`CommandGroup`](on.md#CommandGroup)
|
||||
- `Matchergroup` => [`MatcherGroup`](on.md#MatcherGroup)
|
||||
- `load_plugin` => [`load_plugin`](load.md#load-plugin)
|
||||
- `load_plugins` => [`load_plugins`](load.md#load-plugins)
|
||||
- `load_all_plugins` => [`load_all_plugins`](load.md#load-all-plugins)
|
||||
- `load_from_json` => [`load_from_json`](load.md#load-from-json)
|
||||
- `load_from_toml` => [`load_from_toml`](load.md#load-from-toml)
|
||||
- `load_builtin_plugin` =>
|
||||
[`load_builtin_plugin`](load.md#load-builtin-plugin)
|
||||
- `load_builtin_plugins` =>
|
||||
[`load_builtin_plugins`](load.md#load-builtin-plugins)
|
||||
- `require` => [`require`](load.md#require)
|
||||
- `PluginMetadata` => [`PluginMetadata`](model.md#PluginMetadata)
|
||||
|
||||
## _def_ `get_plugin(plugin_id)` {#get-plugin}
|
||||
|
||||
- **说明**
|
||||
|
||||
获取已经导入的某个插件。
|
||||
|
||||
如果为 `load_plugins` 文件夹导入的插件,则为文件(夹)名。
|
||||
|
||||
如果为嵌套的子插件,标识符为 `父插件标识符:子插件文件(夹)名`。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `plugin_id` (str): 插件标识符,即 [Plugin.id\_](model.md#Plugin-id-)。
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Plugin](model.md#Plugin) | None
|
||||
|
||||
## _def_ `get_plugin_by_module_name(module_name)` {#get-plugin-by-module-name}
|
||||
|
||||
- **说明**
|
||||
|
||||
通过模块名获取已经导入的某个插件。
|
||||
|
||||
如果提供的模块名为某个插件的子模块,同样会返回该插件。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `module_name` (str): 模块名,即 [Plugin.module_name](model.md#Plugin-module-name)。
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Plugin](model.md#Plugin) | None
|
||||
|
||||
## _def_ `get_loaded_plugins()` {#get-loaded-plugins}
|
||||
|
||||
- **说明:** 获取当前已导入的所有插件。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- set[[Plugin](model.md#Plugin)]
|
||||
|
||||
## _def_ `get_available_plugin_names()` {#get-available-plugin-names}
|
||||
|
||||
- **说明:** 获取当前所有可用的插件标识符(包含尚未加载的插件)。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- set[str]
|
||||
|
||||
## _def_ `get_plugin_config(config)` {#get-plugin-config}
|
||||
|
||||
- **说明:** 从全局配置获取当前插件需要的配置项。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `config` (type[C])
|
||||
|
||||
- **返回**
|
||||
|
||||
- C
|
163
website/versioned_docs/version-2.4.0/api/plugin/load.md
Normal file
163
website/versioned_docs/version-2.4.0/api/plugin/load.md
Normal file
@ -0,0 +1,163 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 1
|
||||
description: nonebot.plugin.load 模块
|
||||
---
|
||||
|
||||
# nonebot.plugin.load
|
||||
|
||||
本模块定义插件加载接口。
|
||||
|
||||
## _def_ `load_plugin(module_path)` {#load-plugin}
|
||||
|
||||
- **说明:** 加载单个插件,可以是本地插件或是通过 `pip` 安装的插件。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `module_path` (str | Path): 插件名称 `path.to.your.plugin` 或插件路径 `pathlib.Path(path/to/your/plugin)`
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Plugin](model.md#Plugin) | None
|
||||
|
||||
## _def_ `load_plugins(*plugin_dir)` {#load-plugins}
|
||||
|
||||
- **说明:** 导入文件夹下多个插件,以 `_` 开头的插件不会被导入!
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*plugin_dir` (str): 文件夹路径
|
||||
|
||||
- **返回**
|
||||
|
||||
- set[[Plugin](model.md#Plugin)]
|
||||
|
||||
## _def_ `load_all_plugins(module_path, plugin_dir)` {#load-all-plugins}
|
||||
|
||||
- **说明:** 导入指定列表中的插件以及指定目录下多个插件,以 `_` 开头的插件不会被导入!
|
||||
|
||||
- **参数**
|
||||
|
||||
- `module_path` (Iterable[str]): 指定插件集合
|
||||
|
||||
- `plugin_dir` (Iterable[str]): 指定文件夹路径集合
|
||||
|
||||
- **返回**
|
||||
|
||||
- set[[Plugin](model.md#Plugin)]
|
||||
|
||||
## _def_ `load_from_json(file_path, encoding="utf-8")` {#load-from-json}
|
||||
|
||||
- **说明:** 导入指定 json 文件中的 `plugins` 以及 `plugin_dirs` 下多个插件。 以 `_` 开头的插件不会被导入!
|
||||
|
||||
- **参数**
|
||||
|
||||
- `file_path` (str): 指定 json 文件路径
|
||||
|
||||
- `encoding` (str): 指定 json 文件编码
|
||||
|
||||
- **返回**
|
||||
|
||||
- set[[Plugin](model.md#Plugin)]
|
||||
|
||||
- **用法**
|
||||
|
||||
```json title=plugins.json
|
||||
{
|
||||
"plugins": ["some_plugin"],
|
||||
"plugin_dirs": ["some_dir"]
|
||||
}
|
||||
```
|
||||
|
||||
```python
|
||||
nonebot.load_from_json("plugins.json")
|
||||
```
|
||||
|
||||
## _def_ `load_from_toml(file_path, encoding="utf-8")` {#load-from-toml}
|
||||
|
||||
- **说明:** 导入指定 toml 文件 `[tool.nonebot]` 中的 `plugins` 以及 `plugin_dirs` 下多个插件。 以 `_` 开头的插件不会被导入!
|
||||
|
||||
- **参数**
|
||||
|
||||
- `file_path` (str): 指定 toml 文件路径
|
||||
|
||||
- `encoding` (str): 指定 toml 文件编码
|
||||
|
||||
- **返回**
|
||||
|
||||
- set[[Plugin](model.md#Plugin)]
|
||||
|
||||
- **用法**
|
||||
|
||||
```toml title=pyproject.toml
|
||||
[tool.nonebot]
|
||||
plugins = ["some_plugin"]
|
||||
plugin_dirs = ["some_dir"]
|
||||
```
|
||||
|
||||
```python
|
||||
nonebot.load_from_toml("pyproject.toml")
|
||||
```
|
||||
|
||||
## _def_ `load_builtin_plugin(name)` {#load-builtin-plugin}
|
||||
|
||||
- **说明:** 导入 NoneBot 内置插件。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `name` (str): 插件名称
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Plugin](model.md#Plugin) | None
|
||||
|
||||
## _def_ `load_builtin_plugins(*plugins)` {#load-builtin-plugins}
|
||||
|
||||
- **说明:** 导入多个 NoneBot 内置插件。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*plugins` (str): 插件名称列表
|
||||
|
||||
- **返回**
|
||||
|
||||
- set[[Plugin](model.md#Plugin)]
|
||||
|
||||
## _def_ `require(name)` {#require}
|
||||
|
||||
- **说明:** 声明依赖插件。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `name` (str): 插件模块名或插件标识符,仅在已声明插件的情况下可使用标识符。
|
||||
|
||||
- **返回**
|
||||
|
||||
- ModuleType
|
||||
|
||||
- **异常**
|
||||
|
||||
- RuntimeError: 插件无法加载
|
||||
|
||||
## _def_ `inherit_supported_adapters(*names)` {#inherit-supported-adapters}
|
||||
|
||||
- **说明**
|
||||
|
||||
获取已加载插件的适配器支持状态集合。
|
||||
|
||||
如果传入了多个插件名称,返回值会自动取交集。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*names` (str): 插件名称列表。
|
||||
|
||||
- **返回**
|
||||
|
||||
- set[str] | None
|
||||
|
||||
- **异常**
|
||||
|
||||
- RuntimeError: 插件未加载
|
||||
|
||||
- ValueError: 插件缺少元数据
|
124
website/versioned_docs/version-2.4.0/api/plugin/manager.md
Normal file
124
website/versioned_docs/version-2.4.0/api/plugin/manager.md
Normal file
@ -0,0 +1,124 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 5
|
||||
description: nonebot.plugin.manager 模块
|
||||
---
|
||||
|
||||
# nonebot.plugin.manager
|
||||
|
||||
本模块实现插件加载流程。
|
||||
|
||||
参考: [import hooks](https://docs.python.org/3/reference/import.html#import-hooks), [PEP302](https://www.python.org/dev/peps/pep-0302/)
|
||||
|
||||
## _class_ `PluginManager(plugins=None, search_path=None)` {#PluginManager}
|
||||
|
||||
- **说明:** 插件管理器。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `plugins` (Iterable[str] | None): 独立插件模块名集合。
|
||||
|
||||
- `search_path` (Iterable[str] | None): 插件搜索路径(文件夹),相对于当前工作目录。
|
||||
|
||||
### _property_ `third_party_plugins` {#PluginManager-third-party-plugins}
|
||||
|
||||
- **类型:** set[str]
|
||||
|
||||
- **说明:** 返回所有独立插件标识符。
|
||||
|
||||
### _property_ `searched_plugins` {#PluginManager-searched-plugins}
|
||||
|
||||
- **类型:** set[str]
|
||||
|
||||
- **说明:** 返回已搜索到的插件标识符。
|
||||
|
||||
### _property_ `available_plugins` {#PluginManager-available-plugins}
|
||||
|
||||
- **类型:** set[str]
|
||||
|
||||
- **说明:** 返回当前插件管理器中可用的插件标识符。
|
||||
|
||||
### _property_ `controlled_modules` {#PluginManager-controlled-modules}
|
||||
|
||||
- **类型:** dict[str, str]
|
||||
|
||||
- **说明:** 返回当前插件管理器中控制的插件标识符与模块路径映射字典。
|
||||
|
||||
### _method_ `load_plugin(name)` {#PluginManager-load-plugin}
|
||||
|
||||
- **说明**
|
||||
|
||||
加载指定插件。
|
||||
|
||||
可以使用完整插件模块名或者插件标识符加载。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `name` (str): 插件名称或插件标识符。
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Plugin](model.md#Plugin) | None
|
||||
|
||||
### _method_ `load_all_plugins()` {#PluginManager-load-all-plugins}
|
||||
|
||||
- **说明:** 加载所有可用插件。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- set[[Plugin](model.md#Plugin)]
|
||||
|
||||
## _class_ `PluginFinder(<auto>)` {#PluginFinder}
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _method_ `find_spec(fullname, path, target=None)` {#PluginFinder-find-spec}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `fullname` (str)
|
||||
|
||||
- `path` (Sequence[str] | None)
|
||||
|
||||
- `target` (ModuleType | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
## _class_ `PluginLoader(manager, fullname, path)` {#PluginLoader}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `manager` (PluginManager)
|
||||
|
||||
- `fullname` (str)
|
||||
|
||||
- `path` (str)
|
||||
|
||||
### _method_ `create_module(spec)` {#PluginLoader-create-module}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `spec`
|
||||
|
||||
- **返回**
|
||||
|
||||
- ModuleType | None
|
||||
|
||||
### _method_ `exec_module(module)` {#PluginLoader-exec-module}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `module` (ModuleType)
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
140
website/versioned_docs/version-2.4.0/api/plugin/model.md
Normal file
140
website/versioned_docs/version-2.4.0/api/plugin/model.md
Normal file
@ -0,0 +1,140 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 3
|
||||
description: nonebot.plugin.model 模块
|
||||
---
|
||||
|
||||
# nonebot.plugin.model
|
||||
|
||||
本模块定义插件相关信息。
|
||||
|
||||
## _class_ `PluginMetadata(<auto>)` {#PluginMetadata}
|
||||
|
||||
- **说明:** 插件元信息,由插件编写者提供
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _instance-var_ `name` {#PluginMetadata-name}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 插件名称
|
||||
|
||||
### _instance-var_ `description` {#PluginMetadata-description}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 插件功能介绍
|
||||
|
||||
### _instance-var_ `usage` {#PluginMetadata-usage}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 插件使用方法
|
||||
|
||||
### _class-var_ `type` {#PluginMetadata-type}
|
||||
|
||||
- **类型:** str | None
|
||||
|
||||
- **说明:** 插件类型,用于商店分类
|
||||
|
||||
### _class-var_ `homepage` {#PluginMetadata-homepage}
|
||||
|
||||
- **类型:** str | None
|
||||
|
||||
- **说明:** 插件主页
|
||||
|
||||
### _class-var_ `config` {#PluginMetadata-config}
|
||||
|
||||
- **类型:** type[BaseModel] | None
|
||||
|
||||
- **说明:** 插件配置项
|
||||
|
||||
### _class-var_ `supported_adapters` {#PluginMetadata-supported-adapters}
|
||||
|
||||
- **类型:** set[str] | None
|
||||
|
||||
- **说明**
|
||||
|
||||
插件支持的适配器模块路径
|
||||
|
||||
格式为 `<module>[:<Adapter>]`,`~` 为 `nonebot.adapters.` 的缩写。
|
||||
|
||||
`None` 表示支持**所有适配器**。
|
||||
|
||||
### _class-var_ `extra` {#PluginMetadata-extra}
|
||||
|
||||
- **类型:** dict[Any, Any]
|
||||
|
||||
- **说明:** 插件额外信息,可由插件编写者自由扩展定义
|
||||
|
||||
### _method_ `get_supported_adapters()` {#PluginMetadata-get-supported-adapters}
|
||||
|
||||
- **说明:** 获取当前已安装的插件支持适配器类列表
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- set[type[[Adapter](../adapters/index.md#Adapter)]] | None
|
||||
|
||||
## _class_ `Plugin(<auto>)` {#Plugin}
|
||||
|
||||
- **说明:** 存储插件信息
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _instance-var_ `name` {#Plugin-name}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 插件名称,NoneBot 使用 文件/文件夹 名称作为插件名称
|
||||
|
||||
### _instance-var_ `module` {#Plugin-module}
|
||||
|
||||
- **类型:** ModuleType
|
||||
|
||||
- **说明:** 插件模块对象
|
||||
|
||||
### _instance-var_ `module_name` {#Plugin-module-name}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 点分割模块路径
|
||||
|
||||
### _instance-var_ `manager` {#Plugin-manager}
|
||||
|
||||
- **类型:** [PluginManager](manager.md#PluginManager)
|
||||
|
||||
- **说明:** 导入该插件的插件管理器
|
||||
|
||||
### _class-var_ `matcher` {#Plugin-matcher}
|
||||
|
||||
- **类型:** set[type[[Matcher](../matcher.md#Matcher)]]
|
||||
|
||||
- **说明:** 插件加载时定义的 `Matcher`
|
||||
|
||||
### _class-var_ `parent_plugin` {#Plugin-parent-plugin}
|
||||
|
||||
- **类型:** Plugin | None
|
||||
|
||||
- **说明:** 父插件
|
||||
|
||||
### _class-var_ `sub_plugins` {#Plugin-sub-plugins}
|
||||
|
||||
- **类型:** set[Plugin]
|
||||
|
||||
- **说明:** 子插件集合
|
||||
|
||||
### _property_ `id_` {#Plugin-id-}
|
||||
|
||||
- **类型:** str
|
||||
|
||||
- **说明:** 插件索引标识
|
950
website/versioned_docs/version-2.4.0/api/plugin/on.md
Normal file
950
website/versioned_docs/version-2.4.0/api/plugin/on.md
Normal file
@ -0,0 +1,950 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 2
|
||||
description: nonebot.plugin.on 模块
|
||||
---
|
||||
|
||||
# nonebot.plugin.on
|
||||
|
||||
本模块定义事件响应器便携定义函数。
|
||||
|
||||
## _def_ `store_matcher(matcher)` {#store-matcher}
|
||||
|
||||
- **说明:** 存储一个事件响应器到插件。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `matcher` (type[[Matcher](../matcher.md#Matcher)]): 事件响应器
|
||||
|
||||
- **返回**
|
||||
|
||||
- None
|
||||
|
||||
## _def_ `get_matcher_plugin(depth=...)` {#get-matcher-plugin}
|
||||
|
||||
- **说明**
|
||||
|
||||
获取事件响应器定义所在插件。
|
||||
|
||||
**Deprecated**, 请使用 [get_matcher_source](#get-matcher-source) 获取信息。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `depth` (int): 调用栈深度
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Plugin](model.md#Plugin) | None
|
||||
|
||||
## _def_ `get_matcher_module(depth=...)` {#get-matcher-module}
|
||||
|
||||
- **说明**
|
||||
|
||||
获取事件响应器定义所在模块。
|
||||
|
||||
**Deprecated**, 请使用 [get_matcher_source](#get-matcher-source) 获取信息。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `depth` (int): 调用栈深度
|
||||
|
||||
- **返回**
|
||||
|
||||
- ModuleType | None
|
||||
|
||||
## _def_ `get_matcher_source(depth=...)` {#get-matcher-source}
|
||||
|
||||
- **说明:** 获取事件响应器定义所在源码信息。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `depth` (int): 调用栈深度
|
||||
|
||||
- **返回**
|
||||
|
||||
- MatcherSource | None
|
||||
|
||||
## _def_ `on(type="", rule=..., permission=..., *, handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#on}
|
||||
|
||||
- **说明:** 注册一个基础事件响应器,可自定义类型。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `type` (str): 事件响应器类型
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
## _def_ `on_metaevent(rule=..., permission=..., *, handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#on-metaevent}
|
||||
|
||||
- **说明:** 注册一个元事件响应器。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
## _def_ `on_message(rule=..., permission=..., *, handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#on-message}
|
||||
|
||||
- **说明:** 注册一个消息事件响应器。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
## _def_ `on_notice(rule=..., permission=..., *, handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#on-notice}
|
||||
|
||||
- **说明:** 注册一个通知事件响应器。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
## _def_ `on_request(rule=..., permission=..., *, handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#on-request}
|
||||
|
||||
- **说明:** 注册一个请求事件响应器。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
## _def_ `on_startswith(msg, rule=..., ignorecase=..., *, permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#on-startswith}
|
||||
|
||||
- **说明:** 注册一个消息事件响应器,并且当消息的**文本部分**以指定内容开头时响应。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `msg` (str | tuple[str, ...]): 指定消息开头内容
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `ignorecase` (bool): 是否忽略大小写
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
## _def_ `on_endswith(msg, rule=..., ignorecase=..., *, permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#on-endswith}
|
||||
|
||||
- **说明:** 注册一个消息事件响应器,并且当消息的**文本部分**以指定内容结尾时响应。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `msg` (str | tuple[str, ...]): 指定消息结尾内容
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `ignorecase` (bool): 是否忽略大小写
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
## _def_ `on_fullmatch(msg, rule=..., ignorecase=..., *, permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#on-fullmatch}
|
||||
|
||||
- **说明:** 注册一个消息事件响应器,并且当消息的**文本部分**与指定内容完全一致时响应。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `msg` (str | tuple[str, ...]): 指定消息全匹配内容
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `ignorecase` (bool): 是否忽略大小写
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
## _def_ `on_keyword(keywords, rule=..., *, permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#on-keyword}
|
||||
|
||||
- **说明:** 注册一个消息事件响应器,并且当消息纯文本部分包含关键词时响应。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `keywords` (set[str]): 关键词列表
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
## _def_ `on_command(cmd, rule=..., aliases=..., force_whitespace=..., *, permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#on-command}
|
||||
|
||||
- **说明**
|
||||
|
||||
注册一个消息事件响应器,并且当消息以指定命令开头时响应。
|
||||
|
||||
命令匹配规则参考: `命令形式匹配 <rule.md#command-command>`\_
|
||||
|
||||
- **参数**
|
||||
|
||||
- `cmd` (str | tuple[str, ...]): 指定命令内容
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `aliases` (set[str | tuple[str, ...]] | None): 命令别名
|
||||
|
||||
- `force_whitespace` (str | bool | None): 是否强制命令后必须有指定空白符
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
## _def_ `on_shell_command(cmd, rule=..., aliases=..., parser=..., *, permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#on-shell-command}
|
||||
|
||||
- **说明**
|
||||
|
||||
注册一个支持 `shell_like` 解析参数的命令消息事件响应器。
|
||||
|
||||
与普通的 `on_command` 不同的是,在添加 `parser` 参数时, 响应器会自动处理消息。
|
||||
|
||||
可以通过 [ShellCommandArgv](../params.md#ShellCommandArgv) 获取原始参数列表,
|
||||
通过 [ShellCommandArgs](../params.md#ShellCommandArgs) 获取解析后的参数字典。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `cmd` (str | tuple[str, ...]): 指定命令内容
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `aliases` (set[str | tuple[str, ...]] | None): 命令别名
|
||||
|
||||
- `parser` ([ArgumentParser](../rule.md#ArgumentParser) | None): `nonebot.rule.ArgumentParser` 对象
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
## _def_ `on_regex(pattern, flags=..., rule=..., *, permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#on-regex}
|
||||
|
||||
- **说明**
|
||||
|
||||
注册一个消息事件响应器,并且当消息匹配正则表达式时响应。
|
||||
|
||||
命令匹配规则参考: `正则匹配 <rule.md#regex-regex-flags-0>`\_
|
||||
|
||||
- **参数**
|
||||
|
||||
- `pattern` (str): 正则表达式
|
||||
|
||||
- `flags` (int | re.RegexFlag): 正则匹配标志
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
## _def_ `on_type(types, rule=..., *, permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#on-type}
|
||||
|
||||
- **说明:** 注册一个事件响应器,并且当事件为指定类型时响应。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `types` (type[[Event](../adapters/index.md#Event)] | tuple[type[[Event](../adapters/index.md#Event)], ...]): 事件类型
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
## _class_ `CommandGroup(cmd, prefix_aliases=..., *, rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#CommandGroup}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `cmd` (str | tuple[str, ...])
|
||||
|
||||
- `prefix_aliases` (bool)
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None)
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None)
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None)
|
||||
|
||||
- `temp` (bool)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None)
|
||||
|
||||
- `priority` (int)
|
||||
|
||||
- `block` (bool)
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None)
|
||||
|
||||
### _method_ `command(cmd, *, rule=..., aliases=..., force_whitespace=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#CommandGroup-command}
|
||||
|
||||
- **说明:** 注册一个新的命令。新参数将会覆盖命令组默认值
|
||||
|
||||
- **参数**
|
||||
|
||||
- `cmd` (str | tuple[str, ...]): 指定命令内容
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `aliases` (set[str | tuple[str, ...]] | None): 命令别名
|
||||
|
||||
- `force_whitespace` (str | bool | None): 是否强制命令后必须有指定空白符
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
### _method_ `shell_command(cmd, *, rule=..., aliases=..., parser=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#CommandGroup-shell-command}
|
||||
|
||||
- **说明:** 注册一个新的 `shell_like` 命令。新参数将会覆盖命令组默认值
|
||||
|
||||
- **参数**
|
||||
|
||||
- `cmd` (str | tuple[str, ...]): 指定命令内容
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `aliases` (set[str | tuple[str, ...]] | None): 命令别名
|
||||
|
||||
- `parser` ([ArgumentParser](../rule.md#ArgumentParser) | None): `nonebot.rule.ArgumentParser` 对象
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
## _class_ `MatcherGroup(*, type=..., rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#MatcherGroup}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `type` (str)
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None)
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None)
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None)
|
||||
|
||||
- `temp` (bool)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None)
|
||||
|
||||
- `priority` (int)
|
||||
|
||||
- `block` (bool)
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None)
|
||||
|
||||
### _method_ `on(*, type=..., rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#MatcherGroup-on}
|
||||
|
||||
- **说明:** 注册一个基础事件响应器,可自定义类型。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `type` (str): 事件响应器类型
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
### _method_ `on_metaevent(*, rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#MatcherGroup-on-metaevent}
|
||||
|
||||
- **说明:** 注册一个元事件响应器。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
### _method_ `on_message(*, rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#MatcherGroup-on-message}
|
||||
|
||||
- **说明:** 注册一个消息事件响应器。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
### _method_ `on_notice(*, rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#MatcherGroup-on-notice}
|
||||
|
||||
- **说明:** 注册一个通知事件响应器。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
### _method_ `on_request(*, rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#MatcherGroup-on-request}
|
||||
|
||||
- **说明:** 注册一个请求事件响应器。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
### _method_ `on_startswith(msg, *, ignorecase=..., rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#MatcherGroup-on-startswith}
|
||||
|
||||
- **说明:** 注册一个消息事件响应器,并且当消息的**文本部分**以指定内容开头时响应。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `msg` (str | tuple[str, ...]): 指定消息开头内容
|
||||
|
||||
- `ignorecase` (bool): 是否忽略大小写
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
### _method_ `on_endswith(msg, *, ignorecase=..., rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#MatcherGroup-on-endswith}
|
||||
|
||||
- **说明:** 注册一个消息事件响应器,并且当消息的**文本部分**以指定内容结尾时响应。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `msg` (str | tuple[str, ...]): 指定消息结尾内容
|
||||
|
||||
- `ignorecase` (bool): 是否忽略大小写
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
### _method_ `on_fullmatch(msg, *, ignorecase=..., rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#MatcherGroup-on-fullmatch}
|
||||
|
||||
- **说明:** 注册一个消息事件响应器,并且当消息的**文本部分**与指定内容完全一致时响应。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `msg` (str | tuple[str, ...]): 指定消息全匹配内容
|
||||
|
||||
- `ignorecase` (bool): 是否忽略大小写
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
### _method_ `on_keyword(keywords, *, rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#MatcherGroup-on-keyword}
|
||||
|
||||
- **说明:** 注册一个消息事件响应器,并且当消息纯文本部分包含关键词时响应。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `keywords` (set[str]): 关键词列表
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
### _method_ `on_command(cmd, aliases=..., force_whitespace=..., *, rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#MatcherGroup-on-command}
|
||||
|
||||
- **说明**
|
||||
|
||||
注册一个消息事件响应器,并且当消息以指定命令开头时响应。
|
||||
|
||||
命令匹配规则参考: `命令形式匹配 <rule.md#command-command>`\_
|
||||
|
||||
- **参数**
|
||||
|
||||
- `cmd` (str | tuple[str, ...]): 指定命令内容
|
||||
|
||||
- `aliases` (set[str | tuple[str, ...]] | None): 命令别名
|
||||
|
||||
- `force_whitespace` (str | bool | None): 是否强制命令后必须有指定空白符
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
### _method_ `on_shell_command(cmd, aliases=..., parser=..., *, rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#MatcherGroup-on-shell-command}
|
||||
|
||||
- **说明**
|
||||
|
||||
注册一个支持 `shell_like` 解析参数的命令消息事件响应器。
|
||||
|
||||
与普通的 `on_command` 不同的是,在添加 `parser` 参数时, 响应器会自动处理消息。
|
||||
|
||||
可以通过 [ShellCommandArgv](../params.md#ShellCommandArgv) 获取原始参数列表,
|
||||
通过 [ShellCommandArgs](../params.md#ShellCommandArgs) 获取解析后的参数字典。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `cmd` (str | tuple[str, ...]): 指定命令内容
|
||||
|
||||
- `aliases` (set[str | tuple[str, ...]] | None): 命令别名
|
||||
|
||||
- `parser` ([ArgumentParser](../rule.md#ArgumentParser) | None): `nonebot.rule.ArgumentParser` 对象
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
### _method_ `on_regex(pattern, flags=..., *, rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#MatcherGroup-on-regex}
|
||||
|
||||
- **说明**
|
||||
|
||||
注册一个消息事件响应器,并且当消息匹配正则表达式时响应。
|
||||
|
||||
命令匹配规则参考: `正则匹配 <rule.md#regex-regex-flags-0>`\_
|
||||
|
||||
- **参数**
|
||||
|
||||
- `pattern` (str): 正则表达式
|
||||
|
||||
- `flags` (int | re.RegexFlag): 正则匹配标志
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
||||
|
||||
### _method_ `on_type(types, *, rule=..., permission=..., handlers=..., temp=..., expire_time=..., priority=..., block=..., state=...)` {#MatcherGroup-on-type}
|
||||
|
||||
- **说明:** 注册一个事件响应器,并且当事件为指定类型时响应。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `types` (type[[Event](../adapters/index.md#Event)] | tuple[type[[Event](../adapters/index.md#Event)]]): 事件类型
|
||||
|
||||
- `rule` ([Rule](../rule.md#Rule) | [T_RuleChecker](../typing.md#T-RuleChecker) | None): 事件响应规则
|
||||
|
||||
- `permission` ([Permission](../permission.md#Permission) | [T_PermissionChecker](../typing.md#T-PermissionChecker) | None): 事件响应权限
|
||||
|
||||
- `handlers` (list[[T\_Handler](../typing.md#T-Handler) | [Dependent](../dependencies/index.md#Dependent)[Any]] | None): 事件处理函数列表
|
||||
|
||||
- `temp` (bool): 是否为临时事件响应器(仅执行一次)
|
||||
|
||||
- `expire_time` (datetime | timedelta | None): 事件响应器最终有效时间点,过时即被删除
|
||||
|
||||
- `priority` (int): 事件响应器优先级
|
||||
|
||||
- `block` (bool): 是否阻止事件向更低优先级传递
|
||||
|
||||
- `state` ([T_State](../typing.md#T-State) | None): 默认 state
|
||||
|
||||
- **返回**
|
||||
|
||||
- type[[Matcher](../matcher.md#Matcher)]
|
404
website/versioned_docs/version-2.4.0/api/rule.md
Normal file
404
website/versioned_docs/version-2.4.0/api/rule.md
Normal file
@ -0,0 +1,404 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 5
|
||||
description: nonebot.rule 模块
|
||||
---
|
||||
|
||||
# nonebot.rule
|
||||
|
||||
本模块是 [Matcher.rule](matcher.md#Matcher-rule) 的类型定义。
|
||||
|
||||
每个[事件响应器](matcher.md#Matcher)拥有一个
|
||||
[Rule](#Rule),其中是 `RuleChecker` 的集合。
|
||||
只有当所有 `RuleChecker` 检查结果为 `True` 时继续运行。
|
||||
|
||||
## _class_ `Rule(*checkers)` {#Rule}
|
||||
|
||||
- **说明**
|
||||
|
||||
规则类。
|
||||
|
||||
当事件传递时,在 [Matcher](matcher.md#Matcher) 运行前进行检查。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*checkers` ([T_RuleChecker](typing.md#T-RuleChecker) | [Dependent](dependencies/index.md#Dependent)[bool]): RuleChecker
|
||||
|
||||
- **用法**
|
||||
|
||||
```python
|
||||
Rule(async_function) & sync_function
|
||||
# 等价于
|
||||
Rule(async_function, sync_function)
|
||||
```
|
||||
|
||||
### _instance-var_ `checkers` {#Rule-checkers}
|
||||
|
||||
- **类型:** set[[Dependent](dependencies/index.md#Dependent)[bool]]
|
||||
|
||||
- **说明:** 存储 `RuleChecker`
|
||||
|
||||
### _async method_ `__call__(bot, event, state, stack=None, dependency_cache=None)` {#Rule---call--}
|
||||
|
||||
- **说明:** 检查是否符合所有规则
|
||||
|
||||
- **参数**
|
||||
|
||||
- `bot` ([Bot](adapters/index.md#Bot)): Bot 对象
|
||||
|
||||
- `event` ([Event](adapters/index.md#Event)): Event 对象
|
||||
|
||||
- `state` ([T_State](typing.md#T-State)): 当前 State
|
||||
|
||||
- `stack` (AsyncExitStack | None): 异步上下文栈
|
||||
|
||||
- `dependency_cache` ([T_DependencyCache](typing.md#T-DependencyCache) | None): 依赖缓存
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _class_ `CMD_RESULT(<auto>)` {#CMD-RESULT}
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `TRIE_VALUE(<auto>)` {#TRIE-VALUE}
|
||||
|
||||
- **说明:** TRIE_VALUE(command_start, command)
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _class_ `StartswithRule(msg, ignorecase=False)` {#StartswithRule}
|
||||
|
||||
- **说明:** 检查消息纯文本是否以指定字符串开头。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `msg` (tuple[str, ...]): 指定消息开头字符串元组
|
||||
|
||||
- `ignorecase` (bool): 是否忽略大小写
|
||||
|
||||
## _def_ `startswith(msg, ignorecase=False)` {#startswith}
|
||||
|
||||
- **说明:** 匹配消息纯文本开头。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `msg` (str | tuple[str, ...]): 指定消息开头字符串元组
|
||||
|
||||
- `ignorecase` (bool): 是否忽略大小写
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Rule](#Rule)
|
||||
|
||||
## _class_ `EndswithRule(msg, ignorecase=False)` {#EndswithRule}
|
||||
|
||||
- **说明:** 检查消息纯文本是否以指定字符串结尾。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `msg` (tuple[str, ...]): 指定消息结尾字符串元组
|
||||
|
||||
- `ignorecase` (bool): 是否忽略大小写
|
||||
|
||||
## _def_ `endswith(msg, ignorecase=False)` {#endswith}
|
||||
|
||||
- **说明:** 匹配消息纯文本结尾。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `msg` (str | tuple[str, ...]): 指定消息开头字符串元组
|
||||
|
||||
- `ignorecase` (bool): 是否忽略大小写
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Rule](#Rule)
|
||||
|
||||
## _class_ `FullmatchRule(msg, ignorecase=False)` {#FullmatchRule}
|
||||
|
||||
- **说明:** 检查消息纯文本是否与指定字符串全匹配。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `msg` (tuple[str, ...]): 指定消息全匹配字符串元组
|
||||
|
||||
- `ignorecase` (bool): 是否忽略大小写
|
||||
|
||||
## _def_ `fullmatch(msg, ignorecase=False)` {#fullmatch}
|
||||
|
||||
- **说明:** 完全匹配消息。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `msg` (str | tuple[str, ...]): 指定消息全匹配字符串元组
|
||||
|
||||
- `ignorecase` (bool): 是否忽略大小写
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Rule](#Rule)
|
||||
|
||||
## _class_ `KeywordsRule(*keywords)` {#KeywordsRule}
|
||||
|
||||
- **说明:** 检查消息纯文本是否包含指定关键字。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*keywords` (str): 指定关键字元组
|
||||
|
||||
## _def_ `keyword(*keywords)` {#keyword}
|
||||
|
||||
- **说明:** 匹配消息纯文本关键词。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*keywords` (str): 指定关键字元组
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Rule](#Rule)
|
||||
|
||||
## _class_ `CommandRule(cmds, force_whitespace=None)` {#CommandRule}
|
||||
|
||||
- **说明:** 检查消息是否为指定命令。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `cmds` (list[tuple[str, ...]]): 指定命令元组列表
|
||||
|
||||
- `force_whitespace` (str | bool | None): 是否强制命令后必须有指定空白符
|
||||
|
||||
## _def_ `command(*cmds, force_whitespace=None)` {#command}
|
||||
|
||||
- **说明**
|
||||
|
||||
匹配消息命令。
|
||||
|
||||
根据配置里提供的 [`command_start`](config.md#Config-command-start),
|
||||
[`command_sep`](config.md#Config-command-sep) 判断消息是否为命令。
|
||||
|
||||
可以通过 [Command](params.md#Command) 获取匹配成功的命令(例: `("test",)`),
|
||||
通过 [RawCommand](params.md#RawCommand) 获取匹配成功的原始命令文本(例: `"/test"`),
|
||||
通过 [CommandArg](params.md#CommandArg) 获取匹配成功的命令参数。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*cmds` (str | tuple[str, ...]): 命令文本或命令元组
|
||||
|
||||
- `force_whitespace` (str | bool | None): 是否强制命令后必须有指定空白符
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Rule](#Rule)
|
||||
|
||||
- **用法**
|
||||
|
||||
使用默认 `command_start`, `command_sep` 配置情况下:
|
||||
|
||||
命令 `("test",)` 可以匹配: `/test` 开头的消息
|
||||
命令 `("test", "sub")` 可以匹配: `/test.sub` 开头的消息
|
||||
|
||||
:::tip 提示
|
||||
命令内容与后续消息间无需空格!
|
||||
:::
|
||||
|
||||
## _class_ `ArgumentParser(<auto>)` {#ArgumentParser}
|
||||
|
||||
- **说明**
|
||||
|
||||
`shell_like` 命令参数解析器,解析出错时不会退出程序。
|
||||
|
||||
支持 [Message](adapters/index.md#Message) 富文本解析。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
- **用法**
|
||||
|
||||
用法与 `argparse.ArgumentParser` 相同,
|
||||
参考文档: [argparse](https://docs.python.org/3/library/argparse.html)
|
||||
|
||||
### _method_ `parse_known_args(args=None, namespace=None)` {#ArgumentParser-parse-known-args}
|
||||
|
||||
- **重载**
|
||||
|
||||
**1.** `(args=None, namespace=None) -> tuple[Namespace, list[str | MessageSegment]]`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `args` (Sequence[str | [MessageSegment](adapters/index.md#MessageSegment)] | None)
|
||||
|
||||
- `namespace` (None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- tuple[Namespace, list[str | [MessageSegment](adapters/index.md#MessageSegment)]]
|
||||
|
||||
**2.** `(args, namespace) -> tuple[T, list[str | MessageSegment]]`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `args` (Sequence[str | [MessageSegment](adapters/index.md#MessageSegment)] | None)
|
||||
|
||||
- `namespace` (T)
|
||||
|
||||
- **返回**
|
||||
|
||||
- tuple[T, list[str | [MessageSegment](adapters/index.md#MessageSegment)]]
|
||||
|
||||
**3.** `(*, namespace) -> tuple[T, list[str | MessageSegment]]`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `namespace` (T)
|
||||
|
||||
- **返回**
|
||||
|
||||
- tuple[T, list[str | [MessageSegment](adapters/index.md#MessageSegment)]]
|
||||
|
||||
## _class_ `ShellCommandRule(cmds, parser)` {#ShellCommandRule}
|
||||
|
||||
- **说明:** 检查消息是否为指定 shell 命令。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `cmds` (list[tuple[str, ...]]): 指定命令元组列表
|
||||
|
||||
- `parser` (ArgumentParser | None): 可选参数解析器
|
||||
|
||||
## _def_ `shell_command(*cmds, parser=None)` {#shell-command}
|
||||
|
||||
- **说明**
|
||||
|
||||
匹配 `shell_like` 形式的消息命令。
|
||||
|
||||
根据配置里提供的 [`command_start`](config.md#Config-command-start),
|
||||
[`command_sep`](config.md#Config-command-sep) 判断消息是否为命令。
|
||||
|
||||
可以通过 [Command](params.md#Command) 获取匹配成功的命令
|
||||
(例: `("test",)`),
|
||||
通过 [RawCommand](params.md#RawCommand) 获取匹配成功的原始命令文本
|
||||
(例: `"/test"`),
|
||||
通过 [ShellCommandArgv](params.md#ShellCommandArgv) 获取解析前的参数列表
|
||||
(例: `["arg", "-h"]`),
|
||||
通过 [ShellCommandArgs](params.md#ShellCommandArgs) 获取解析后的参数字典
|
||||
(例: `{"arg": "arg", "h": True}`)。
|
||||
|
||||
:::caution 警告
|
||||
如果参数解析失败,则通过 [ShellCommandArgs](params.md#ShellCommandArgs)
|
||||
获取的将是 [ParserExit](exception.md#ParserExit) 异常。
|
||||
:::
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*cmds` (str | tuple[str, ...]): 命令文本或命令元组
|
||||
|
||||
- `parser` (ArgumentParser | None): [ArgumentParser](#ArgumentParser) 对象
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Rule](#Rule)
|
||||
|
||||
- **用法**
|
||||
|
||||
使用默认 `command_start`, `command_sep` 配置,更多示例参考
|
||||
[argparse](https://docs.python.org/3/library/argparse.html) 标准库文档。
|
||||
|
||||
```python
|
||||
from nonebot.rule import ArgumentParser
|
||||
|
||||
parser = ArgumentParser()
|
||||
parser.add_argument("-a", action="store_true")
|
||||
|
||||
rule = shell_command("ls", parser=parser)
|
||||
```
|
||||
|
||||
:::tip 提示
|
||||
命令内容与后续消息间无需空格!
|
||||
:::
|
||||
|
||||
## _class_ `RegexRule(regex, flags=0)` {#RegexRule}
|
||||
|
||||
- **说明:** 检查消息字符串是否符合指定正则表达式。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `regex` (str): 正则表达式
|
||||
|
||||
- `flags` (int): 正则表达式标记
|
||||
|
||||
## _def_ `regex(regex, flags=0)` {#regex}
|
||||
|
||||
- **说明**
|
||||
|
||||
匹配符合正则表达式的消息字符串。
|
||||
|
||||
可以通过 [RegexStr](params.md#RegexStr) 获取匹配成功的字符串,
|
||||
通过 [RegexGroup](params.md#RegexGroup) 获取匹配成功的 group 元组,
|
||||
通过 [RegexDict](params.md#RegexDict) 获取匹配成功的 group 字典。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `regex` (str): 正则表达式
|
||||
|
||||
- `flags` (int | re.RegexFlag): 正则表达式标记
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Rule](#Rule)
|
||||
|
||||
:::tip 提示
|
||||
正则表达式匹配使用 search 而非 match,如需从头匹配请使用 `r"^xxx"` 来确保匹配开头
|
||||
:::
|
||||
:::tip 提示
|
||||
正则表达式匹配使用 `EventMessage` 的 `str` 字符串,
|
||||
而非 `EventMessage` 的 `PlainText` 纯文本字符串
|
||||
:::
|
||||
|
||||
## _class_ `ToMeRule(<auto>)` {#ToMeRule}
|
||||
|
||||
- **说明:** 检查事件是否与机器人有关。
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _def_ `to_me()` {#to-me}
|
||||
|
||||
- **说明:** 匹配与机器人有关的事件。
|
||||
|
||||
- **参数**
|
||||
|
||||
empty
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Rule](#Rule)
|
||||
|
||||
## _class_ `IsTypeRule(*types)` {#IsTypeRule}
|
||||
|
||||
- **说明:** 检查事件类型是否为指定类型。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*types` (type[[Event](adapters/index.md#Event)])
|
||||
|
||||
## _def_ `is_type(*types)` {#is-type}
|
||||
|
||||
- **说明:** 匹配事件类型。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `*types` (type[[Event](adapters/index.md#Event)]): 事件类型
|
||||
|
||||
- **返回**
|
||||
|
||||
- [Rule](#Rule)
|
305
website/versioned_docs/version-2.4.0/api/typing.md
Normal file
305
website/versioned_docs/version-2.4.0/api/typing.md
Normal file
@ -0,0 +1,305 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 11
|
||||
description: nonebot.typing 模块
|
||||
---
|
||||
|
||||
# nonebot.typing
|
||||
|
||||
本模块定义了 NoneBot 模块中共享的一些类型。
|
||||
|
||||
使用 Python 的 Type Hint 语法,
|
||||
参考 [`PEP 484`](https://www.python.org/dev/peps/pep-0484/),
|
||||
[`PEP 526`](https://www.python.org/dev/peps/pep-0526/) 和
|
||||
[`typing`](https://docs.python.org/3/library/typing.html)。
|
||||
|
||||
## _def_ `overrides(InterfaceClass)` {#overrides}
|
||||
|
||||
- **说明:** 标记一个方法为父类 interface 的 implement
|
||||
|
||||
- **参数**
|
||||
|
||||
- `InterfaceClass` (object)
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
## _def_ `type_has_args(type_)` {#type-has-args}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `type_` (type[Any])
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _def_ `origin_is_union(origin)` {#origin-is-union}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `origin` (type[Any] | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _def_ `origin_is_literal(origin)` {#origin-is-literal}
|
||||
|
||||
- **说明:** 判断是否是 Literal 类型
|
||||
|
||||
- **参数**
|
||||
|
||||
- `origin` (type[Any] | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _def_ `all_literal_values(type_)` {#all-literal-values}
|
||||
|
||||
- **说明:** 获取 Literal 类型包含的所有值
|
||||
|
||||
- **参数**
|
||||
|
||||
- `type_` (type[Any])
|
||||
|
||||
- **返回**
|
||||
|
||||
- list[Any]
|
||||
|
||||
## _def_ `origin_is_annotated(origin)` {#origin-is-annotated}
|
||||
|
||||
- **说明:** 判断是否是 Annotated 类型
|
||||
|
||||
- **参数**
|
||||
|
||||
- `origin` (type[Any] | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _def_ `is_none_type(type_)` {#is-none-type}
|
||||
|
||||
- **说明:** 判断是否是 None 类型
|
||||
|
||||
- **参数**
|
||||
|
||||
- `type_` (type[Any])
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _def_ `evaluate_forwardref(ref, globalns, localns)` {#evaluate-forwardref}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `ref` (ForwardRef)
|
||||
|
||||
- `globalns` (dict[str, Any])
|
||||
|
||||
- `localns` (dict[str, Any])
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
## _class_ `StateFlag(<auto>)` {#StateFlag}
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
## _var_ `T_State` {#T-State}
|
||||
|
||||
- **类型:** dict[Any, Any]
|
||||
|
||||
- **说明:** 事件处理状态 State 类型
|
||||
|
||||
## _var_ `T_BotConnectionHook` {#T-BotConnectionHook}
|
||||
|
||||
- **类型:** \_DependentCallable[Any]
|
||||
|
||||
- **说明**
|
||||
|
||||
Bot 连接建立时钩子函数
|
||||
|
||||
依赖参数:
|
||||
|
||||
- DependParam: 子依赖参数
|
||||
- BotParam: Bot 对象
|
||||
- DefaultParam: 带有默认值的参数
|
||||
|
||||
## _var_ `T_BotDisconnectionHook` {#T-BotDisconnectionHook}
|
||||
|
||||
- **类型:** \_DependentCallable[Any]
|
||||
|
||||
- **说明**
|
||||
|
||||
Bot 连接断开时钩子函数
|
||||
|
||||
依赖参数:
|
||||
|
||||
- DependParam: 子依赖参数
|
||||
- BotParam: Bot 对象
|
||||
- DefaultParam: 带有默认值的参数
|
||||
|
||||
## _var_ `T_CallingAPIHook` {#T-CallingAPIHook}
|
||||
|
||||
- **类型:** ([Bot](adapters/index.md#Bot), str, dict[str, Any]) -> Awaitable[Any]
|
||||
|
||||
- **说明:** `bot.call_api` 钩子函数
|
||||
|
||||
## _var_ `T_CalledAPIHook` {#T-CalledAPIHook}
|
||||
|
||||
- **类型:** ([Bot](adapters/index.md#Bot), Exception | None, str, dict[str, Any], Any) -> Awaitable[Any]
|
||||
|
||||
- **说明:** `bot.call_api` 后执行的函数,参数分别为 bot, exception, api, data, result
|
||||
|
||||
## _var_ `T_EventPreProcessor` {#T-EventPreProcessor}
|
||||
|
||||
- **类型:** \_DependentCallable[Any]
|
||||
|
||||
- **说明**
|
||||
|
||||
事件预处理函数 EventPreProcessor 类型
|
||||
|
||||
依赖参数:
|
||||
|
||||
- DependParam: 子依赖参数
|
||||
- BotParam: Bot 对象
|
||||
- EventParam: Event 对象
|
||||
- StateParam: State 对象
|
||||
- DefaultParam: 带有默认值的参数
|
||||
|
||||
## _var_ `T_EventPostProcessor` {#T-EventPostProcessor}
|
||||
|
||||
- **类型:** \_DependentCallable[Any]
|
||||
|
||||
- **说明**
|
||||
|
||||
事件后处理函数 EventPostProcessor 类型
|
||||
|
||||
依赖参数:
|
||||
|
||||
- DependParam: 子依赖参数
|
||||
- BotParam: Bot 对象
|
||||
- EventParam: Event 对象
|
||||
- StateParam: State 对象
|
||||
- DefaultParam: 带有默认值的参数
|
||||
|
||||
## _var_ `T_RunPreProcessor` {#T-RunPreProcessor}
|
||||
|
||||
- **类型:** \_DependentCallable[Any]
|
||||
|
||||
- **说明**
|
||||
|
||||
事件响应器运行前预处理函数 RunPreProcessor 类型
|
||||
|
||||
依赖参数:
|
||||
|
||||
- DependParam: 子依赖参数
|
||||
- BotParam: Bot 对象
|
||||
- EventParam: Event 对象
|
||||
- StateParam: State 对象
|
||||
- MatcherParam: Matcher 对象
|
||||
- DefaultParam: 带有默认值的参数
|
||||
|
||||
## _var_ `T_RunPostProcessor` {#T-RunPostProcessor}
|
||||
|
||||
- **类型:** \_DependentCallable[Any]
|
||||
|
||||
- **说明**
|
||||
|
||||
事件响应器运行后后处理函数 RunPostProcessor 类型
|
||||
|
||||
依赖参数:
|
||||
|
||||
- DependParam: 子依赖参数
|
||||
- BotParam: Bot 对象
|
||||
- EventParam: Event 对象
|
||||
- StateParam: State 对象
|
||||
- MatcherParam: Matcher 对象
|
||||
- ExceptionParam: 异常对象(可能为 None)
|
||||
- DefaultParam: 带有默认值的参数
|
||||
|
||||
## _var_ `T_RuleChecker` {#T-RuleChecker}
|
||||
|
||||
- **类型:** \_DependentCallable[bool]
|
||||
|
||||
- **说明**
|
||||
|
||||
RuleChecker 即判断是否响应事件的处理函数。
|
||||
|
||||
依赖参数:
|
||||
|
||||
- DependParam: 子依赖参数
|
||||
- BotParam: Bot 对象
|
||||
- EventParam: Event 对象
|
||||
- StateParam: State 对象
|
||||
- DefaultParam: 带有默认值的参数
|
||||
|
||||
## _var_ `T_PermissionChecker` {#T-PermissionChecker}
|
||||
|
||||
- **类型:** \_DependentCallable[bool]
|
||||
|
||||
- **说明**
|
||||
|
||||
PermissionChecker 即判断事件是否满足权限的处理函数。
|
||||
|
||||
依赖参数:
|
||||
|
||||
- DependParam: 子依赖参数
|
||||
- BotParam: Bot 对象
|
||||
- EventParam: Event 对象
|
||||
- DefaultParam: 带有默认值的参数
|
||||
|
||||
## _var_ `T_Handler` {#T-Handler}
|
||||
|
||||
- **类型:** \_DependentCallable[Any]
|
||||
|
||||
- **说明:** Handler 处理函数。
|
||||
|
||||
## _var_ `T_TypeUpdater` {#T-TypeUpdater}
|
||||
|
||||
- **类型:** \_DependentCallable[str]
|
||||
|
||||
- **说明**
|
||||
|
||||
TypeUpdater 在 Matcher.pause, Matcher.reject 时被运行,用于更新响应的事件类型。 默认会更新为 `message`。
|
||||
|
||||
依赖参数:
|
||||
|
||||
- DependParam: 子依赖参数
|
||||
- BotParam: Bot 对象
|
||||
- EventParam: Event 对象
|
||||
- StateParam: State 对象
|
||||
- MatcherParam: Matcher 对象
|
||||
- DefaultParam: 带有默认值的参数
|
||||
|
||||
## _var_ `T_PermissionUpdater` {#T-PermissionUpdater}
|
||||
|
||||
- **类型:** \_DependentCallable[[Permission](permission.md#Permission)]
|
||||
|
||||
- **说明**
|
||||
|
||||
PermissionUpdater 在 Matcher.pause, Matcher.reject 时被运行,用于更新会话对象权限。 默认会更新为当前事件的触发对象。
|
||||
|
||||
依赖参数:
|
||||
|
||||
- DependParam: 子依赖参数
|
||||
- BotParam: Bot 对象
|
||||
- EventParam: Event 对象
|
||||
- StateParam: State 对象
|
||||
- MatcherParam: Matcher 对象
|
||||
- DefaultParam: 带有默认值的参数
|
||||
|
||||
## _var_ `T_DependencyCache` {#T-DependencyCache}
|
||||
|
||||
- **类型:** dict[\_DependentCallable[Any], DependencyCache]
|
||||
|
||||
- **说明:** 依赖缓存, 用于存储依赖函数的返回值
|
304
website/versioned_docs/version-2.4.0/api/utils.md
Normal file
304
website/versioned_docs/version-2.4.0/api/utils.md
Normal file
@ -0,0 +1,304 @@
|
||||
---
|
||||
mdx:
|
||||
format: md
|
||||
sidebar_position: 8
|
||||
description: nonebot.utils 模块
|
||||
---
|
||||
|
||||
# nonebot.utils
|
||||
|
||||
本模块包含了 NoneBot 的一些工具函数
|
||||
|
||||
## _def_ `escape_tag(s)` {#escape-tag}
|
||||
|
||||
- **说明**
|
||||
|
||||
用于记录带颜色日志时转义 `<tag>` 类型特殊标签
|
||||
|
||||
参考: [loguru color 标签](https://loguru.readthedocs.io/en/stable/api/logger.html#color)
|
||||
|
||||
- **参数**
|
||||
|
||||
- `s` (str): 需要转义的字符串
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _def_ `deep_update(mapping, *updating_mappings)` {#deep-update}
|
||||
|
||||
- **说明:** 深度更新合并字典
|
||||
|
||||
- **参数**
|
||||
|
||||
- `mapping` (dict[K, Any])
|
||||
|
||||
- `*updating_mappings` (dict[K, Any])
|
||||
|
||||
- **返回**
|
||||
|
||||
- dict[K, Any]
|
||||
|
||||
## _def_ `lenient_issubclass(cls, class_or_tuple)` {#lenient-issubclass}
|
||||
|
||||
- **说明:** 检查 cls 是否是 class_or_tuple 中的一个类型子类并忽略类型错误。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `cls` (Any)
|
||||
|
||||
- `class_or_tuple` (type[Any] | tuple[type[Any], ...])
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _def_ `generic_check_issubclass(cls, class_or_tuple)` {#generic-check-issubclass}
|
||||
|
||||
- **说明**
|
||||
|
||||
检查 cls 是否是 class_or_tuple 中的一个类型子类。
|
||||
|
||||
特别的:
|
||||
|
||||
- 如果 cls 是 `typing.Union` 或 `types.UnionType` 类型,
|
||||
则会检查其中的所有类型是否是 class_or_tuple 中一个类型的子类或 None。
|
||||
- 如果 cls 是 `typing.Literal` 类型,
|
||||
则会检查其中的所有值是否是 class_or_tuple 中一个类型的实例。
|
||||
- 如果 cls 是 `typing.TypeVar` 类型,
|
||||
则会检查其 `__bound__` 或 `__constraints__`
|
||||
是否是 class_or_tuple 中一个类型的子类或 None。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `cls` (Any)
|
||||
|
||||
- `class_or_tuple` (type[Any] | tuple[type[Any], ...])
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _def_ `type_is_complex(type_)` {#type-is-complex}
|
||||
|
||||
- **说明:** 检查 type\_ 是否是复杂类型
|
||||
|
||||
- **参数**
|
||||
|
||||
- `type_` (type[Any])
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _def_ `is_coroutine_callable(call)` {#is-coroutine-callable}
|
||||
|
||||
- **说明:** 检查 call 是否是一个 callable 协程函数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `call` ((...) -> Any)
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _def_ `is_gen_callable(call)` {#is-gen-callable}
|
||||
|
||||
- **说明:** 检查 call 是否是一个生成器函数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `call` ((...) -> Any)
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _def_ `is_async_gen_callable(call)` {#is-async-gen-callable}
|
||||
|
||||
- **说明:** 检查 call 是否是一个异步生成器函数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `call` ((...) -> Any)
|
||||
|
||||
- **返回**
|
||||
|
||||
- bool
|
||||
|
||||
## _def_ `run_sync(call)` {#run-sync}
|
||||
|
||||
- **说明:** 一个用于包装 sync function 为 async function 的装饰器
|
||||
|
||||
- **参数**
|
||||
|
||||
- `call` ((P) -> R): 被装饰的同步函数
|
||||
|
||||
- **返回**
|
||||
|
||||
- (P) -> Coroutine[None, None, R]
|
||||
|
||||
## _def_ `run_sync_ctx_manager(cm)` {#run-sync-ctx-manager}
|
||||
|
||||
- **说明:** 一个用于包装 sync context manager 为 async context manager 的执行函数
|
||||
|
||||
- **参数**
|
||||
|
||||
- `cm` (AbstractContextManager[T])
|
||||
|
||||
- **返回**
|
||||
|
||||
- AsyncGenerator[T, None]
|
||||
|
||||
## _async def_ `run_coro_with_catch(coro, exc, return_on_err=None)` {#run-coro-with-catch}
|
||||
|
||||
- **说明:** 运行协程并当遇到指定异常时返回指定值。
|
||||
|
||||
- **重载**
|
||||
|
||||
**1.** `(coro, exc, return_on_err=None) -> T | None`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `coro` (Coroutine[Any, Any, T])
|
||||
|
||||
- `exc` (tuple[type[Exception], ...])
|
||||
|
||||
- `return_on_err` (None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- T | None
|
||||
|
||||
**2.** `(coro, exc, return_on_err) -> T | R`
|
||||
|
||||
- **参数**
|
||||
|
||||
- `coro` (Coroutine[Any, Any, T])
|
||||
|
||||
- `exc` (tuple[type[Exception], ...])
|
||||
|
||||
- `return_on_err` (R)
|
||||
|
||||
- **返回**
|
||||
|
||||
- T | R
|
||||
|
||||
- **参数**
|
||||
|
||||
- `coro`: 要运行的协程
|
||||
|
||||
- `exc`: 要捕获的异常
|
||||
|
||||
- `return_on_err`: 当发生异常时返回的值
|
||||
|
||||
- **返回**
|
||||
|
||||
协程的返回值或发生异常时的指定值
|
||||
|
||||
## _async def_ `run_coro_with_shield(coro)` {#run-coro-with-shield}
|
||||
|
||||
- **说明:** 运行协程并在取消时屏蔽取消异常。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `coro` (Coroutine[Any, Any, T]): 要运行的协程
|
||||
|
||||
- **返回**
|
||||
|
||||
- T: 协程的返回值
|
||||
|
||||
## _def_ `flatten_exception_group(exc_group)` {#flatten-exception-group}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `exc_group` (BaseExceptionGroup[E])
|
||||
|
||||
- **返回**
|
||||
|
||||
- Generator[E, None, None]
|
||||
|
||||
## _def_ `get_name(obj)` {#get-name}
|
||||
|
||||
- **说明:** 获取对象的名称
|
||||
|
||||
- **参数**
|
||||
|
||||
- `obj` (Any)
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _def_ `path_to_module_name(path)` {#path-to-module-name}
|
||||
|
||||
- **说明:** 转换路径为模块名
|
||||
|
||||
- **参数**
|
||||
|
||||
- `path` (Path)
|
||||
|
||||
- **返回**
|
||||
|
||||
- str
|
||||
|
||||
## _def_ `resolve_dot_notation(obj_str, default_attr, default_prefix=None)` {#resolve-dot-notation}
|
||||
|
||||
- **说明:** 解析并导入点分表示法的对象
|
||||
|
||||
- **参数**
|
||||
|
||||
- `obj_str` (str)
|
||||
|
||||
- `default_attr` (str)
|
||||
|
||||
- `default_prefix` (str | None)
|
||||
|
||||
- **返回**
|
||||
|
||||
- Any
|
||||
|
||||
## _class_ `classproperty(func)` {#classproperty}
|
||||
|
||||
- **说明:** 类属性装饰器
|
||||
|
||||
- **参数**
|
||||
|
||||
- `func` ((Any) -> T)
|
||||
|
||||
## _class_ `DataclassEncoder(<auto>)` {#DataclassEncoder}
|
||||
|
||||
- **说明:** 可以序列化 [Message](adapters/index.md#Message)(List[Dataclass]) 的 `JSONEncoder`
|
||||
|
||||
- **参数**
|
||||
|
||||
auto
|
||||
|
||||
### _method_ `default(o)` {#DataclassEncoder-default}
|
||||
|
||||
- **参数**
|
||||
|
||||
- `o`
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped
|
||||
|
||||
## _def_ `logger_wrapper(logger_name)` {#logger-wrapper}
|
||||
|
||||
- **说明:** 用于打印 adapter 的日志。
|
||||
|
||||
- **参数**
|
||||
|
||||
- `logger_name` (str): adapter 的名称
|
||||
|
||||
- **返回**
|
||||
|
||||
- untyped: 日志记录函数
|
||||
|
||||
日志记录函数的参数:
|
||||
|
||||
- level: 日志等级
|
||||
- message: 日志信息
|
||||
- exception: 异常信息
|
Reference in New Issue
Block a user