Nonebot-rs
Nonebot-rs 简称 nbrs,Onebot 协议机器人框架 Rust 实现。
本框架的基本目标是实现一个可扩展的 Rust Onebot 机器人框架。
nbrs 设计
nbrs 本体负责与 Onebot 实现端建立连接、将 Onebot 通信转化抽象为 Event 与 Bot (可以调用 Onebot Api 的 struct),并向各 Plugin 分发、读取配置文件。
matcher 是 nbrs 内建的一个 Plugin,思路基于 Nonebot2 的插件式 Matcher,接收 nbrs 推送事件后逐级匹配处理事件。尽可能提供与 Nonebot2 接近的开发体验。
scheduler 为内建定时任务插件。
Nonebotrs.toml
当第一次运行 nbrs 时将会自动创建 Nonebotrs.toml 配置文件。
[] # 全局设置
= true # 开启 debug log
= ["YourID"] # 全局管理员账号
= ["nickname"] # 全局 Bot 昵称
= ["/"] # 全局命令起始符
[] # 反向 WS 服务器
= "127.0.0.1" # 监听 host
= 8088 # 监听 port
= "AccessToken" # 连接鉴权使用
[] # Bot 设置
= ["YourID"] # 管理员账户
= ["nickname"] # Bot 昵称
= ["/"] # 命令起始符
= "server address" # 正向 WS 服务器地址(缺省不启用正向 WS 连接)
= "AccessToken" # 连接鉴权使用
Plugin
To-do
暂时可以参考 Mathcers (咕咕咕)
Matcher
需要启用 feature matcher
最小运行实例:
Matcher 开发:
use *;
use encode;
// handler struct 需要生成 Clone trait
// 定义 handler struct,可以在该结构体容纳静态数据
// Matcher 的构建函数
使用 Onebot Api:
let msg: = matcher.get_msg.await
没有启用 matcher ?
let msg: = bot.get_msg.await
就是这么简单~
定时任务
需要启用 feature scheduler
定义一个定时任务
use ;
// Just for test
async
注册定时任务
use nonebot_rs;
enjoy~