3 个版本

0.1.2 2023 年 3 月 1 日
0.1.1 2022 年 12 月 3 日
0.1.0 2022 年 12 月 2 日

#bot 中排名第 96

MIT 许可证

650KB
11K SLoC

traq-ws-bot

文档

使用方法

警告:当前的 examples 无法运行,需要修正
参考: examples

在 traP 内 wiki 中有关于使用 Go 创建的方法 traP 内 wiki に記載あり

在此,我们将针对了解 Rust 的人,从创建到运行 BOT 进行说明

  1. traQ BOT 控制台 的 BOTs 中创建 BOT
    注:在此操作中,需要将操作模式设置为 WebSocket
  2. 在 bot-console 中设置 BOT 接收的事件
    有关事件的详细类型,请参阅 BOT 事件参考
    如果只需运行 echo-bot,则只需在 DIRECT_MESSAGE_CREATED 处勾选即可
  3. 如果只需运行,则可以将 examples/echo-bot-openapi 的内容复制到本地,并修改 Cargo.toml 中 traq-ws-bot 的依赖关系,然后从 bot-console 将访问令牌 .env.BOT_ACCESS_TOKEN=令牌 的形式记录下来,然后执行 cargo run 即可运行

BOT 的构建方法

BOT 是使用 traq_ws_bot::bot::builder 创建的。
创建时需要 BOT 访问令牌,此处设置的值不能在后续的处理器中读取,仅用于获取事件。

BOT 只能拥有一个资源,可以通过 .insert_resource(资源) 的形式设置。如果多次调用,则只采用最后一次调用。
资源必须是 Send + Sync + 'static,但如果足够不可变,则可以通过使用 Arc 等方式将一般结构体包装起来。
执行 .insert_resource 后,之前设置的处理器将被删除,无论是否使用资源,因此强烈建议在 builder 的直接链中调用。

BOT 可以无限期地添加处理器。不使用资源的处理器可以像 .on_event_name(处理器) 一样编写,使用资源的处理器可以像 .on_event_name_with_resource(处理器) 一样编写。
处理器可以是普通的函数或捕获环境不的闭包。
可以使用 .on_event(Key, 处理器) 使用一个处理器来集中设置多个事件或所有事件。

以下是一些一般性的建议:对于message发布的event,可以通过message.user.bot这样的方式来获取事件是否由BOT引起,因此为了防止无限循环,如果是从BOT接收到的消息,则最好在handler中执行不回复的处理。l

API调用方式

通常使用reqwest等API客户端库,通过点击API文档中的链接来实现调用。在这种情况下,使用traq_ws_bot::utils::create_client可以更轻松地生成客户端。

也可以使用Open API自动生成的代码,在激活了traq_ws_botopenapi功能后,可以使用以下函数:traq_ws_bot::openapi::apis
在这种情况下,使用traq_ws_bot::utils::create_configuration可以更轻松地构建配置。

部署方法

WIP

可以参考https://github.com/SSlime-s/BOT_SSlime/blob/main/showcase.yamlhttps://github.com/SSlime-s/BOT_SSlime/tree/main/.github来编写。

依赖项

~8–21MB
~316K SLoC