Crate trovo

source · []
Expand description

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.

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(())
}

Modules

Chat

Structs

Error returned by AccessTokenOnly when refresh_token is called.

A simple access token provider that errors if refreshing is attempted. It is strongly advised that you implement your own AccessTokenProvider so that you can handle refreshing.

Struct representing errors that trovo api responds with.

Channel id and its emotes

Response for the get users api

Fields to update on a channel

Payload for the channel update endpoint

Entrypoint for making requests to the Trovo api.

A simple client id provider that simply wraps the client id string

Container for customized emotes

Common emote payload across types

Map of different emote types

Payload for the get channel info by id api

Payload for the get emotes api call

Response for the get emotes api

Payload for the get users api

Response for the get users api

Social media link for a channel

User details returned by Client::users

Enums

Represents an access token

Audience type of a channel

Standard errors that can occur on most api calls

Types of emotes to fetch

Error codes returned by the Trovo api

Standard errors that can occur on most api calls

Traits

A trait for an auth provider that can provide an access token.

A trait for an auth provider that can provide a client id