Crates.io Crates.io Docs.rs Workflow Status

trovo-rs

A Rust api & chat client for Trovo.

It currently doesn't support all of the trovo api, feel free to open a PR adding new endpoints.

Example

Find a user by username and then connect to their chat.

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

[tokio::main]

async fn main() -> Result<(), Box> { let clientid = env::var("CLIENTID").expect("missing CLIENTID env var"); let username = env::var("USERNAME").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(())

} ```

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.