mirror of
				https://github.com/nonebot/nonebot2.git
				synced 2025-10-31 06:56:39 +00:00 
			
		
		
		
	📝 archive docs
This commit is contained in:
		
							
								
								
									
										58
									
								
								archive/2.0.0a10/api/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								archive/2.0.0a10/api/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| # NoneBot Api Reference | ||||
|  | ||||
|  | ||||
| * **模块索引** | ||||
|  | ||||
|      | ||||
|     * [nonebot](nonebot.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.config](config.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.plugin](plugin.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.message](message.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.matcher](matcher.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.rule](rule.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.permission](permission.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.log](log.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.utils](utils.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.typing](typing.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.exception](exception.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.drivers](drivers/) | ||||
|  | ||||
|  | ||||
|     * [nonebot.drivers.fastapi](drivers/fastapi.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.drivers.quart](drivers/quart.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.adapters](adapters/) | ||||
|  | ||||
|  | ||||
|     * [nonebot.adapters.cqhttp](adapters/cqhttp.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.adapters.ding](adapters/ding.html) | ||||
|  | ||||
|  | ||||
|     * [nonebot.adapters.mirai](adapters/mirai.html) | ||||
							
								
								
									
										426
									
								
								archive/2.0.0a10/api/adapters/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										426
									
								
								archive/2.0.0a10/api/adapters/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,426 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.adapters 模块 | ||||
|  | ||||
| ## 协议适配基类 | ||||
|  | ||||
| 各协议请继承以下基类,并使用 `driver.register_adapter` 注册适配器 | ||||
|  | ||||
|  | ||||
| ## _class_ `Bot` | ||||
|  | ||||
| 基类:`abc.ABC` | ||||
|  | ||||
| Bot 基类。用于处理上报消息,并提供 API 调用接口。 | ||||
|  | ||||
|  | ||||
| ### `driver` | ||||
|  | ||||
| Driver 对象 | ||||
|  | ||||
|  | ||||
| ### `config` | ||||
|  | ||||
| Config 配置对象 | ||||
|  | ||||
|  | ||||
| ### _abstract_ `__init__(connection_type, self_id, *, websocket=None)` | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `connection_type: str`: http 或者 websocket | ||||
|  | ||||
|  | ||||
|     * `self_id: str`: 机器人 ID | ||||
|  | ||||
|  | ||||
|     * `websocket: Optional[WebSocket]`: Websocket 连接对象 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `connection_type` | ||||
|  | ||||
| 连接类型 | ||||
|  | ||||
|  | ||||
| ### `self_id` | ||||
|  | ||||
| 机器人 ID | ||||
|  | ||||
|  | ||||
| ### `websocket` | ||||
|  | ||||
| Websocket 连接对象 | ||||
|  | ||||
|  | ||||
| ### _abstract property_ `type` | ||||
|  | ||||
| Adapter 类型 | ||||
|  | ||||
|  | ||||
| ### _classmethod_ `register(driver, config)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     register 方法会在 driver.register_adapter 时被调用,用于初始化相关配置 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _abstract async classmethod_ `check_permission(driver, connection_type, headers, body)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     检查连接请求是否合法的函数,如果合法则返回当前连接 `唯一标识符`,通常为机器人 ID;如果不合法则抛出 `RequestDenied` 异常。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `driver: Driver`: Driver 对象 | ||||
|  | ||||
|  | ||||
|     * `connection_type: str`: 连接类型 | ||||
|  | ||||
|  | ||||
|     * `headers: dict`: 请求头 | ||||
|  | ||||
|  | ||||
|     * `body: Optional[dict]`: 请求数据,WebSocket 连接该部分为空 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `str`: 连接唯一标识符 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **异常** | ||||
|  | ||||
|      | ||||
|     * `RequestDenied`: 请求非法 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _abstract async_ `handle_message(message)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     处理上报消息的函数,转换为 `Event` 事件后调用 `nonebot.message.handle_event` 进一步处理事件。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `message: dict`: 收到的上报消息 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _abstract async_ `call_api(api, **data)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     调用机器人 API 接口,可以通过该函数或直接通过 bot 属性进行调用 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `api: str`: API 名称 | ||||
|  | ||||
|  | ||||
|     * `**data`: API 数据 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **示例** | ||||
|  | ||||
|  | ||||
| ```python | ||||
| await bot.call_api("send_msg", message="hello world") | ||||
| await bot.send_msg(message="hello world") | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ### _abstract async_ `send(event, message, **kwargs)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     调用机器人基础发送消息接口 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `event: Event`: 上报事件 | ||||
|  | ||||
|  | ||||
|     * `message: Union[str, Message, MessageSegment]`: 要发送的消息 | ||||
|  | ||||
|  | ||||
|     * `**kwargs` | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _class_ `MessageSegment` | ||||
|  | ||||
| 基类:`abc.ABC` | ||||
|  | ||||
| 消息段基类 | ||||
|  | ||||
|  | ||||
| ### `type` | ||||
|  | ||||
|  | ||||
| * 类型: `str` | ||||
|  | ||||
|  | ||||
| * 说明: 消息段类型 | ||||
|  | ||||
|  | ||||
| ### `data` | ||||
|  | ||||
|  | ||||
| * 类型: `Dict[str, Union[str, list]]` | ||||
|  | ||||
|  | ||||
| * 说明: 消息段数据 | ||||
|  | ||||
|  | ||||
| ## _class_ `Message` | ||||
|  | ||||
| 基类:`list`, `abc.ABC` | ||||
|  | ||||
| 消息数组 | ||||
|  | ||||
|  | ||||
| ### `__init__(message=None, *args, **kwargs)` | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `message: Union[str, list, dict, MessageSegment, Message, Any]`: 消息内容 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `append(obj)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     添加一个消息段到消息数组末尾 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `obj: Union[str, MessageSegment]`: 要添加的消息段 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `extend(obj)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     拼接一个消息数组或多个消息段到消息数组末尾 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `obj: Union[Message, Iterable[MessageSegment]]`: 要添加的消息数组 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `reduce()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     缩减消息数组,即按 MessageSegment 的实现拼接相邻消息段 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `extract_plain_text()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     提取消息内纯文本消息 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _class_ `Event` | ||||
|  | ||||
| 基类:`abc.ABC`, `pydantic.main.BaseModel` | ||||
|  | ||||
| Event 基类。提供获取关键信息的方法,其余信息可直接获取。 | ||||
|  | ||||
|  | ||||
| ### _abstract_ `get_type()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     获取事件类型的方法,类型通常为 NoneBot 内置的四种类型。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `Literal["message", "notice", "request", "meta_event"]` | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _abstract_ `get_event_name()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     获取事件名称的方法。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `str` | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _abstract_ `get_event_description()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     获取事件描述的方法,通常为事件具体内容。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `str` | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `get_log_string()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     获取事件日志信息的方法,通常你不需要修改这个方法,只有当希望 NoneBot 隐藏该事件日志时,可以抛出 `NoLogException` 异常。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `str` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **异常** | ||||
|  | ||||
|      | ||||
|     * `NoLogException` | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _abstract_ `get_user_id()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     获取事件主体 id 的方法,通常是用户 id 。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `str` | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _abstract_ `get_session_id()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     获取会话 id 的方法,用于判断当前事件属于哪一个会话,通常是用户 id、群组 id 组合。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `str` | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _abstract_ `get_message()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     获取事件消息内容的方法。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `Message` | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `get_plaintext()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     获取消息纯文本的方法,通常不需要修改,默认通过 `get_message().extract_plain_text` 获取。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `str` | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _abstract_ `is_tome()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     获取事件是否与机器人有关的方法。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `bool` | ||||
							
								
								
									
										581
									
								
								archive/2.0.0a10/api/adapters/cqhttp.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										581
									
								
								archive/2.0.0a10/api/adapters/cqhttp.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,581 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.adapters.cqhttp 模块 | ||||
|  | ||||
| ## CQHTTP (OneBot) v11 协议适配 | ||||
|  | ||||
| 协议详情请看: [CQHTTP](https://github.com/howmanybots/onebot/blob/master/README.md) | [OneBot](https://github.com/howmanybots/onebot/blob/master/README.md) | ||||
|  | ||||
| # NoneBot.adapters.cqhttp.config 模块 | ||||
|  | ||||
|  | ||||
| ## _class_ `Config` | ||||
|  | ||||
| CQHTTP 配置类 | ||||
|  | ||||
|  | ||||
| * **配置项** | ||||
|  | ||||
|      | ||||
|     * `access_token` / `cqhttp_access_token`: CQHTTP 协议授权令牌 | ||||
|  | ||||
|  | ||||
|     * `secret` / `cqhttp_secret`: CQHTTP HTTP 上报数据签名口令 | ||||
|  | ||||
|  | ||||
| # NoneBot.adapters.cqhttp.utils 模块 | ||||
|  | ||||
|  | ||||
| ## `escape(s, *, escape_comma=True)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     对字符串进行 CQ 码转义。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `s: str`: 需要转义的字符串 | ||||
|  | ||||
|  | ||||
|     * `escape_comma: bool`: 是否转义逗号(`,`)。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `unescape(s)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     对字符串进行 CQ 码去转义。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `s: str`: 需要转义的字符串 | ||||
|  | ||||
|  | ||||
| # NoneBot.adapters.cqhttp.exception 模块 | ||||
|  | ||||
|  | ||||
| ## _exception_ `ActionFailed` | ||||
|  | ||||
| 基类:[`nonebot.exception.ActionFailed`](../exception.md#nonebot.exception.ActionFailed), `nonebot.adapters.cqhttp.exception.CQHTTPAdapterException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     API 请求返回错误信息。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `retcode: Optional[int]`: 错误码 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `NetworkError` | ||||
|  | ||||
| 基类:[`nonebot.exception.NetworkError`](../exception.md#nonebot.exception.NetworkError), `nonebot.adapters.cqhttp.exception.CQHTTPAdapterException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     网络错误。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `retcode: Optional[int]`: 错误码 | ||||
|  | ||||
|  | ||||
| # NoneBot.adapters.cqhttp.bot 模块 | ||||
|  | ||||
|  | ||||
| ## _async_ `_check_reply(bot, event)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     检查消息中存在的回复,去除并赋值 `event.reply`, `event.to_me` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `bot: Bot`: Bot 对象 | ||||
|  | ||||
|  | ||||
|     * `event: Event`: Event 对象 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `_check_at_me(bot, event)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     检查消息开头或结尾是否存在 @机器人,去除并赋值 `event.to_me` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `bot: Bot`: Bot 对象 | ||||
|  | ||||
|  | ||||
|     * `event: Event`: Event 对象 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `_check_nickname(bot, event)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     检查消息开头是否存在,去除并赋值 `event.to_me` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `bot: Bot`: Bot 对象 | ||||
|  | ||||
|  | ||||
|     * `event: Event`: Event 对象 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `_handle_api_result(result)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     处理 API 请求返回值。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `result: Optional[Dict[str, Any]]`: API 返回数据 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `Any`: API 调用返回数据 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **异常** | ||||
|  | ||||
|      | ||||
|     * `ActionFailed`: API 调用失败 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _class_ `Bot` | ||||
|  | ||||
| 基类:[`nonebot.adapters.Bot`](README.md#nonebot.adapters.Bot) | ||||
|  | ||||
| CQHTTP 协议 Bot 适配。继承属性参考 [BaseBot](./#class-basebot) 。 | ||||
|  | ||||
|  | ||||
| ### _property_ `type` | ||||
|  | ||||
|  | ||||
| * 返回: `"cqhttp"` | ||||
|  | ||||
|  | ||||
| ### _async classmethod_ `check_permission(driver, connection_type, headers, body)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     CQHTTP (OneBot) 协议鉴权。参考 [鉴权](https://github.com/howmanybots/onebot/blob/master/v11/specs/communication/authorization.md) | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _async_ `handle_message(message)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     调用 [_check_reply](#async-check-reply-bot-event), [_check_at_me](#check-at-me-bot-event), [_check_nickname](#check-nickname-bot-event) 处理事件并转换为 [Event](#class-event) | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _async_ `call_api(api, **data)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     调用 CQHTTP 协议 API | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `api: str`: API 名称 | ||||
|  | ||||
|  | ||||
|     * `**data: Any`: API 参数 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `Any`: API 调用返回数据 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **异常** | ||||
|  | ||||
|      | ||||
|     * `NetworkError`: 网络错误 | ||||
|  | ||||
|  | ||||
|     * `ActionFailed`: API 调用失败 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _async_ `send(event, message, at_sender=False, **kwargs)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     根据 `event`  向触发事件的主体发送消息。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `event: Event`: Event 对象 | ||||
|  | ||||
|  | ||||
|     * `message: Union[str, Message, MessageSegment]`: 要发送的消息 | ||||
|  | ||||
|  | ||||
|     * `at_sender: bool`: 是否 @ 事件主体 | ||||
|  | ||||
|  | ||||
|     * `**kwargs`: 覆盖默认参数 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `Any`: API 调用返回数据 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **异常** | ||||
|  | ||||
|      | ||||
|     * `ValueError`: 缺少 `user_id`, `group_id` | ||||
|  | ||||
|  | ||||
|     * `NetworkError`: 网络错误 | ||||
|  | ||||
|  | ||||
|     * `ActionFailed`: API 调用失败 | ||||
|  | ||||
|  | ||||
| # NoneBot.adapters.cqhttp.message 模块 | ||||
|  | ||||
|  | ||||
| ## _class_ `MessageSegment` | ||||
|  | ||||
| 基类:[`nonebot.adapters.MessageSegment`](README.md#nonebot.adapters.MessageSegment) | ||||
|  | ||||
| CQHTTP 协议 MessageSegment 适配。具体方法参考协议消息段类型或源码。 | ||||
|  | ||||
|  | ||||
| ## _class_ `Message` | ||||
|  | ||||
| 基类:[`nonebot.adapters.Message`](README.md#nonebot.adapters.Message) | ||||
|  | ||||
| CQHTTP 协议 Message 适配。 | ||||
|  | ||||
| # NoneBot.adapters.cqhttp.permission 模块 | ||||
|  | ||||
|  | ||||
| ## `PRIVATE` | ||||
|  | ||||
|  | ||||
| * **说明**: 匹配任意私聊消息类型事件 | ||||
|  | ||||
|  | ||||
| ## `PRIVATE_FRIEND` | ||||
|  | ||||
|  | ||||
| * **说明**: 匹配任意好友私聊消息类型事件 | ||||
|  | ||||
|  | ||||
| ## `PRIVATE_GROUP` | ||||
|  | ||||
|  | ||||
| * **说明**: 匹配任意群临时私聊消息类型事件 | ||||
|  | ||||
|  | ||||
| ## `PRIVATE_OTHER` | ||||
|  | ||||
|  | ||||
| * **说明**: 匹配任意其他私聊消息类型事件 | ||||
|  | ||||
|  | ||||
| ## `GROUP` | ||||
|  | ||||
|  | ||||
| * **说明**: 匹配任意群聊消息类型事件 | ||||
|  | ||||
|  | ||||
| ## `GROUP_MEMBER` | ||||
|  | ||||
|  | ||||
| * **说明**: 匹配任意群员群聊消息类型事件 | ||||
|  | ||||
| :::warning 警告 | ||||
| 该权限通过 event.sender 进行判断且不包含管理员以及群主! | ||||
| ::: | ||||
|  | ||||
|  | ||||
| ## `GROUP_ADMIN` | ||||
|  | ||||
|  | ||||
| * **说明**: 匹配任意群管理员群聊消息类型事件 | ||||
|  | ||||
|  | ||||
| ## `GROUP_OWNER` | ||||
|  | ||||
|  | ||||
| * **说明**: 匹配任意群主群聊消息类型事件 | ||||
|  | ||||
| # NoneBot.adapters.cqhttp.event 模块 | ||||
|  | ||||
|  | ||||
| ## _class_ `Event` | ||||
|  | ||||
| 基类:[`nonebot.adapters.Event`](README.md#nonebot.adapters.Event) | ||||
|  | ||||
| CQHTTP 协议事件,字段与 CQHTTP 一致。各事件字段参考 [CQHTTP 文档](https://github.com/howmanybots/onebot/blob/master/README.md) | ||||
|  | ||||
|  | ||||
| ## _class_ `MessageEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.Event` | ||||
|  | ||||
| 消息事件 | ||||
|  | ||||
|  | ||||
| ### `to_me` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     消息是否与机器人有关 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `bool` | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `reply` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     消息中提取的回复消息,内容为 `get_msg` API 返回结果 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Optional[Reply]` | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _class_ `PrivateMessageEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.MessageEvent` | ||||
|  | ||||
| 私聊消息 | ||||
|  | ||||
|  | ||||
| ## _class_ `GroupMessageEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.MessageEvent` | ||||
|  | ||||
| 群消息 | ||||
|  | ||||
|  | ||||
| ## _class_ `NoticeEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.Event` | ||||
|  | ||||
| 通知事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `GroupUploadNoticeEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.NoticeEvent` | ||||
|  | ||||
| 群文件上传事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `GroupAdminNoticeEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.NoticeEvent` | ||||
|  | ||||
| 群管理员变动 | ||||
|  | ||||
|  | ||||
| ## _class_ `GroupDecreaseNoticeEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.NoticeEvent` | ||||
|  | ||||
| 群成员减少事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `GroupIncreaseNoticeEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.NoticeEvent` | ||||
|  | ||||
| 群成员增加事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `GroupBanNoticeEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.NoticeEvent` | ||||
|  | ||||
| 群禁言事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `FriendAddNoticeEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.NoticeEvent` | ||||
|  | ||||
| 好友添加事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `GroupRecallNoticeEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.NoticeEvent` | ||||
|  | ||||
| 群消息撤回事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `FriendRecallNoticeEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.NoticeEvent` | ||||
|  | ||||
| 好友消息撤回事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `NotifyEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.NoticeEvent` | ||||
|  | ||||
| 提醒事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `PokeNotifyEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.NotifyEvent` | ||||
|  | ||||
| 戳一戳提醒事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `LuckyKingNotifyEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.NotifyEvent` | ||||
|  | ||||
| 群红包运气王提醒事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `HonorNotifyEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.NotifyEvent` | ||||
|  | ||||
| 群荣誉变更提醒事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `RequestEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.Event` | ||||
|  | ||||
| 请求事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `FriendRequestEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.RequestEvent` | ||||
|  | ||||
| 加好友请求事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `GroupRequestEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.RequestEvent` | ||||
|  | ||||
| 加群请求/邀请事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `MetaEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.Event` | ||||
|  | ||||
| 元事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `LifecycleMetaEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.MetaEvent` | ||||
|  | ||||
| 生命周期元事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `HeartbeatMetaEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.cqhttp.event.MetaEvent` | ||||
|  | ||||
| 心跳元事件 | ||||
|  | ||||
|  | ||||
| ## `get_event_model(event_name)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     根据事件名获取对应 `Event Model` 及 `FallBack Event Model` 列表 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `List[Type[Event]]` | ||||
							
								
								
									
										325
									
								
								archive/2.0.0a10/api/adapters/ding.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										325
									
								
								archive/2.0.0a10/api/adapters/ding.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,325 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.adapters.ding 模块 | ||||
|  | ||||
| ## 钉钉群机器人 协议适配 | ||||
|  | ||||
| 协议详情请看: [钉钉文档](https://ding-doc.dingtalk.com/document#/org-dev-guide/elzz1p) | ||||
|  | ||||
| # NoneBot.adapters.ding.config 模块 | ||||
|  | ||||
|  | ||||
| ## _class_ `Config` | ||||
|  | ||||
| 钉钉配置类 | ||||
|  | ||||
|  | ||||
| * **配置项** | ||||
|  | ||||
|      | ||||
|     * `access_token` / `ding_access_token`: 钉钉令牌 | ||||
|  | ||||
|  | ||||
|     * `secret` / `ding_secret`: 钉钉 HTTP 上报数据签名口令 | ||||
|  | ||||
|  | ||||
| # NoneBot.adapters.ding.exception 模块 | ||||
|  | ||||
|  | ||||
| ## _exception_ `DingAdapterException` | ||||
|  | ||||
| 基类:[`nonebot.exception.AdapterException`](../exception.md#nonebot.exception.AdapterException) | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     钉钉 Adapter 错误基类 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `ActionFailed` | ||||
|  | ||||
| 基类:[`nonebot.exception.ActionFailed`](../exception.md#nonebot.exception.ActionFailed), `nonebot.adapters.ding.exception.DingAdapterException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     API 请求返回错误信息。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `errcode: Optional[int]`: 错误码 | ||||
|  | ||||
|  | ||||
|     * `errmsg: Optional[str]`: 错误信息 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `NetworkError` | ||||
|  | ||||
| 基类:[`nonebot.exception.NetworkError`](../exception.md#nonebot.exception.NetworkError), `nonebot.adapters.ding.exception.DingAdapterException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     网络错误。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `retcode: Optional[int]`: 错误码 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `SessionExpired` | ||||
|  | ||||
| 基类:`nonebot.adapters.ding.exception.ApiNotAvailable`, `nonebot.adapters.ding.exception.DingAdapterException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     发消息的 session 已经过期。 | ||||
|  | ||||
|  | ||||
| # NoneBot.adapters.ding.bot 模块 | ||||
|  | ||||
|  | ||||
| ## _class_ `Bot` | ||||
|  | ||||
| 基类:[`nonebot.adapters.Bot`](README.md#nonebot.adapters.Bot) | ||||
|  | ||||
| 钉钉 协议 Bot 适配。继承属性参考 [BaseBot](./#class-basebot) 。 | ||||
|  | ||||
|  | ||||
| ### _property_ `type` | ||||
|  | ||||
|  | ||||
| * 返回: `"ding"` | ||||
|  | ||||
|  | ||||
| ### _async classmethod_ `check_permission(driver, connection_type, headers, body)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     钉钉协议鉴权。参考 [鉴权](https://ding-doc.dingtalk.com/doc#/serverapi2/elzz1p) | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _async_ `call_api(api, event=None, **data)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     调用 钉钉 协议 API | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `api: str`: API 名称 | ||||
|  | ||||
|  | ||||
|     * `**data: Any`: API 参数 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `Any`: API 调用返回数据 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **异常** | ||||
|  | ||||
|      | ||||
|     * `NetworkError`: 网络错误 | ||||
|  | ||||
|  | ||||
|     * `ActionFailed`: API 调用失败 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _async_ `send(event, message, at_sender=False, **kwargs)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     根据 `event`  向触发事件的主体发送消息。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `event: Event`: Event 对象 | ||||
|  | ||||
|  | ||||
|     * `message: Union[str, Message, MessageSegment]`: 要发送的消息 | ||||
|  | ||||
|  | ||||
|     * `at_sender: bool`: 是否 @ 事件主体 | ||||
|  | ||||
|  | ||||
|     * `**kwargs`: 覆盖默认参数 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `Any`: API 调用返回数据 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **异常** | ||||
|  | ||||
|      | ||||
|     * `ValueError`: 缺少 `user_id`, `group_id` | ||||
|  | ||||
|  | ||||
|     * `NetworkError`: 网络错误 | ||||
|  | ||||
|  | ||||
|     * `ActionFailed`: API 调用失败 | ||||
|  | ||||
|  | ||||
| # NoneBot.adapters.ding.message 模块 | ||||
|  | ||||
|  | ||||
| ## _class_ `MessageSegment` | ||||
|  | ||||
| 基类:[`nonebot.adapters.MessageSegment`](README.md#nonebot.adapters.MessageSegment) | ||||
|  | ||||
| 钉钉 协议 MessageSegment 适配。具体方法参考协议消息段类型或源码。 | ||||
|  | ||||
|  | ||||
| ### _static_ `atAll()` | ||||
|  | ||||
| @全体 | ||||
|  | ||||
|  | ||||
| ### _static_ `atMobiles(*mobileNumber)` | ||||
|  | ||||
| @指定手机号人员 | ||||
|  | ||||
|  | ||||
| ### _static_ `atDingtalkIds(*dingtalkIds)` | ||||
|  | ||||
| @指定 id,@ 默认会在消息段末尾。 | ||||
| 所以你可以在消息中使用 @{senderId} 占位,发送出去之后 @ 就会出现在占位的位置: | ||||
| ``python | ||||
| message = MessageSegment.text(f"@{event.senderId},你好") | ||||
| message += MessageSegment.atDingtalkIds(event.senderId) | ||||
| `` | ||||
|  | ||||
|  | ||||
| ### _static_ `text(text)` | ||||
|  | ||||
| 发送 `text` 类型消息 | ||||
|  | ||||
|  | ||||
| ### _static_ `image(picURL)` | ||||
|  | ||||
| 发送 `image` 类型消息 | ||||
|  | ||||
|  | ||||
| ### _static_ `extension(dict_)` | ||||
|  | ||||
| "标记 text 文本的 extension 属性,需要与 text 消息段相加。 | ||||
|  | ||||
|  | ||||
| ### _static_ `code(code_language, code)` | ||||
|  | ||||
| "发送 code 消息段 | ||||
|  | ||||
|  | ||||
| ### _static_ `markdown(title, text)` | ||||
|  | ||||
| 发送 `markdown` 类型消息 | ||||
|  | ||||
|  | ||||
| ### _static_ `actionCardSingleBtn(title, text, singleTitle, singleURL)` | ||||
|  | ||||
| 发送 `actionCardSingleBtn` 类型消息 | ||||
|  | ||||
|  | ||||
| ### _static_ `actionCardMultiBtns(title, text, btns, hideAvatar=False, btnOrientation='1')` | ||||
|  | ||||
| 发送 `actionCardMultiBtn` 类型消息 | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `btnOrientation`: 0:按钮竖直排列 1:按钮横向排列 | ||||
|  | ||||
|  | ||||
|     * `btns`: [{ "title": title, "actionURL": actionURL }, ...] | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _static_ `feedCard(links)` | ||||
|  | ||||
| 发送 `feedCard` 类型消息 | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `links`: [{ "title": xxx, "messageURL": xxx, "picURL": xxx }, ...] | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _class_ `Message` | ||||
|  | ||||
| 基类:[`nonebot.adapters.Message`](README.md#nonebot.adapters.Message) | ||||
|  | ||||
| 钉钉 协议 Message 适配。 | ||||
|  | ||||
| # NoneBot.adapters.ding.event 模块 | ||||
|  | ||||
|  | ||||
| ## _class_ `Event` | ||||
|  | ||||
| 基类:[`nonebot.adapters.Event`](README.md#nonebot.adapters.Event) | ||||
|  | ||||
| 钉钉协议事件。各事件字段参考 [钉钉文档](https://ding-doc.dingtalk.com/document#/org-dev-guide/elzz1p) | ||||
|  | ||||
|  | ||||
| ## _class_ `ConversationType` | ||||
|  | ||||
| 基类:`str`, `enum.Enum` | ||||
|  | ||||
| An enumeration. | ||||
|  | ||||
|  | ||||
| ## _class_ `MessageEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.ding.event.Event` | ||||
|  | ||||
| 消息事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `PrivateMessageEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.ding.event.MessageEvent` | ||||
|  | ||||
| 私聊消息事件 | ||||
|  | ||||
|  | ||||
| ## _class_ `GroupMessageEvent` | ||||
|  | ||||
| 基类:`nonebot.adapters.ding.event.MessageEvent` | ||||
|  | ||||
| 群消息事件 | ||||
							
								
								
									
										1917
									
								
								archive/2.0.0a10/api/adapters/mirai.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1917
									
								
								archive/2.0.0a10/api/adapters/mirai.md
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										285
									
								
								archive/2.0.0a10/api/config.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										285
									
								
								archive/2.0.0a10/api/config.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,285 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.config 模块 | ||||
|  | ||||
| ## 配置 | ||||
|  | ||||
| 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` | ||||
|  | ||||
| 基类:`nonebot.config.BaseConfig` | ||||
|  | ||||
| 运行环境配置。大小写不敏感。 | ||||
|  | ||||
| 将会从 `nonebot.init 参数` > `环境变量` > `.env 环境配置文件` 的优先级读取配置。 | ||||
|  | ||||
|  | ||||
| ### `environment` | ||||
|  | ||||
|  | ||||
| * **类型**: `str` | ||||
|  | ||||
|  | ||||
| * **默认值**: `"prod"` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     当前环境名。 NoneBot 将从 `.env.{environment}` 文件中加载配置。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _class_ `Config` | ||||
|  | ||||
| 基类:`nonebot.config.BaseConfig` | ||||
|  | ||||
| NoneBot 主要配置。大小写不敏感。 | ||||
|  | ||||
| 除了 NoneBot 的配置项外,还可以自行添加配置项到 `.env.{environment}` 文件中。 | ||||
| 这些配置将会在 json 反序列化后一起带入 `Config` 类中。 | ||||
|  | ||||
|  | ||||
| ### `driver` | ||||
|  | ||||
|  | ||||
| * **类型**: `str` | ||||
|  | ||||
|  | ||||
| * **默认值**: `"nonebot.drivers.fastapi"` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     NoneBot 运行所使用的 `Driver` 。继承自 `nonebot.driver.BaseDriver` 。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `host` | ||||
|  | ||||
|  | ||||
| * **类型**: `IPvAnyAddress` | ||||
|  | ||||
|  | ||||
| * **默认值**: `127.0.0.1` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     NoneBot 的 HTTP 和 WebSocket 服务端监听的 IP/主机名。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `port` | ||||
|  | ||||
|  | ||||
| * **类型**: `int` | ||||
|  | ||||
|  | ||||
| * **默认值**: `8080` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     NoneBot 的 HTTP 和 WebSocket 服务端监听的端口。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `debug` | ||||
|  | ||||
|  | ||||
| * **类型**: `bool` | ||||
|  | ||||
|  | ||||
| * **默认值**: `False` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     是否以调试模式运行 NoneBot。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `api_root` | ||||
|  | ||||
|  | ||||
| * **类型**: `Dict[str, str]` | ||||
|  | ||||
|  | ||||
| * **默认值**: `{}` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     以机器人 ID 为键,上报地址为值的字典,环境变量或文件中应使用 json 序列化。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **示例** | ||||
|  | ||||
|  | ||||
| ```default | ||||
| API_ROOT={"123456": "http://127.0.0.1:5700"} | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ### `api_timeout` | ||||
|  | ||||
|  | ||||
| * **类型**: `Optional[float]` | ||||
|  | ||||
|  | ||||
| * **默认值**: `30.` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     API 请求超时时间,单位: 秒。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `access_token` | ||||
|  | ||||
|  | ||||
| * **类型**: `Optional[str]` | ||||
|  | ||||
|  | ||||
| * **默认值**: `None` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     API 请求以及上报所需密钥,在请求头中携带。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **示例** | ||||
|  | ||||
|  | ||||
| ```http | ||||
| POST /cqhttp/ HTTP/1.1 | ||||
| Authorization: Bearer kSLuTF2GC2Q4q4ugm3 | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ### `secret` | ||||
|  | ||||
|  | ||||
| * **类型**: `Optional[str]` | ||||
|  | ||||
|  | ||||
| * **默认值**: `None` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     HTTP POST 形式上报所需签名,在请求头中携带。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **示例** | ||||
|  | ||||
|  | ||||
| ```http | ||||
| POST /cqhttp/ HTTP/1.1 | ||||
| X-Signature: sha1=f9ddd4863ace61e64f462d41ca311e3d2c1176e2 | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ### `superusers` | ||||
|  | ||||
|  | ||||
| * **类型**: `Set[str]` | ||||
|  | ||||
|  | ||||
| * **默认值**: `set()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     机器人超级用户。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **示例** | ||||
|  | ||||
|  | ||||
| ```default | ||||
| SUPERUSERS=["12345789"] | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ### `nickname` | ||||
|  | ||||
|  | ||||
| * **类型**: `Set[str]` | ||||
|  | ||||
|  | ||||
| * **默认值**: `set()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     机器人昵称。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `command_start` | ||||
|  | ||||
|  | ||||
| * **类型**: `Set[str]` | ||||
|  | ||||
|  | ||||
| * **默认值**: `{"/"}` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     命令的起始标记,用于判断一条消息是不是命令。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `command_sep` | ||||
|  | ||||
|  | ||||
| * **类型**: `Set[str]` | ||||
|  | ||||
|  | ||||
| * **默认值**: `{"."}` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     命令的分隔标记,用于将文本形式的命令切分为元组(实际的命令名)。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `session_expire_timeout` | ||||
|  | ||||
|  | ||||
| * **类型**: `timedelta` | ||||
|  | ||||
|  | ||||
| * **默认值**: `timedelta(minutes=2)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     等待用户回复的超时时间。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **示例** | ||||
|  | ||||
|  | ||||
| ```default | ||||
| SESSION_EXPIRE_TIMEOUT=120  # 单位: 秒 | ||||
| SESSION_EXPIRE_TIMEOUT=[DD ][HH:MM]SS[.ffffff] | ||||
| SESSION_EXPIRE_TIMEOUT=P[DD]DT[HH]H[MM]M[SS]S  # ISO 8601 | ||||
| ``` | ||||
							
								
								
									
										318
									
								
								archive/2.0.0a10/api/drivers/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										318
									
								
								archive/2.0.0a10/api/drivers/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,318 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.drivers 模块 | ||||
|  | ||||
| ## 后端驱动适配基类 | ||||
|  | ||||
| 各驱动请继承以下基类 | ||||
|  | ||||
|  | ||||
| ## _class_ `Driver` | ||||
|  | ||||
| 基类:`abc.ABC` | ||||
|  | ||||
| Driver 基类。将后端框架封装,以满足适配器使用。 | ||||
|  | ||||
|  | ||||
| ### `_adapters` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Dict[str, Type[Bot]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     已注册的适配器列表 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `_ws_connection_hook` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Set[T_WebSocketConnectionHook]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     WebSocket 连接建立时执行的函数 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `_ws_disconnection_hook` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Set[T_WebSocketDisconnectionHook]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     WebSocket 连接断开时执行的函数 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _abstract_ `__init__(env, config)` | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `env: Env`: 包含环境信息的 Env 对象 | ||||
|  | ||||
|  | ||||
|     * `config: Config`: 包含配置信息的 Config 对象 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `env` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `str` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     环境名称 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `config` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Config` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     配置对象 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `_clients` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Dict[str, Bot]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     已连接的 Bot | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `register_adapter(name, adapter, **kwargs)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     注册一个协议适配器 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `name: str`: 适配器名称,用于在连接时进行识别 | ||||
|  | ||||
|  | ||||
|     * `adapter: Type[Bot]`: 适配器 Class | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _abstract property_ `type` | ||||
|  | ||||
| 驱动类型名称 | ||||
|  | ||||
|  | ||||
| ### _abstract property_ `server_app` | ||||
|  | ||||
| 驱动 APP 对象 | ||||
|  | ||||
|  | ||||
| ### _abstract property_ `asgi` | ||||
|  | ||||
| 驱动 ASGI 对象 | ||||
|  | ||||
|  | ||||
| ### _abstract property_ `logger` | ||||
|  | ||||
| 驱动专属 logger 日志记录器 | ||||
|  | ||||
|  | ||||
| ### _property_ `bots` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Dict[str, Bot]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     获取当前所有已连接的 Bot | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _abstract_ `on_startup(func)` | ||||
|  | ||||
| 注册一个在驱动启动时运行的函数 | ||||
|  | ||||
|  | ||||
| ### _abstract_ `on_shutdown(func)` | ||||
|  | ||||
| 注册一个在驱动停止时运行的函数 | ||||
|  | ||||
|  | ||||
| ### `on_bot_connect(func)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     装饰一个函数使他在 bot 通过 WebSocket 连接成功时执行。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **函数参数** | ||||
|  | ||||
|      | ||||
|     * `bot: Bot`: 当前连接上的 Bot 对象 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `on_bot_disconnect(func)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     装饰一个函数使他在 bot 通过 WebSocket 连接断开时执行。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **函数参数** | ||||
|  | ||||
|      | ||||
|     * `bot: Bot`: 当前连接上的 Bot 对象 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `_bot_connect(bot)` | ||||
|  | ||||
| 在 WebSocket 连接成功后,调用该函数来注册 bot 对象 | ||||
|  | ||||
|  | ||||
| ### `_bot_disconnect(bot)` | ||||
|  | ||||
| 在 WebSocket 连接断开后,调用该函数来注销 bot 对象 | ||||
|  | ||||
|  | ||||
| ### _abstract_ `run(host=None, port=None, *args, **kwargs)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     启动驱动框架 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `host: Optional[str]`: 驱动绑定 IP | ||||
|  | ||||
|  | ||||
|     * `post: Optional[int]`: 驱动绑定端口 | ||||
|  | ||||
|  | ||||
|     * `*args` | ||||
|  | ||||
|  | ||||
|     * `**kwargs` | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _abstract async_ `_handle_http()` | ||||
|  | ||||
| 用于处理 HTTP 类型请求的函数 | ||||
|  | ||||
|  | ||||
| ### _abstract async_ `_handle_ws_reverse()` | ||||
|  | ||||
| 用于处理 WebSocket 类型请求的函数 | ||||
|  | ||||
|  | ||||
| ## _class_ `WebSocket` | ||||
|  | ||||
| 基类:`object` | ||||
|  | ||||
| WebSocket 连接封装,统一接口方便外部调用。 | ||||
|  | ||||
|  | ||||
| ### _abstract_ `__init__(websocket)` | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `websocket: Any`: WebSocket 连接对象 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _property_ `websocket` | ||||
|  | ||||
| WebSocket 连接对象 | ||||
|  | ||||
|  | ||||
| ### _abstract property_ `closed` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `bool` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     连接是否已经关闭 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _abstract async_ `accept()` | ||||
|  | ||||
| 接受 WebSocket 连接请求 | ||||
|  | ||||
|  | ||||
| ### _abstract async_ `close(code)` | ||||
|  | ||||
| 关闭 WebSocket 连接请求 | ||||
|  | ||||
|  | ||||
| ### _abstract async_ `receive()` | ||||
|  | ||||
| 接收一条 WebSocket 信息 | ||||
|  | ||||
|  | ||||
| ### _abstract async_ `send(data)` | ||||
|  | ||||
| 发送一条 WebSocket 信息 | ||||
							
								
								
									
										120
									
								
								archive/2.0.0a10/api/drivers/fastapi.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								archive/2.0.0a10/api/drivers/fastapi.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,120 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.drivers.fastapi 模块 | ||||
|  | ||||
| ## FastAPI 驱动适配 | ||||
|  | ||||
| 后端使用方法请参考: [FastAPI 文档](https://fastapi.tiangolo.com/) | ||||
|  | ||||
|  | ||||
| ## _class_ `Config` | ||||
|  | ||||
| 基类:`pydantic.env_settings.BaseSettings` | ||||
|  | ||||
| FastAPI 驱动框架设置,详情参考 FastAPI 文档 | ||||
|  | ||||
|  | ||||
| ### `fastapi_openapi_url` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Optional[str]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     openapi.json 地址,默认为 None 即关闭 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `fastapi_docs_url` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Optional[str]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     swagger 地址,默认为 None 即关闭 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `fastapi_redoc_url` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Optional[str]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     redoc 地址,默认为 None 即关闭 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _class_ `Driver` | ||||
|  | ||||
| 基类:[`nonebot.drivers.Driver`](README.md#nonebot.drivers.Driver) | ||||
|  | ||||
| FastAPI 驱动框架 | ||||
|  | ||||
|  | ||||
| * **上报地址** | ||||
|  | ||||
|      | ||||
|     * `/{adapter name}/`: HTTP POST 上报 | ||||
|  | ||||
|  | ||||
|     * `/{adapter name}/http/`: HTTP POST 上报 | ||||
|  | ||||
|  | ||||
|     * `/{adapter name}/ws`: WebSocket 上报 | ||||
|  | ||||
|  | ||||
|     * `/{adapter name}/ws/`: WebSocket 上报 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _property_ `type` | ||||
|  | ||||
| 驱动名称: `fastapi` | ||||
|  | ||||
|  | ||||
| ### _property_ `server_app` | ||||
|  | ||||
| `FastAPI APP` 对象 | ||||
|  | ||||
|  | ||||
| ### _property_ `asgi` | ||||
|  | ||||
| `FastAPI APP` 对象 | ||||
|  | ||||
|  | ||||
| ### _property_ `logger` | ||||
|  | ||||
| fastapi 使用的 logger | ||||
|  | ||||
|  | ||||
| ### `on_startup(func)` | ||||
|  | ||||
| 参考文档: [Events](https://fastapi.tiangolo.com/advanced/events/#startup-event) | ||||
|  | ||||
|  | ||||
| ### `on_shutdown(func)` | ||||
|  | ||||
| 参考文档: [Events](https://fastapi.tiangolo.com/advanced/events/#startup-event) | ||||
|  | ||||
|  | ||||
| ### `run(host=None, port=None, *, app=None, **kwargs)` | ||||
|  | ||||
| 使用 `uvicorn` 启动 FastAPI | ||||
							
								
								
									
										62
									
								
								archive/2.0.0a10/api/drivers/quart.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								archive/2.0.0a10/api/drivers/quart.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.drivers.quart 模块 | ||||
|  | ||||
| ## Quart 驱动适配 | ||||
|  | ||||
| 后端使用方法请参考: [Quart 文档](https://pgjones.gitlab.io/quart/index.html) | ||||
|  | ||||
|  | ||||
| ## _class_ `Driver` | ||||
|  | ||||
| 基类:[`nonebot.drivers.Driver`](README.md#nonebot.drivers.Driver) | ||||
|  | ||||
| Quart 驱动框架 | ||||
|  | ||||
|  | ||||
| * **上报地址** | ||||
|  | ||||
|      | ||||
|     * `/{adapter name}/http`: HTTP POST 上报 | ||||
|  | ||||
|  | ||||
|     * `/{adapter name}/ws`: WebSocket 上报 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _property_ `type` | ||||
|  | ||||
| 驱动名称: `quart` | ||||
|  | ||||
|  | ||||
| ### _property_ `server_app` | ||||
|  | ||||
| `Quart` 对象 | ||||
|  | ||||
|  | ||||
| ### _property_ `asgi` | ||||
|  | ||||
| `Quart` 对象 | ||||
|  | ||||
|  | ||||
| ### _property_ `logger` | ||||
|  | ||||
| fastapi 使用的 logger | ||||
|  | ||||
|  | ||||
| ### `on_startup(func)` | ||||
|  | ||||
| 参考文档: [Startup and Shutdown](https://pgjones.gitlab.io/quart/how_to_guides/startup_shutdown.html) | ||||
|  | ||||
|  | ||||
| ### `on_shutdown(func)` | ||||
|  | ||||
| 参考文档: [Startup and Shutdown](https://pgjones.gitlab.io/quart/how_to_guides/startup_shutdown.html) | ||||
|  | ||||
|  | ||||
| ### `run(host=None, port=None, *, app=None, **kwargs)` | ||||
|  | ||||
| 使用 `uvicorn` 启动 Quart | ||||
							
								
								
									
										214
									
								
								archive/2.0.0a10/api/exception.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										214
									
								
								archive/2.0.0a10/api/exception.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,214 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.exception 模块 | ||||
|  | ||||
| ## 异常 | ||||
|  | ||||
| 下列文档中的异常是所有 NoneBot 运行时可能会抛出的。 | ||||
| 这些异常并非所有需要用户处理,在 NoneBot 内部运行时被捕获,并进行对应操作。 | ||||
|  | ||||
|  | ||||
| ## _exception_ `NoneBotException` | ||||
|  | ||||
| 基类:`Exception` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     所有 NoneBot 发生的异常基类。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `IgnoredException` | ||||
|  | ||||
| 基类:`nonebot.exception.NoneBotException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     指示 NoneBot 应该忽略该事件。可由 PreProcessor 抛出。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `reason`: 忽略事件的原因 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `ParserExit` | ||||
|  | ||||
| 基类:`nonebot.exception.NoneBotException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     `shell command` 处理消息失败时返回的异常 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `status` | ||||
|  | ||||
|  | ||||
|     * `message` | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `PausedException` | ||||
|  | ||||
| 基类:`nonebot.exception.NoneBotException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     指示 NoneBot 结束当前 `Handler` 并等待下一条消息后继续下一个 `Handler`。 | ||||
|     可用于用户输入新信息。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **用法** | ||||
|  | ||||
|     可以在 `Handler` 中通过 `Matcher.pause()` 抛出。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `RejectedException` | ||||
|  | ||||
| 基类:`nonebot.exception.NoneBotException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     指示 NoneBot 结束当前 `Handler` 并等待下一条消息后重新运行当前 `Handler`。 | ||||
|     可用于用户重新输入。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **用法** | ||||
|  | ||||
|     可以在 `Handler` 中通过 `Matcher.reject()` 抛出。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `FinishedException` | ||||
|  | ||||
| 基类:`nonebot.exception.NoneBotException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     指示 NoneBot 结束当前 `Handler` 且后续 `Handler` 不再被运行。 | ||||
|     可用于结束用户会话。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **用法** | ||||
|  | ||||
|     可以在 `Handler` 中通过 `Matcher.finish()` 抛出。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `StopPropagation` | ||||
|  | ||||
| 基类:`nonebot.exception.NoneBotException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     指示 NoneBot 终止事件向下层传播。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **用法** | ||||
|  | ||||
|     在 `Matcher.block == True` 时抛出。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `RequestDenied` | ||||
|  | ||||
| 基类:`nonebot.exception.NoneBotException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     Bot 连接请求不合法。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `status_code: int`: HTTP 状态码 | ||||
|  | ||||
|  | ||||
|     * `reason: str`: 拒绝原因 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `AdapterException` | ||||
|  | ||||
| 基类:`nonebot.exception.NoneBotException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     代表 `Adapter` 抛出的异常,所有的 `Adapter` 都要在内部继承自这个 `Exception` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `adapter_name: str`: 标识 adapter | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `NoLogException` | ||||
|  | ||||
| 基类:`Exception` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     指示 NoneBot 对当前 `Event` 进行处理但不显示 Log 信息,可在 `get_log_string` 时抛出 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `ApiNotAvailable` | ||||
|  | ||||
| 基类:`nonebot.exception.AdapterException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     在 API 连接不可用时抛出。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `NetworkError` | ||||
|  | ||||
| 基类:`nonebot.exception.AdapterException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     在网络出现问题时抛出,如: API 请求地址不正确, API 请求无返回或返回状态非正常等。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _exception_ `ActionFailed` | ||||
|  | ||||
| 基类:`nonebot.exception.AdapterException` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     API 请求成功返回数据,但 API 操作失败。 | ||||
							
								
								
									
										42
									
								
								archive/2.0.0a10/api/log.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								archive/2.0.0a10/api/log.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.log 模块 | ||||
|  | ||||
| ## 日志 | ||||
|  | ||||
| NoneBot 使用 [loguru](https://github.com/Delgan/loguru) 来记录日志信息。 | ||||
|  | ||||
| 自定义 logger 请参考 [loguru](https://github.com/Delgan/loguru) 文档。 | ||||
|  | ||||
|  | ||||
| ## `logger` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     NoneBot 日志记录器对象。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **默认信息** | ||||
|  | ||||
|      | ||||
|     * 格式: `[%(asctime)s %(name)s] %(levelname)s: %(message)s` | ||||
|  | ||||
|  | ||||
|     * 等级: `DEBUG` / `INFO` ,根据 config 配置改变 | ||||
|  | ||||
|  | ||||
|     * 输出: 输出至 stdout | ||||
|  | ||||
|  | ||||
|  | ||||
| * **用法** | ||||
|  | ||||
|  | ||||
| ```python | ||||
| from nonebot.log import logger | ||||
| ``` | ||||
							
								
								
									
										470
									
								
								archive/2.0.0a10/api/matcher.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										470
									
								
								archive/2.0.0a10/api/matcher.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,470 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.matcher 模块 | ||||
|  | ||||
| ## 事件响应器 | ||||
|  | ||||
| 该模块实现事件响应器的创建与运行,并提供一些快捷方法来帮助用户更好的与机器人进行 对话 。 | ||||
|  | ||||
|  | ||||
| ## `matchers` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Dict[int, List[Type[Matcher]]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     用于存储当前所有的事件响应器 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _class_ `Matcher` | ||||
|  | ||||
| 基类:`object` | ||||
|  | ||||
| 事件响应器类 | ||||
|  | ||||
|  | ||||
| ### `module` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Optional[str]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件响应器所在模块名称 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `type` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `str` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件响应器类型 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `rule` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Rule` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件响应器匹配规则 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `permission` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Permission` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件响应器触发权限 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `priority` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `int` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件响应器优先级 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `block` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `bool` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件响应器是否阻止事件传播 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `temp` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `bool` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件响应器是否为临时 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `expire_time` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Optional[datetime]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件响应器过期时间点 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `_default_state` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `T_State` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件响应器默认状态 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `_default_state_factory` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Optional[T_State]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件响应器默认工厂函数 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `_default_parser` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Optional[T_ArgsParser]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件响应器默认参数解析函数 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `__init__()` | ||||
|  | ||||
| 实例化 Matcher 以便运行 | ||||
|  | ||||
|  | ||||
| ### `handlers` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `List[T_Handler]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件响应器拥有的事件处理函数列表 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _classmethod_ `new(type_='', rule=None, permission=None, handlers=None, temp=False, priority=1, block=False, *, module=None, default_state=None, default_state_factory=None, expire_time=None)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     创建一个新的事件响应器,并存储至 [matchers](#matchers) | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `type_: str`: 事件响应器类型,与 `event.get_type()` 一致时触发,空字符串表示任意 | ||||
|  | ||||
|  | ||||
|     * `rule: Optional[Rule]`: 匹配规则 | ||||
|  | ||||
|  | ||||
|     * `permission: Optional[Permission]`: 权限 | ||||
|  | ||||
|  | ||||
|     * `handlers: Optional[List[T_Handler]]`: 事件处理函数列表 | ||||
|  | ||||
|  | ||||
|     * `temp: bool`: 是否为临时事件响应器,即触发一次后删除 | ||||
|  | ||||
|  | ||||
|     * `priority: int`: 响应优先级 | ||||
|  | ||||
|  | ||||
|     * `block: bool`: 是否阻止事件向更低优先级的响应器传播 | ||||
|  | ||||
|  | ||||
|     * `module: Optional[str]`: 事件响应器所在模块名称 | ||||
|  | ||||
|  | ||||
|     * `default_state: Optional[T_State]`: 默认状态 `state` | ||||
|  | ||||
|  | ||||
|     * `default_state_factory: Optional[T_StateFactory]`: 默认状态 `state` 的工厂函数 | ||||
|  | ||||
|  | ||||
|     * `expire_time: Optional[datetime]`: 事件响应器最终有效时间点,过时即被删除 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `Type[Matcher]`: 新的事件响应器类 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _async classmethod_ `check_perm(bot, event)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     检查是否满足触发权限 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `bot: Bot`: Bot 对象 | ||||
|  | ||||
|  | ||||
|     * `event: Event`: 上报事件 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `bool`: 是否满足权限 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _async classmethod_ `check_rule(bot, event, state)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     检查是否满足匹配规则 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `bot: Bot`: Bot 对象 | ||||
|  | ||||
|  | ||||
|     * `event: Event`: 上报事件 | ||||
|  | ||||
|  | ||||
|     * `state: T_State`: 当前状态 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `bool`: 是否满足匹配规则 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _classmethod_ `args_parser(func)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     装饰一个函数来更改当前事件响应器的默认参数解析函数 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `func: T_ArgsParser`: 参数解析函数 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _classmethod_ `handle()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     装饰一个函数来向事件响应器直接添加一个处理函数 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * 无 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _classmethod_ `receive()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     装饰一个函数来指示 NoneBot 在接收用户新的一条消息后继续运行该函数 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * 无 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _classmethod_ `got(key, prompt=None, args_parser=None)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     装饰一个函数来指示 NoneBot 当要获取的 `key` 不存在时接收用户新的一条消息并经过 `ArgsParser` 处理后再运行该函数,如果 `key` 已存在则直接继续运行 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `key: str`: 参数名 | ||||
|  | ||||
|  | ||||
|     * `prompt: Optional[Union[str, Message, MessageSegment]]`: 在参数不存在时向用户发送的消息 | ||||
|  | ||||
|  | ||||
|     * `args_parser: Optional[T_ArgsParser]`: 可选参数解析函数,空则使用默认解析函数 | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _async classmethod_ `send(message, **kwargs)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     发送一条消息给当前交互用户 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `message: Union[str, Message, MessageSegment]`: 消息内容 | ||||
|  | ||||
|  | ||||
|     * `**kwargs`: 其他传递给 `bot.send` 的参数,请参考对应 adapter 的 bot 对象 api | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _async classmethod_ `finish(message=None, **kwargs)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     发送一条消息给当前交互用户并结束当前事件响应器 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `message: Union[str, Message, MessageSegment]`: 消息内容 | ||||
|  | ||||
|  | ||||
|     * `**kwargs`: 其他传递给 `bot.send` 的参数,请参考对应 adapter 的 bot 对象 api | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _async classmethod_ `pause(prompt=None, **kwargs)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     发送一条消息给当前交互用户并暂停事件响应器,在接收用户新的一条消息后继续下一个处理函数 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `prompt: Union[str, Message, MessageSegment]`: 消息内容 | ||||
|  | ||||
|  | ||||
|     * `**kwargs`: 其他传递给 `bot.send` 的参数,请参考对应 adapter 的 bot 对象 api | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _async classmethod_ `reject(prompt=None, **kwargs)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     发送一条消息给当前交互用户并暂停事件响应器,在接收用户新的一条消息后重新运行当前处理函数 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `prompt: Union[str, Message, MessageSegment]`: 消息内容 | ||||
|  | ||||
|  | ||||
|     * `**kwargs`: 其他传递给 `bot.send` 的参数,请参考对应 adapter 的 bot 对象 api | ||||
							
								
								
									
										143
									
								
								archive/2.0.0a10/api/message.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								archive/2.0.0a10/api/message.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,143 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.message 模块 | ||||
|  | ||||
| ## 事件处理 | ||||
|  | ||||
| NoneBot 内部处理并按优先级分发事件给所有事件响应器,提供了多个插槽以进行事件的预处理等。 | ||||
|  | ||||
|  | ||||
| ## `event_preprocessor(func)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件预处理。装饰一个函数,使它在每次接收到事件并分发给各响应器之前执行。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|     事件预处理函数接收三个参数。 | ||||
|  | ||||
|  | ||||
|     * `bot: Bot`: Bot 对象 | ||||
|  | ||||
|  | ||||
|     * `event: Event`: Event 对象 | ||||
|  | ||||
|  | ||||
|     * `state: T_State`: 当前 State | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `event_postprocessor(func)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件后处理。装饰一个函数,使它在每次接收到事件并分发给各响应器之后执行。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|     事件后处理函数接收三个参数。 | ||||
|  | ||||
|  | ||||
|     * `bot: Bot`: Bot 对象 | ||||
|  | ||||
|  | ||||
|     * `event: Event`: Event 对象 | ||||
|  | ||||
|  | ||||
|     * `state: T_State`: 当前事件运行前 State | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `run_preprocessor(func)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     运行预处理。装饰一个函数,使它在每次事件响应器运行前执行。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|     运行预处理函数接收四个参数。 | ||||
|  | ||||
|  | ||||
|     * `matcher: Matcher`: 当前要运行的事件响应器 | ||||
|  | ||||
|  | ||||
|     * `bot: Bot`: Bot 对象 | ||||
|  | ||||
|  | ||||
|     * `event: Event`: Event 对象 | ||||
|  | ||||
|  | ||||
|     * `state: T_State`: 当前 State | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `run_postprocessor(func)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     运行后处理。装饰一个函数,使它在每次事件响应器运行后执行。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|     运行后处理函数接收五个参数。 | ||||
|  | ||||
|  | ||||
|     * `matcher: Matcher`: 运行完毕的事件响应器 | ||||
|  | ||||
|  | ||||
|     * `exception: Optional[Exception]`: 事件响应器运行错误(如果存在) | ||||
|  | ||||
|  | ||||
|     * `bot: Bot`: Bot 对象 | ||||
|  | ||||
|  | ||||
|     * `event: Event`: Event 对象 | ||||
|  | ||||
|  | ||||
|     * `state: T_State`: 当前 State | ||||
|  | ||||
|  | ||||
|  | ||||
| ## _async_ `handle_event(bot, event)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     处理一个事件。调用该函数以实现分发事件。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `bot: Bot`: Bot 对象 | ||||
|  | ||||
|  | ||||
|     * `event: Event`: Event 对象 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **示例** | ||||
|  | ||||
|  | ||||
| ```python | ||||
| import asyncio | ||||
| asyncio.create_task(handle_event(bot, event)) | ||||
| ``` | ||||
							
								
								
									
										269
									
								
								archive/2.0.0a10/api/nonebot.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										269
									
								
								archive/2.0.0a10/api/nonebot.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,269 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot 模块 | ||||
|  | ||||
| ## 快捷导入 | ||||
|  | ||||
| 为方便使用,`nonebot` 模块从子模块导入了部分内容 | ||||
|  | ||||
|  | ||||
| * `on_message` => `nonebot.plugin.on_message` | ||||
|  | ||||
|  | ||||
| * `on_notice` => `nonebot.plugin.on_notice` | ||||
|  | ||||
|  | ||||
| * `on_request` => `nonebot.plugin.on_request` | ||||
|  | ||||
|  | ||||
| * `on_metaevent` => `nonebot.plugin.on_metaevent` | ||||
|  | ||||
|  | ||||
| * `on_startswith` => `nonebot.plugin.on_startswith` | ||||
|  | ||||
|  | ||||
| * `on_endswith` => `nonebot.plugin.on_endswith` | ||||
|  | ||||
|  | ||||
| * `on_keyword` => `nonebot.plugin.on_keyword` | ||||
|  | ||||
|  | ||||
| * `on_command` => `nonebot.plugin.on_command` | ||||
|  | ||||
|  | ||||
| * `on_shell_command` => `nonebot.plugin.on_shell_command` | ||||
|  | ||||
|  | ||||
| * `on_regex` => `nonebot.plugin.on_regex` | ||||
|  | ||||
|  | ||||
| * `CommandGroup` => `nonebot.plugin.CommandGroup` | ||||
|  | ||||
|  | ||||
| * `Matchergroup` => `nonebot.plugin.MatcherGroup` | ||||
|  | ||||
|  | ||||
| * `load_plugin` => `nonebot.plugin.load_plugin` | ||||
|  | ||||
|  | ||||
| * `load_plugins` => `nonebot.plugin.load_plugins` | ||||
|  | ||||
|  | ||||
| * `load_builtin_plugins` => `nonebot.plugin.load_builtin_plugins` | ||||
|  | ||||
|  | ||||
| * `get_plugin` => `nonebot.plugin.get_plugin` | ||||
|  | ||||
|  | ||||
| * `get_loaded_plugins` => `nonebot.plugin.get_loaded_plugins` | ||||
|  | ||||
|  | ||||
| * `export` => `nonebot.plugin.export` | ||||
|  | ||||
|  | ||||
| * `require` => `nonebot.plugin.require` | ||||
|  | ||||
|  | ||||
| ## `get_driver()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     获取全局 Driver 对象。可用于在计划任务的回调中获取当前 Driver 对象。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `Driver`: 全局 Driver 对象 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **异常** | ||||
|  | ||||
|      | ||||
|     * `ValueError`: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用) | ||||
|  | ||||
|  | ||||
|  | ||||
| * **用法** | ||||
|  | ||||
|  | ||||
| ```python | ||||
| driver = nonebot.get_driver() | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ## `get_app()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     获取全局 Driver 对应 Server App 对象。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `Any`: Server App 对象 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **异常** | ||||
|  | ||||
|      | ||||
|     * `ValueError`: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用) | ||||
|  | ||||
|  | ||||
|  | ||||
| * **用法** | ||||
|  | ||||
|  | ||||
| ```python | ||||
| app = nonebot.get_app() | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ## `get_asgi()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     获取全局 Driver 对应 Asgi 对象。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `Any`: Asgi 对象 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **异常** | ||||
|  | ||||
|      | ||||
|     * `ValueError`: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用) | ||||
|  | ||||
|  | ||||
|  | ||||
| * **用法** | ||||
|  | ||||
|  | ||||
| ```python | ||||
| asgi = nonebot.get_asgi() | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ## `get_bots()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     获取所有通过 ws 连接 NoneBot 的 Bot 对象。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `Dict[str, Bot]`: 一个以字符串 ID 为键,Bot 对象为值的字典 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **异常** | ||||
|  | ||||
|      | ||||
|     * `ValueError`: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用) | ||||
|  | ||||
|  | ||||
|  | ||||
| * **用法** | ||||
|  | ||||
|  | ||||
| ```python | ||||
| bots = nonebot.get_bots() | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ## `init(*, _env_file=None, **kwargs)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     初始化 NoneBot 以及 全局 Driver 对象。 | ||||
|  | ||||
|     NoneBot 将会从 .env 文件中读取环境信息,并使用相应的 env 文件配置。 | ||||
|  | ||||
|     你也可以传入自定义的 _env_file 来指定 NoneBot 从该文件读取配置。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `_env_file: Optional[str]`: 配置文件名,默认从 .env.{env_name} 中读取配置 | ||||
|  | ||||
|  | ||||
|     * `**kwargs`: 任意变量,将会存储到 Config 对象里 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `None` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **用法** | ||||
|  | ||||
|  | ||||
| ```python | ||||
| nonebot.init(database=Database(...)) | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ## `run(host=None, port=None, *args, **kwargs)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     启动 NoneBot,即运行全局 Driver 对象。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `host: Optional[str]`: 主机名/IP,若不传入则使用配置文件中指定的值 | ||||
|  | ||||
|  | ||||
|     * `port: Optional[int]`: 端口,若不传入则使用配置文件中指定的值 | ||||
|  | ||||
|  | ||||
|     * `*args`: 传入 Driver.run 的位置参数 | ||||
|  | ||||
|  | ||||
|     * `**kwargs`: 传入 Driver.run 的命名参数 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `None` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **用法** | ||||
|  | ||||
|  | ||||
| ```python | ||||
| nonebot.run(host="127.0.0.1", port=8080) | ||||
| ``` | ||||
							
								
								
									
										63
									
								
								archive/2.0.0a10/api/permission.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								archive/2.0.0a10/api/permission.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.permission 模块 | ||||
|  | ||||
| ## 权限 | ||||
|  | ||||
| 每个 `Matcher` 拥有一个 `Permission` ,其中是 **异步** `PermissionChecker` 的集合,只要有一个 `PermissionChecker` 检查结果为 `True` 时就会继续运行。 | ||||
|  | ||||
| :::tip 提示 | ||||
| `PermissionChecker` 既可以是 async function 也可以是 sync function | ||||
| ::: | ||||
|  | ||||
|  | ||||
| ## `MESSAGE` | ||||
|  | ||||
|  | ||||
| * **说明**: 匹配任意 `message` 类型事件,仅在需要同时捕获不同类型事件时使用。优先使用 message type 的 Matcher。 | ||||
|  | ||||
|  | ||||
| ## `NOTICE` | ||||
|  | ||||
|  | ||||
| * **说明**: 匹配任意 `notice` 类型事件,仅在需要同时捕获不同类型事件时使用。优先使用 notice type 的 Matcher。 | ||||
|  | ||||
|  | ||||
| ## `REQUEST` | ||||
|  | ||||
|  | ||||
| * **说明**: 匹配任意 `request` 类型事件,仅在需要同时捕获不同类型事件时使用。优先使用 request type 的 Matcher。 | ||||
|  | ||||
|  | ||||
| ## `METAEVENT` | ||||
|  | ||||
|  | ||||
| * **说明**: 匹配任意 `meta_event` 类型事件,仅在需要同时捕获不同类型事件时使用。优先使用 meta_event type 的 Matcher。 | ||||
|  | ||||
|  | ||||
| ## `USER(*user, perm=<nonebot.permission.Permission object>)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     在白名单内且满足 perm | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `*user: str`: 白名单 | ||||
|  | ||||
|  | ||||
|     * `perm: Permission`: 需要同时满足的权限 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `SUPERUSER` | ||||
|  | ||||
|  | ||||
| * **说明**: 匹配任意超级用户消息类型事件 | ||||
							
								
								
									
										1401
									
								
								archive/2.0.0a10/api/plugin.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1401
									
								
								archive/2.0.0a10/api/plugin.md
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										266
									
								
								archive/2.0.0a10/api/rule.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										266
									
								
								archive/2.0.0a10/api/rule.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,266 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.rule 模块 | ||||
|  | ||||
| ## 规则 | ||||
|  | ||||
| 每个事件响应器 `Matcher` 拥有一个匹配规则 `Rule` ,其中是 **异步** `RuleChecker` 的集合,只有当所有 `RuleChecker` 检查结果为 `True` 时继续运行。 | ||||
|  | ||||
| :::tip 提示 | ||||
| `RuleChecker` 既可以是 async function 也可以是 sync function,但在最终会被 `nonebot.utils.run_sync` 转换为 async function | ||||
| ::: | ||||
|  | ||||
|  | ||||
| ## _class_ `Rule` | ||||
|  | ||||
| 基类:`object` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     `Matcher` 规则类,当事件传递时,在 `Matcher` 运行前进行检查。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **示例** | ||||
|  | ||||
|  | ||||
| ```python | ||||
| Rule(async_function) & sync_function | ||||
| # 等价于 | ||||
| from nonebot.utils import run_sync | ||||
| Rule(async_function, run_sync(sync_function)) | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ### `__init__(*checkers)` | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `*checkers: Callable[[Bot, Event, T_State], Awaitable[bool]]`: **异步** RuleChecker | ||||
|  | ||||
|  | ||||
|  | ||||
| ### `checkers` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     存储 `RuleChecker` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|      | ||||
|     * `Set[Callable[[Bot, Event, T_State], Awaitable[bool]]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| ### _async_ `__call__(bot, event, state)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     检查是否符合所有规则 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `bot: Bot`: Bot 对象 | ||||
|  | ||||
|  | ||||
|     * `event: Event`: Event 对象 | ||||
|  | ||||
|  | ||||
|     * `state: T_State`: 当前 State | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `bool` | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `startswith(msg)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     匹配消息开头 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `msg: str`: 消息开头字符串 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `endswith(msg)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     匹配消息结尾 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `msg: str`: 消息结尾字符串 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `keyword(*keywords)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     匹配消息关键词 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `*keywords: str`: 关键词 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `command(*cmds)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     命令形式匹配,根据配置里提供的 `command_start`, `command_sep` 判断消息是否为命令。 | ||||
|  | ||||
|     可以通过 `state["_prefix"]["command"]` 获取匹配成功的命令(例:`("test",)`),通过 `state["_prefix"]["raw_command"]` 获取匹配成功的原始命令文本(例:`"/test"`)。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `*cmds: Union[str, Tuple[str, ...]]`: 命令内容 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **示例** | ||||
|  | ||||
|     使用默认 `command_start`, `command_sep` 配置 | ||||
|  | ||||
|     命令 `("test",)` 可以匹配:`/test` 开头的消息 | ||||
|     命令 `("test", "sub")` 可以匹配”`/test.sub` 开头的消息 | ||||
|  | ||||
|  | ||||
| :::tip 提示 | ||||
| 命令内容与后续消息间无需空格! | ||||
| ::: | ||||
|  | ||||
|  | ||||
| ## _class_ `ArgumentParser` | ||||
|  | ||||
| 基类:`argparse.ArgumentParser` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     `shell_like` 命令参数解析器,解析出错时不会退出程序。 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `shell_command(*cmds, parser=None)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     支持 `shell_like` 解析参数的命令形式匹配,根据配置里提供的 `command_start`, `command_sep` 判断消息是否为命令。 | ||||
|  | ||||
|     可以通过 `state["_prefix"]["command"]` 获取匹配成功的命令(例:`("test",)`),通过 `state["_prefix"]["raw_command"]` 获取匹配成功的原始命令文本(例:`"/test"`)。 | ||||
|  | ||||
|     可以通过 `state["argv"]` 获取用户输入的原始参数列表 | ||||
|  | ||||
|     添加 `parser` 参数后, 可以自动处理消息并将结果保存在 `state["args"]` 中。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `*cmds: Union[str, Tuple[str, ...]]`: 命令内容 | ||||
|  | ||||
|  | ||||
|     * `parser: Optional[ArgumentParser]`: `nonebot.rule.ArgumentParser` 对象 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **示例** | ||||
|  | ||||
|     使用默认 `command_start`, `command_sep` 配置,更多示例参考 `argparse` 标准库文档。 | ||||
|  | ||||
|  | ||||
| ```python | ||||
| from nonebot.rule import ArgumentParser | ||||
|  | ||||
| parser = ArgumentParser() | ||||
| parser.add_argument("-a", action="store_true") | ||||
|  | ||||
| rule = shell_command("ls", parser=parser) | ||||
| ``` | ||||
|  | ||||
| :::tip 提示 | ||||
| 命令内容与后续消息间无需空格! | ||||
| ::: | ||||
|  | ||||
|  | ||||
| ## `regex(regex, flags=0)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     根据正则表达式进行匹配。 | ||||
|  | ||||
|     可以通过 `state["_matched"]` `state["_matched_groups"]` `state["_matched_dict"]` | ||||
|     获取正则表达式匹配成功的文本。 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `regex: str`: 正则表达式 | ||||
|  | ||||
|  | ||||
|     * `flags: Union[int, re.RegexFlag]`: 正则标志 | ||||
|  | ||||
|  | ||||
| :::tip 提示 | ||||
| 正则表达式匹配使用 search 而非 match,如需从头匹配请使用 `r"^xxx"` 来确保匹配开头 | ||||
| ::: | ||||
|  | ||||
|  | ||||
| ## `to_me()` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     通过 `event.is_tome()` 判断事件是否与机器人有关 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * 无 | ||||
							
								
								
									
										214
									
								
								archive/2.0.0a10/api/typing.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										214
									
								
								archive/2.0.0a10/api/typing.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,214 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.typing 模块 | ||||
|  | ||||
| ## 类型 | ||||
|  | ||||
| 下面的文档中,「类型」部分使用 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)。 | ||||
|  | ||||
| 除了 Python 内置的类型,下面还出现了如下 NoneBot 自定类型,实际上它们是 Python 内置类型的别名。 | ||||
|  | ||||
| 以下类型均可从 nonebot.typing 模块导入。 | ||||
|  | ||||
|  | ||||
| ## `T_State` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Dict[Any, Any]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件处理状态 State 类型 | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `T_StateFactory` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Callable[[Bot, Event], Awaitable[T_State]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件处理状态 State 类工厂函数 | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `T_WebSocketConnectionHook` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Callable[[Bot], Awaitable[None]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     WebSocket 连接建立时执行的函数 | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `T_WebSocketDisconnectionHook` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Callable[[Bot], Awaitable[None]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     WebSocket 连接断开时执行的函数 | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `T_EventPreProcessor` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Callable[[Bot, Event, T_State], Awaitable[None]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件预处理函数 EventPreProcessor 类型 | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `T_EventPostProcessor` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Callable[[Bot, Event, T_State], Awaitable[None]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件预处理函数 EventPostProcessor 类型 | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `T_RunPreProcessor` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Callable[[Matcher, Bot, Event, T_State], Awaitable[None]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件响应器运行前预处理函数 RunPreProcessor 类型 | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `T_RunPostProcessor` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Callable[[Matcher, Optional[Exception], Bot, Event, T_State], Awaitable[None]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     事件响应器运行前预处理函数 RunPostProcessor 类型,第二个参数为运行时产生的错误(如果存在) | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `T_RuleChecker` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Callable[[Bot, Event, T_State], Union[bool, Awaitable[bool]]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     RuleChecker 即判断是否响应事件的处理函数。 | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `T_PermissionChecker` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Callable[[Bot, Event], Union[bool, Awaitable[bool]]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     RuleChecker 即判断是否响应消息的处理函数。 | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `T_Handler` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|      | ||||
|     * `Callable[[Bot, Event, T_State], Union[Awaitable[None], Awaitable[NoReturn]]]` | ||||
|  | ||||
|  | ||||
|     * `Callable[[Bot, Event], Union[Awaitable[None], Awaitable[NoReturn]]]` | ||||
|  | ||||
|  | ||||
|     * `Callable[[Bot, T_State], Union[Awaitable[None], Awaitable[NoReturn]]]` | ||||
|  | ||||
|  | ||||
|     * `Callable[[Bot], Union[Awaitable[None], Awaitable[NoReturn]]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     Handler 即事件的处理函数。 | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `T_ArgsParser` | ||||
|  | ||||
|  | ||||
| * **类型** | ||||
|  | ||||
|     `Callable[[Bot, Event, T_State], Union[Awaitable[None], Awaitable[NoReturn]]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     ArgsParser 即消息参数解析函数,在 Matcher.got 获取参数时被运行。 | ||||
							
								
								
									
										84
									
								
								archive/2.0.0a10/api/utils.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								archive/2.0.0a10/api/utils.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,84 @@ | ||||
| --- | ||||
| contentSidebar: true | ||||
| sidebarDepth: 0 | ||||
| --- | ||||
|  | ||||
| # NoneBot.utils 模块 | ||||
|  | ||||
|  | ||||
| ## `escape_tag(s)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     用于记录带颜色日志时转义 `<tag>` 类型特殊标签 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `s: str`: 需要转义的字符串 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `str` | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `run_sync(func)` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     一个用于包装 sync function 为 async function 的装饰器 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **参数** | ||||
|  | ||||
|      | ||||
|     * `func: Callable[..., Any]`: 被装饰的同步函数 | ||||
|  | ||||
|  | ||||
|  | ||||
| * **返回** | ||||
|  | ||||
|      | ||||
|     * `Callable[..., Awaitable[Any]]` | ||||
|  | ||||
|  | ||||
|  | ||||
| ## `logger_wrapper` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|  | ||||
| 用于打印 adapter 的日志。 | ||||
|  | ||||
|  | ||||
| * **Log 参数** | ||||
|  | ||||
|  | ||||
|  | ||||
| * `level: Literal['WARNING', 'DEBUG', 'INFO']`: 日志等级 | ||||
|  | ||||
|  | ||||
| * `message: str`: 日志信息 | ||||
|  | ||||
|  | ||||
| * `exception: Optional[Exception]`: 异常信息 | ||||
|  | ||||
|  | ||||
| ## _class_ `DataclassEncoder` | ||||
|  | ||||
| 基类:`json.encoder.JSONEncoder` | ||||
|  | ||||
|  | ||||
| * **说明** | ||||
|  | ||||
|     在JSON序列化 `Message` (List[Dataclass]) 时使用的 `JSONEncoder` | ||||
		Reference in New Issue
	
	Block a user