Crate trovo

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
Chat

Structs§

AccessTokenExpired
Error returned by AccessTokenOnly when refresh_token is called.
AccessTokenOnly
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.
ApiError
Struct representing errors that trovo api responds with.
ChannelEmotes
Channel id and its emotes
ChannelInfo
Response for the get users api
ChannelUpdate
Fields to update on a channel
ChannelUpdatePayload
Payload for the channel update endpoint
Client
Entrypoint for making requests to the Trovo api.
ClientId
A simple client id provider that simply wraps the client id string
CustomizedEmotes
Container for customized emotes
Emote
Common emote payload across types
EmoteChannels
Map of different emote types
GetChannelByIdPayload
Payload for the get channel info by id api
GetEmotesPayload
Payload for the get emotes api call
GetEmotesResponse
Response for the get emotes api
GetUsersPayload
Payload for the get users api
GetUsersResponse
Response for the get users api
SocialLink
Social media link for a channel
User
User details returned by Client::users

Enums§

AccessToken
Represents an access token
AudienceType
Audience type of a channel
AuthenticatedRequestError
Standard errors that can occur on most api calls
EmoteFetchType
Types of emotes to fetch
ErrorStatus
Error codes returned by the Trovo api
RequestError
Standard errors that can occur on most api calls

Traits§

AccessTokenProvider
A trait for an auth provider that can provide an access token.
ClientIdProvider
A trait for an auth provider that can provide a client id