1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use twitch_api::helix::streams::GetStreamsRequest;
use twitch_api::TwitchClient;
use twitch_oauth2::{AccessToken, UserToken};
#[tokio::main]
async fn main() {
let _ = dotenvy::dotenv();
let mut args = std::env::args().skip(1);
let client: TwitchClient<reqwest::Client> = TwitchClient::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 streams: Vec<String> = args.collect();
let req = GetStreamsRequest::default();
let response = client.helix.req_get(req, &token).await.unwrap();
println!("GetStreams:\n\t{:?}", response.data);
if let Some(stream) = streams.get(0) {
println!(
"{:?}",
client.tmi.get_chatters(stream.as_str().into()).await
);
} else if let Some(stream) = response.data.get(0).map(|stream| &stream.user_login) {
println!("{:?}", client.tmi.get_chatters(stream).await);
}
}