diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 500bc8ad..7a42add8 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -1,6 +1,6 @@ module.exports = { title: 'NoneBot', - description: '基于酷 Q 的 Python 异步 QQ 机器人框架', + description: '基于 酷Q 的 Python 异步 QQ 机器人框架', markdown: { lineNumbers: true }, diff --git a/docs/api.md b/docs/api.md index 1e8defc4..38574f47 100644 --- a/docs/api.md +++ b/docs/api.md @@ -18,7 +18,7 @@ sidebar: auto - **说明:** - 酷 Q HTTP API 上报的事件数据对象的类型。 + 酷Q HTTP API 上报的事件数据对象的类型。 ### `Message_T` @@ -62,7 +62,7 @@ sidebar: auto - **说明:** - 酷 Q HTTP API 插件的 HTTP 接口地址,如果不使用 HTTP 通信,则无需设置。 + 酷Q HTTP API 插件的 HTTP 接口地址,如果不使用 HTTP 通信,则无需设置。 - **用法:** @@ -70,7 +70,7 @@ sidebar: auto API_ROOT = 'http://127.0.0.1:5700' ``` - 告诉 NoneBot 酷 Q HTTP API 插件的 HTTP 服务运行在 `http://127.0.0.1:5700`。 + 告诉 NoneBot 酷Q HTTP API 插件的 HTTP 服务运行在 `http://127.0.0.1:5700`。 ### `ACCESS_TOKEN` @@ -80,7 +80,7 @@ sidebar: auto - **说明:** - 需要和酷 Q HTTP API 插件的配置中的 `access_token` 相同。 + 需要和 酷Q HTTP API 插件的配置中的 `access_token` 相同。 ### `SECRET` @@ -90,7 +90,7 @@ sidebar: auto - **说明:** - 需要和酷 Q HTTP API 插件的配置中的 `secret` 相同。 + 需要和 酷Q HTTP API 插件的配置中的 `secret` 相同。 ### `HOST` @@ -1072,7 +1072,7 @@ sidebar: auto - **参数:** - - `reduce: bool`: 是否先化简消息段列表(合并相邻的 `text` 段),对于从酷 Q 收到的消息,通常不需要开启 + - `reduce: bool`: 是否先化简消息段列表(合并相邻的 `text` 段),对于从 酷Q 收到的消息,通常不需要开启 - **返回:** @@ -1281,7 +1281,7 @@ sidebar: auto - **说明:** - 命令会话当前参数。实际上是酷 Q 收到的消息去掉命令名的剩下部分,因此可能存在 CQ 码。 + 命令会话当前参数。实际上是 酷Q 收到的消息去掉命令名的剩下部分,因此可能存在 CQ 码。 #### `current_arg_text` @@ -1751,7 +1751,7 @@ sidebar: auto - **说明:** - 酷 Q HTTP API 上报的事件数据对象,或称事件上下文,具体请参考 [事件上报](https://cqhttp.cc/docs/#/Post)。 + 酷Q HTTP API 上报的事件数据对象,或称事件上下文,具体请参考 [事件上报](https://cqhttp.cc/docs/#/Post)。 - **用法:** diff --git a/docs/glossary.md b/docs/glossary.md index 0a8beaac..d66687a9 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -4,15 +4,15 @@ sidebar: auto # 术语表 -## 酷 Q +## 酷Q -[酷 Q](https://cqp.cc) 是一个易语言编写的 QQ 机器人平台,其本身没有任何具体的功能,只是负责实现 QQ 协议,并以 DLL 导出函数的形式向插件提供 API 和事件上报。 +[酷Q](https://cqp.cc) 是一个易语言编写的 QQ 机器人平台,其本身没有任何具体的功能,只是负责实现 QQ 协议,并以 DLL 导出函数的形式向插件提供 API 和事件上报。 ## CoolQ HTTP API 插件 -[CoolQ HTTP API 插件](https://cqhttp.cc/) 是酷 Q 的一个第三方插件,用于将酷 Q 所提供的所有 DLL 接口转换为 HTTP 或 WebSocket 的 web 形式,从而使利用任意语言编写酷 Q 插件成为可能。 +[CoolQ HTTP API 插件](https://cqhttp.cc/) 是 酷Q 的一个第三方插件,用于将 酷Q 所提供的所有 DLL 接口转换为 HTTP 或 WebSocket 的 web 形式,从而使利用任意语言编写 酷Q 插件成为可能。 -有时被称为 cqhttp、CQHTTP、酷 Q HTTP API 等。 +有时被称为 cqhttp、CQHTTP、酷Q HTTP API 等。 ## aiocqhttp @@ -32,7 +32,7 @@ sidebar: auto ## 通信方式 -CoolQ HTTP API 插件中的一个术语,表示其与通过 web 技术编写的酷 Q 插件之间通信的手段。 +CoolQ HTTP API 插件中的一个术语,表示其与通过 web 技术编写的 酷Q 插件之间通信的手段。 目前 CoolQ HTTP API 插件支持 HTTP、WebSocket、反向 WebSocket 三种通信方式,见 [通信方式](https://cqhttp.cc/docs/#/CommunicationMethods),NoneBot 支持其中的 HTTP 和反向 WebSocket。 @@ -108,7 +108,7 @@ Expression 可以是一个 `str`、元素类型是 `str` 的序列(一般为 ` ## CQ 码 -是酷 Q 用来表示非文本消息的一种表示方法,形如 `[CQ:image,file=ABC.jpg]`。具体的格式规则,请参考酷 Q 文档的 [CQ 码](https://d.cqp.me/Pro/CQ%E7%A0%81) 和 CoolQ HTTP API 插件文档的 [CQ 码](https://cqhttp.cc/docs/#/CQCode)。 +是 酷Q 用来表示非文本消息的一种表示方法,形如 `[CQ:image,file=ABC.jpg]`。具体的格式规则,请参考 酷Q 文档的 [CQ 码](https://d.cqp.me/Pro/CQ%E7%A0%81) 和 CoolQ HTTP API 插件文档的 [CQ 码](https://cqhttp.cc/docs/#/CQCode)。 ## 消息段 diff --git a/docs/guide/README.md b/docs/guide/README.md index 1907a94c..72794ff5 100644 --- a/docs/guide/README.md +++ b/docs/guide/README.md @@ -8,19 +8,19 @@ 初次使用时可能会觉得这里的概览过于枯燥,可以先简单略读之后直接前往 [安装](/guide/installation.md) 查看安装方法,并进行后续的基础使用教程。 ::: -NoneBot 是一个基于 [酷 Q](https://cqp.cc/) 的 Python 异步 QQ 机器人框架,它会对 QQ 机器人收到的消息进行解析和处理,并以插件化的形式,分发给消息所对应的命令处理器和自然语言处理器,来完成具体的功能。 +NoneBot 是一个基于 [酷Q](https://cqp.cc/) 的 Python 异步 QQ 机器人框架,它会对 QQ 机器人收到的消息进行解析和处理,并以插件化的形式,分发给消息所对应的命令处理器和自然语言处理器,来完成具体的功能。 除了起到解析消息的作用,NoneBot 还为插件提供了大量实用的预设操作和权限控制机制,尤其对于命令处理器,它更是提供了完善且易用的会话机制和内部调用机制,以分别适应命令的连续交互和插件内部功能复用等需求。 -NoneBot 在其底层与酷 Q 交互的部分使用 [python-aiocqhttp](https://github.com/richardchien/python-aiocqhttp) 库,后者是 [CoolQ HTTP API 插件](https://cqhttp.cc/) 的一个 Python 异步 SDK,在 [Quart](https://pgjones.gitlab.io/quart/) 的基础上封装了与 CoolQ HTTP API 插件的网络交互。 +NoneBot 在其底层与 酷Q 交互的部分使用 [python-aiocqhttp](https://github.com/richardchien/python-aiocqhttp) 库,后者是 [CoolQ HTTP API 插件](https://cqhttp.cc/) 的一个 Python 异步 SDK,在 [Quart](https://pgjones.gitlab.io/quart/) 的基础上封装了与 CoolQ HTTP API 插件的网络交互。 得益于 Python 的 [asyncio](https://docs.python.org/3/library/asyncio.html) 机制,NoneBot 处理消息的吞吐量有了很大的保障,再配合 CoolQ HTTP API 插件可选的 WebSocket 通信方式(也是最建议的通信方式),NoneBot 的性能可以达到 HTTP 通信方式的两倍以上,相较于传统同步 I/O 的 HTTP 通信,更是有质的飞跃。 -需要注意的是,NoneBot 仅支持 Python 3.6+ 及 CoolQ HTTP API 插件 v4.2+。 +需要注意的是,NoneBot 仅支持 Python 3.6.1+ 及 CoolQ HTTP API 插件 v4.2+。 ## 它如何工作? -NoneBot 的运行离不开酷 Q 和 CoolQ HTTP API 插件。酷 Q 扮演着「无头 QQ 客户端」的角色,它进行实际的消息、通知、请求的接收和发送,当酷 Q 收到消息时,它将这个消息包装为一个事件(通知和请求同理),并通过它自己的插件机制将事件传送给 CoolQ HTTP API 插件,后者再根据其配置中的 `post_url` 或 `ws_reverse_event_url` 等项来将事件发送至 NoneBot。 +NoneBot 的运行离不开 酷Q 和 CoolQ HTTP API 插件。酷Q 扮演着「无头 QQ 客户端」的角色,它进行实际的消息、通知、请求的接收和发送,当 酷Q 收到消息时,它将这个消息包装为一个事件(通知和请求同理),并通过它自己的插件机制将事件传送给 CoolQ HTTP API 插件,后者再根据其配置中的 `post_url` 或 `ws_reverse_event_url` 等项来将事件发送至 NoneBot。 在 NoneBot 收到事件前,它底层的 aiocqhttp 实际已经先看到了事件,aiocqhttp 根据事件的类型信息,通知到 NoneBot 的相应函数。特别地,对于消息类型的事件,还将消息内容转换成了 `aiocqhttp.message.Message` 类型,以便处理。 diff --git a/docs/guide/code/awesome-bot-4/awesome/plugins/tuling.py b/docs/guide/code/awesome-bot-4/awesome/plugins/tuling.py index f6af1c92..9accbe8e 100644 --- a/docs/guide/code/awesome-bot-4/awesome/plugins/tuling.py +++ b/docs/guide/code/awesome-bot-4/awesome/plugins/tuling.py @@ -26,7 +26,7 @@ async def tuling(session: CommandSession): reply = await call_tuling_api(session, message) if reply: # 如果调用图灵机器人成功,得到了回复,则转义之后发送给用户 - # 转义会把消息中的某些特殊字符做转换,以避免酷 Q 将它们理解为 CQ 码 + # 转义会把消息中的某些特殊字符做转换,以避免 酷Q 将它们理解为 CQ 码 await session.send(escape(reply)) else: # 如果调用失败,或者它返回的内容我们目前处理不了,发送无法获取图灵回复时的「表达」 diff --git a/docs/guide/code/awesome-bot-5/awesome/plugins/tuling.py b/docs/guide/code/awesome-bot-5/awesome/plugins/tuling.py index f6af1c92..9accbe8e 100644 --- a/docs/guide/code/awesome-bot-5/awesome/plugins/tuling.py +++ b/docs/guide/code/awesome-bot-5/awesome/plugins/tuling.py @@ -26,7 +26,7 @@ async def tuling(session: CommandSession): reply = await call_tuling_api(session, message) if reply: # 如果调用图灵机器人成功,得到了回复,则转义之后发送给用户 - # 转义会把消息中的某些特殊字符做转换,以避免酷 Q 将它们理解为 CQ 码 + # 转义会把消息中的某些特殊字符做转换,以避免 酷Q 将它们理解为 CQ 码 await session.send(escape(reply)) else: # 如果调用失败,或者它返回的内容我们目前处理不了,发送无法获取图灵回复时的「表达」 diff --git a/docs/guide/code/awesome-bot-6/awesome/plugins/tuling.py b/docs/guide/code/awesome-bot-6/awesome/plugins/tuling.py index f6af1c92..9accbe8e 100644 --- a/docs/guide/code/awesome-bot-6/awesome/plugins/tuling.py +++ b/docs/guide/code/awesome-bot-6/awesome/plugins/tuling.py @@ -26,7 +26,7 @@ async def tuling(session: CommandSession): reply = await call_tuling_api(session, message) if reply: # 如果调用图灵机器人成功,得到了回复,则转义之后发送给用户 - # 转义会把消息中的某些特殊字符做转换,以避免酷 Q 将它们理解为 CQ 码 + # 转义会把消息中的某些特殊字符做转换,以避免 酷Q 将它们理解为 CQ 码 await session.send(escape(reply)) else: # 如果调用失败,或者它返回的内容我们目前处理不了,发送无法获取图灵回复时的「表达」 diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md index 89ad1a17..281dca8e 100644 --- a/docs/guide/getting-started.md +++ b/docs/guide/getting-started.md @@ -22,7 +22,7 @@ if __name__ == '__main__': 3. 在地址 `127.0.0.1:8080` 运行 NoneBot ::: tip 提示 -这里 `nonebot.run()` 的参数 `host='127.0.0.1'` 表示让 NoneBot 监听本地环回地址,如果你的酷 Q 运行在非本机的其它位置,例如 Docker 容器内、局域网内的另一台机器上等,则这里需要修改 `host` 参数为希望让 CoolQ HTTP API 插件访问的 IP。如果不清楚该使用哪个 IP,或者希望本机的所有 IP 都被监听,可以使用 `0.0.0.0`。 +这里 `nonebot.run()` 的参数 `host='127.0.0.1'` 表示让 NoneBot 监听本地环回地址,如果你的 酷Q 运行在非本机的其它位置,例如 Docker 容器内、局域网内的另一台机器上等,则这里需要修改 `host` 参数为希望让 CoolQ HTTP API 插件访问的 IP。如果不清楚该使用哪个 IP,或者希望本机的所有 IP 都被监听,可以使用 `0.0.0.0`。 ::: 在命令行使用如下命令即可运行这个 NoneBot 实例: @@ -33,9 +33,9 @@ python bot.py ## 配置 CoolQ HTTP API 插件 -单纯运行 NoneBot 实例并不会产生任何效果,因为此刻酷 Q 这边还不知道 NoneBot 的存在,也就无法把消息发送给它,因此现在需要对 CoolQ HTTP API 插件做一个简单的配置来让它把消息等事件上报给 NoneBot。 +单纯运行 NoneBot 实例并不会产生任何效果,因为此刻 酷Q 这边还不知道 NoneBot 的存在,也就无法把消息发送给它,因此现在需要对 CoolQ HTTP API 插件做一个简单的配置来让它把消息等事件上报给 NoneBot。 -如果你在之前已经按照 [安装](/guide/installation.md) 的建议使用默认配置运行了一次 CoolQ HTTP API 插件,此时酷 Q 的 `data\app\io.github.richardchien.coolqhttpapi\config\` 目录中应该已经有了一个名为 `.json` 的文件(`` 为你登录的 QQ 账号)。修改这个文件,**添加**如下配置项: +如果你在之前已经按照 [安装](/guide/installation.md) 的建议使用默认配置运行了一次 CoolQ HTTP API 插件,此时 酷Q 的 `data\app\io.github.richardchien.coolqhttpapi\config\` 目录中应该已经有了一个名为 `.json` 的文件(`` 为你登录的 QQ 账号)。修改这个文件,**添加**如下配置项: ```json { @@ -47,10 +47,10 @@ python bot.py ``` ::: tip 提示 -这里的 `127.0.0.1:8080` 对应 `nonebot.run()` 中传入的 `host` 和 `port`,如果在 `nonebot.run()` 中传入的 `host` 是 `0.0.0.0`,则插件的配置中需使用任意一个能够访问到 NoneBot 所在环境的 IP。特别地,如果你的酷 Q 运行在 Docker 容器中,NoneBot 运行在宿主机中,则默认情况下这里需使用 `172.17.0.1`(不同机器有可能不同,需使用 `docker inspect bridge` 查看,具体见 Docker 文档的 [Configure networking](https://docs.docker.com/network/))。 +这里的 `127.0.0.1:8080` 对应 `nonebot.run()` 中传入的 `host` 和 `port`,如果在 `nonebot.run()` 中传入的 `host` 是 `0.0.0.0`,则插件的配置中需使用任意一个能够访问到 NoneBot 所在环境的 IP。特别地,如果你的 酷Q 运行在 Docker 容器中,NoneBot 运行在宿主机中,则默认情况下这里需使用 `172.17.0.1`(不同机器有可能不同,需使用 `docker inspect bridge` 查看,具体见 Docker 文档的 [Configure networking](https://docs.docker.com/network/))。 ::: -修改之后,在酷 Q 的应用菜单中重启 CoolQ HTTP API 插件,或直接重启酷 Q,以使新的配置文件生效。 +修改之后,在 酷Q 的应用菜单中重启 CoolQ HTTP API 插件,或直接重启 酷Q,以使新的配置文件生效。 ## 历史性的第一次对话 diff --git a/docs/guide/installation.md b/docs/guide/installation.md index c7aeb541..683b9180 100644 --- a/docs/guide/installation.md +++ b/docs/guide/installation.md @@ -3,7 +3,7 @@ ## NoneBot ::: warning 注意 -请确保你的 Python 版本 >= 3.6。 +请确保你的 Python 版本 >= 3.6.1。 ::: 可以使用 pip 安装已发布的最新版本: @@ -22,19 +22,19 @@ python setup.py install 以上命令中的 `pip`、`python` 可能需要根据情况换成 `pip3`、`python3`。 -## 酷 Q +## 酷Q -前往酷 Q 官方论坛的 [版本发布](https://cqp.cc/b/news) 页面根据需要下载最新版本的酷 Q Air 或 Pro,解压后启动 `CQA.exe` 或 `CQP.exe` 并登录 QQ 机器人账号。 +前往 酷Q 官方论坛的 [版本发布](https://cqp.cc/b/news) 页面根据需要下载最新版本的 酷Q Air 或 Pro,解压后启动 `CQA.exe` 或 `CQP.exe` 并登录 QQ 机器人账号。 -如果你的操作系统是 Linux 或 macOS,可以使用版本发布页中酷 Q 官方提供的 Docker 镜像,也可以直接跳至下一节,使用 CoolQ HTTP API 插件官方提供的 Docker 镜像。 +如果你的操作系统是 Linux 或 macOS,可以使用版本发布页中 酷Q 官方提供的 Docker 镜像,也可以直接跳至下一节,使用 CoolQ HTTP API 插件官方提供的 Docker 镜像。 ::: tip 提示 -如果这是你第一次使用酷 Q,建议完成它自带的新手教程,从而对酷 Q 的运行机制有所了解。 +如果这是你第一次使用 酷Q,建议完成它自带的新手教程,从而对 酷Q 的运行机制有所了解。 ::: ## CoolQ HTTP API 插件 -前往 [CoolQ HTTP API 插件官方文档](https://cqhttp.cc/docs/),按照其教程安装插件。安装后,请先使用默认配置运行,并查看酷 Q 日志窗口的输出,以确定插件的加载、配置的生成和读取、插件版本等符合预期。 +前往 [CoolQ HTTP API 插件官方文档](https://cqhttp.cc/docs/),按照其教程安装插件。安装后,请先使用默认配置运行,并查看 酷Q 日志窗口的输出,以确定插件的加载、配置的生成和读取、插件版本等符合预期。 ::: warning 注意 请确保你安装的插件版本 >= 4.2,通常建议插件在大版本内尽量及时升级至最新版本。 diff --git a/docs/guide/notice-and-request.md b/docs/guide/notice-and-request.md index 62456bdc..4c27e9f9 100644 --- a/docs/guide/notice-and-request.md +++ b/docs/guide/notice-and-request.md @@ -1,6 +1,6 @@ # 处理通知和请求 -除了聊天消息,酷 Q 还提供了加群请求、加好友请求、出入群通知、管理员变动通知等很多其它事件,很多时候我们需要利用这些事件来实现群管功能,这也是 QQ 机器人除聊天之外的另一个很重要的应用之一。 +除了聊天消息,酷Q 还提供了加群请求、加好友请求、出入群通知、管理员变动通知等很多其它事件,很多时候我们需要利用这些事件来实现群管功能,这也是 QQ 机器人除聊天之外的另一个很重要的应用之一。 本章将介绍如何在插件中处理通知和请求。 diff --git a/docs/guide/tuling.md b/docs/guide/tuling.md index 528a3071..1f6483c9 100644 --- a/docs/guide/tuling.md +++ b/docs/guide/tuling.md @@ -49,7 +49,7 @@ async def tuling(session: CommandSession): reply = await call_tuling_api(session, message) if reply: # 如果调用图灵机器人成功,得到了回复,则转义之后发送给用户 - # 转义会把消息中的某些特殊字符做转换,以避免酷 Q 将它们理解为 CQ 码 + # 转义会把消息中的某些特殊字符做转换,以避免 酷Q 将它们理解为 CQ 码 await session.send(escape(reply)) else: # 如果调用失败,或者它返回的内容我们目前处理不了,发送无法获取图灵回复时的「表达」 @@ -231,9 +231,9 @@ async def tuling(session: CommandSession): ### 消息转义 -再看第 16 行,在调用 `session.send()` 之前先对 `reply` 调用了 `escape()`,这个 `escape()` 函数是 `aiocqhttp.message` 模块提供的,用于将字符串中的某些特殊字符进行转义。具体来说,这些特殊字符是酷 Q 看作是 CQ 码的一部分的那些字符,包括 `&`、`[`、`]`、`,`。 +再看第 16 行,在调用 `session.send()` 之前先对 `reply` 调用了 `escape()`,这个 `escape()` 函数是 `aiocqhttp.message` 模块提供的,用于将字符串中的某些特殊字符进行转义。具体来说,这些特殊字符是 酷Q 看作是 CQ 码的一部分的那些字符,包括 `&`、`[`、`]`、`,`。 -CQ 码是酷 Q 用来表示非文本消息的一种表示方法,形如 `[CQ:image,file=ABC.jpg]`。具体的格式规则,请参考酷 Q 文档的 [CQ 码](https://d.cqp.me/Pro/CQ%E7%A0%81) 和 CoolQ HTTP API 插件文档的 [CQ 码](https://cqhttp.cc/docs/#/CQCode)。 +CQ 码是 酷Q 用来表示非文本消息的一种表示方法,形如 `[CQ:image,file=ABC.jpg]`。具体的格式规则,请参考 酷Q 文档的 [CQ 码](https://d.cqp.me/Pro/CQ%E7%A0%81) 和 CoolQ HTTP API 插件文档的 [CQ 码](https://cqhttp.cc/docs/#/CQCode)。 ### 发送 Expression diff --git a/docs/guide/whats-happened.md b/docs/guide/whats-happened.md index 57559ee4..240f38e2 100644 --- a/docs/guide/whats-happened.md +++ b/docs/guide/whats-happened.md @@ -1,20 +1,20 @@ # 发生了什么? -上一章中我们已经运行了一个最小的 NoneBot 实例,在看着 QQ 机器人回复了自己的消息的同时,你可能想问,这是如何实现的?具体来说,NoneBot、CoolQ HTTP API 插件、酷 Q,这三者是如何协同工作的?本章将对这个问题做一个初步解答。 +上一章中我们已经运行了一个最小的 NoneBot 实例,在看着 QQ 机器人回复了自己的消息的同时,你可能想问,这是如何实现的?具体来说,NoneBot、CoolQ HTTP API 插件、酷Q,这三者是如何协同工作的?本章将对这个问题做一个初步解答。 ::: tip 提示 如果你已经有较丰富的 QQ 机器人开发经验,尤其是使用 CoolQ HTTP API 插件的经验,可以直接跳到 [NoneBot 出场](#nonebot-出场)。 ::: -## 一切从酷 Q 开始 +## 一切从 酷Q 开始 -我们在 [概览](/guide/) 中提到过,酷 Q 扮演着「无头 QQ 客户端」的角色,一切的消息、通知、请求的发送和接收,最根本上都是由它来完成的,我们的最小 NoneBot 实例也不例外。 +我们在 [概览](/guide/) 中提到过,酷Q 扮演着「无头 QQ 客户端」的角色,一切的消息、通知、请求的发送和接收,最根本上都是由它来完成的,我们的最小 NoneBot 实例也不例外。 -首先,我们向机器人发送的 `/echo 你好,世界` 进入腾讯的服务器,后者随后会把消息推送给酷 Q,就像推送给一个真正的 QQ 客户端一样。到这里,酷 Q 就已经收到了我们发送的消息了。 +首先,我们向机器人发送的 `/echo 你好,世界` 进入腾讯的服务器,后者随后会把消息推送给 酷Q,就像推送给一个真正的 QQ 客户端一样。到这里,酷Q 就已经收到了我们发送的消息了。 ## 进入 CoolQ HTTP API 插件 -酷 Q 在收到消息之后,按优先级依次将消息转交给已启用的各插件处理,在我们的例子中,只有一个插件,就是 CoolQ HTTP API 插件。 +酷Q 在收到消息之后,按优先级依次将消息转交给已启用的各插件处理,在我们的例子中,只有一个插件,就是 CoolQ HTTP API 插件。 CoolQ HTTP API 插件收到消息后,会将其包装为一个统一的事件格式,并对消息内容进行一个初步的处理,例如编码转换、数组化、CQ 码增强等,这里的细节目前为止不需要完全明白,在需要的时候,可以去参考 CoolQ HTTP API 插件的 [文档](https://cqhttp.cc/docs/)。 @@ -79,10 +79,10 @@ async def echo(session: CommandSession): ## 再次进入 CoolQ HTTP API 插件 -命令处理器在调用 `session.send()` 之后,NoneBot 把消息内容发送给了 CoolQ HTTP API 插件那边已连接的反向 WebSocket 客户端,同时告诉它要把消息发送到和收到消息相同的地方(即接收到消息所在的群组、讨论组或私聊)。CoolQ HTTP API 插件明白了 NoneBot 的要求之后,会对消息做一些必要的处理,然后按照指示调用酷 Q 提供的相应接口。 +命令处理器在调用 `session.send()` 之后,NoneBot 把消息内容发送给了 CoolQ HTTP API 插件那边已连接的反向 WebSocket 客户端,同时告诉它要把消息发送到和收到消息相同的地方(即接收到消息所在的群组、讨论组或私聊)。CoolQ HTTP API 插件明白了 NoneBot 的要求之后,会对消息做一些必要的处理,然后按照指示调用 酷Q 提供的相应接口。 -## 一切又在酷 Q 结束 +## 一切又在 酷Q 结束 -酷 Q 收到 CoolQ HTTP API 插件的接口调用之后,将消息内容发送给腾讯的服务器,就像一个真正的 QQ 客户端一样,于是你就收到了 QQ 机器人发来的消息了。 +酷Q 收到 CoolQ HTTP API 插件的接口调用之后,将消息内容发送给腾讯的服务器,就像一个真正的 QQ 客户端一样,于是你就收到了 QQ 机器人发来的消息了。 至此,我们已经理清楚了第一次对话中每一步到底都发生了些什么,以及 NoneBot 如何解析消息并调用到相应的命令处理器来进行回复。下面的几章中我们将一步一步地对最小 NoneBot 实例进行扩充,以实现一些非常棒的功能!