use twitch_api::{helix::streams::GetStreamsRequest, types, HelixClient}; use twitch_oauth2::{AccessToken, UserToken}; fn main() { use std::error::Error; if let Err(err) = run() { println!("Error: {err}"); let mut e: &'_ dyn Error = err.as_ref(); while let Some(cause) = e.source() { println!("Caused by: {cause}"); e = cause; } } } #[tokio::main] async fn run() -> Result<(), Box> { let _ = dotenvy::dotenv(); let mut args = std::env::args().skip(1); let client: HelixClient = HelixClient::new(); let token = UserToken::from_existing( &client, std::env::var("TWITCH_TOKEN") .ok() .or_else(|| args.next()) .map(AccessToken::new) .expect("Please set env: TWITCH_TOKEN or pass token as first argument"), None, None, ) .await .unwrap(); let response = client .req_get( GetStreamsRequest::user_logins( &[types::UserNameRef::from_str(&args.next().unwrap())][..], ), &token, ) .await .unwrap() .data; println!("Stream information:\n\t{response:?}"); Ok(()) }