#chat #chat-client #api-client #api #api-bindings

trovo

用 Rust 编写和用于 trovo.live API 及聊天客户端

8 个版本 (5 个破坏性版本)

0.6.0 2024年6月12日
0.5.0 2022年7月25日
0.4.0 2021年7月28日
0.3.0 2021年7月26日
0.1.0 2021年7月5日

#111 in HTTP 客户端

MIT/Apache

58KB
1K SLoC

Crates.io Crates.io Docs.rs Workflow Status

trovo-rs

Rust API 和聊天客户端,用于 Trovo

它目前不支持所有 trovo API,欢迎提交 PR 添加新端点。

示例

通过用户名查找用户,然后连接到他们的聊天。

use futures::prelude::*;
use std::{env, error::Error};
use trovo::ClientId;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let client_id = env::var("CLIENT_ID").expect("missing CLIENT_ID env var");
    let username = env::var("USER_NAME").expect("missing USER_NAME env var");

    let client = trovo::Client::new(ClientId::new(client_id));

    println!("looking up user '{}'", username);
    let user = client
        .user(username)
        .await?
        .expect("no user found for the given username");
    println!("found user {:#?}", user);

    let mut messages = client.chat_messages_for_channel(&user.channel_id).await?;
    println!("listening for chat messages");
    while let Some(msg) = messages.next().await {
        let msg = msg?;
        println!("[{}] {}", msg.nick_name, msg.content);
    }

    Ok(())
}

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的,您提交给作品以供包含在内的任何贡献,将按照上述方式双重许可,不附加任何额外条款或条件。

依赖项

~7–22MB
~281K SLoC