3 个版本
0.1.2 | 2023 年 3 月 1 日 |
---|---|
0.1.1 | 2022 年 12 月 3 日 |
0.1.0 | 2022 年 12 月 2 日 |
在 #bot 中排名第 96
650KB
11K SLoC
traq-ws-bot
使用方法
警告:当前的 examples 无法运行,需要修正
参考: examples
在 traP 内 wiki 中有关于使用 Go 创建的方法 traP 内 wiki に記載あり
在此,我们将针对了解 Rust 的人,从创建到运行 BOT 进行说明
- 从 traQ BOT 控制台 的 BOTs 中创建 BOT
注:在此操作中,需要将操作模式设置为 WebSocket - 在 bot-console 中设置 BOT 接收的事件
有关事件的详细类型,请参阅 BOT 事件参考
如果只需运行 echo-bot,则只需在 DIRECT_MESSAGE_CREATED 处勾选即可 - 如果只需运行,则可以将 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_bot
的openapi
功能后,可以使用以下函数:traq_ws_bot::openapi::apis
在这种情况下,使用traq_ws_bot::utils::create_configuration
可以更轻松地构建配置。
部署方法
WIP
可以参考https://github.com/SSlime-s/BOT_SSlime/blob/main/showcase.yaml或https://github.com/SSlime-s/BOT_SSlime/tree/main/.github来编写。
依赖项
~8–21MB
~316K SLoC