8个版本 (4个重大变更)
0.5.2 | 2020年2月21日 |
---|---|
0.5.1 | 2020年2月19日 |
0.4.0 | 2019年3月25日 |
0.3.1 | 2018年6月21日 |
0.1.0 | 2018年6月12日 |
#11 in #fractal
每月52次下载
23KB
252 代码行
matrix_bot_api
用于在Rust中编写Matrix-bots(请参阅matrix.org)的API。
依赖
它使用由fractal消息传递器(fractal-matrix-api)提供的Matrix-API。
如何使用
请参阅examples目录
lib.rs
:
matrix_bot_api
易于使用的API,用于实现自己的Matrix-Bot(请参阅matrix.org)
基本设置
主要有两个部分:一个MessageHandler
和一个MatrixBot
。MessageHandler定义了接收到消息后的操作。MatrixBot消费你的MessageHandler并处理所有矩阵协议相关的事务,为每个新的文本消息调用你的MessageHandler,并提供一个ActiveBot
处理句柄,允许处理程序响应该消息。
你可以通过实现MessageHandler
-trait来编写自己的MessageHandler,或者使用此crate提供的一个(目前只有StatelessHandler
)。
多个处理程序
可以在机器人中注册多个MessageHandlers。因此,可以“即插即用”地将不同的功能添加到MatrixBot中。消息按照注册顺序传递给每个处理程序。一个消息会传递给下一个处理程序,直到一个处理程序返回StopHandling
。因此,一个消息也可以由多个处理程序处理(例如“帮助”)。
示例
extern crate matrix_bot_api;
use matrix_bot_api::{MatrixBot, MessageType};
use matrix_bot_api::handlers::{StatelessHandler, HandleResult};
fn main() {
let mut handler = StatelessHandler::new();
handler.register_handle("shutdown", |bot, _, _| {
bot.shutdown();
HandleResult::ContinueHandling /* Other handlers might need to clean up after themselves on shutdown */
});
handler.register_handle("echo", |bot, message, tail| {
bot.send_message(&format!("Echo: {}", tail), &message.room, MessageType::TextMessage);
HandleResult::StopHandling
});
let mut bot = MatrixBot::new(handler);
bot.run("your_bot", "secret_password", "https://your.homeserver");
}
请查看examples/目录中的详细示例。
依赖
~29MB
~618K SLoC