#bot #bot-api #fractal #matrix

matrix_bot_api

Matrix消息协议的机器人API

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

Download history 3/week @ 2024-05-18 2/week @ 2024-06-15 2/week @ 2024-06-22 52/week @ 2024-07-27

每月52次下载

MITGPL-3.0许可证

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