5个版本
使用旧的Rust 2015
0.0.5 | 2019年8月9日 |
---|---|
0.0.4 | 2018年9月14日 |
0.0.3 | 2018年3月24日 |
0.0.2 | 2018年3月7日 |
0.0.1 | 2018年3月6日 |
#8 in #riot
31KB
536 行
痴呆症
Matrix协议的Rust小型库
状态
目前,仅支持以下功能
- 加入房间
- 发送文本消息和
- 接收文本消息
计划在未来支持房间创建和接收其他类型的消息。
用法
为了连接到Matrix homeserver并加入房间,你需要在那个homeserver上有一个用户,并为此用户有一个访问令牌。
let server_url = "https://matrix.org"; // The Matrix homeserver
let access_token = "DAx…3wo"; // The Matrix user access token
有了这个,你可以创建一个Homeserver对象
let connection = Homeserver::new(server_url)
.access_token(access_token)
.connect();
或者
let connection = MatrixHomeserver::connect(server_url, access_token);
并使用此对象加入房间
let mut room = connection.join("#bottest:https://matrix.org".to_owned());
(即使你已经加入了房间,你也需要加入你想要交互的房间。这是为了让库获取房间ID。)
你可以通过connection.get_new_messages()
(返回自上次调用以来所有消息的Vector<String>
)接收新消息,并通过connection.send_message()
(接受一个String
)发送消息。
示例
extern crate dementia;
use dementia::{Homeserver, Room};
use std::{thread, time};
fn main() {
let server_url = "https://matrix.org"; // The Matrix homeserver
let access_token = "DAx…3wo"; // The Matrix user access token
let conn = Homeserver::new(server_url)
.access_token(access_token)
.connect();
// The room must already exist
let mut room = conn.join("#bottest:https://matrix.org".to_owned());
let five_sec = time::Duration::new(5, 0);
loop {
for message in conn.get_new_messages() {
if message == "hi" {
conn.send_message("ahoi!".to_owned());
}
}
thread::sleep(five_sec);
}
}
如果你还没有访问令牌,但服务器支持密码认证,你可以让库生成自己的访问令牌
let connection = Homeserver::new("https://matrix.org")
.username("@example:matrix.org")
.password("examplepassword")
.login()
.connect();
然后,你可以使用以下方法检索访问令牌以用于未来的连接
access_token = connection.get_access_token();
依赖
~19MB
~426K SLoC