TwitchAlerts

A rust crate to allow the users to detect when a streamer is live a trigger a custom event. Requires a Surreal Database but does support Memory and File Surreal Databases. Rate Limiting is currently hardcoded at 80ms between individual checks but the delay between Check Cycles is fully customisable each streamer can currently be checked once every 30 seconds.

Features

Example

```rust use asynctrait::asynctrait; use chrono::Utc; use surrealdb::engine::local::Mem; use surrealdb::Surreal; use twitchalerts::client::{StreamData, Streamer, Client}; use twitchalerts::traits::EventHandler;

pub struct Handler;

[async_trait]

impl EventHandler for Handler { async fn on_stream(&self, streamer: &Streamer, stream: &StreamData) { !todo(); }

async fn on_error(&self, error: String) {
    !todo();
}

}

async fn main() -> Result<(), ()> { let db = Surreal::new::(()).await?;

db.use_ns("namespace").use_db("database").await?;

let streamer: Streamer = Streamer {
    id: "".to_string(),
    name: "example_streamer".to_string(),
    alerts: true,
    last_streamed: Utc::now(),
};

db.query("CREATE streamers SET name = $name, alerts = $alerts, last_streamed = $last_streamed").bind(&streamer).await?;

_ = Client::new("client id", "client token").database(db).event_handler(Handler).run().await?;

Ok(())

} ```

Dependencies

Authors