Miraie 是一个基于 mirai 和 mirai-api-http 的 Rust 机器人框架。
```rust
/// 实现一个最简单的 ping-pong 服务,它会对消息 ping 回复 pong,并在五秒后撤回该 pong。
async fn pingponghandler
/// 这个例子说明了交互式的对话是怎么进行的。该 handler 只对群聊消息生效。
///
/// 消息过程:
/// text
/// 复读一下 <
/// > 真的要复读吗?请在 10 秒内进行确认
/// 确认 <
/// > 确认成功,复读下一句
/// Are you ok? <
/// > Are you ok?
///
async fn ongroupmsgconfirm(groupmsg: GroupMessage, bot: Bot) -> Result<()> {
if groupmsg.message.tostring() == "复读一下" {
let nextmsg = groupmsg
.prompt("真的要复读吗?请在 10 秒内进行确认", &bot)
.await?;
if next_msg.message.as_confirm() == Some(true) {
group_msg.reply("确认成功,复读下一句", &bot).await?;
info!("开始复读,等待下一句");
// 等待下一句
let next = group_msg
.followed_sender_messages(&bot)
.next()
.await
.context("连接断开了哦")?;
info!("复读这一句话:{:?}", next);
// 进行一个读的复
next.reply_unquote(next.message.clone(), &bot).await?;
} else {
group_msg.reply("确认失败", &bot).await?;
}
}
Ok(())
}
// ping pong 服务对群聊和私聊都进行注册
bot.handler(pingponghandler::
```
上面的机器人完整代码可以在 simple_bot.rs 示例代码 中找到。
一个更完整的、带有管理员、配置文件的机器人示例可以在 avabot 找到。
Approve
traitMIRAIE_RESOURCE_ROOT
:资源的根目录,这个需要是 mirai 运行时的目录,如果 mirai 运行在机器 A 上,rust bot 运行在机器 B 上,这个需要是机器 A 上的路径。