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 but will be made dynamic later on.

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