use async_std::task;
use igdb::client::IGDBClient;
use igdb::media_quality::MediaQuality;
use std::io::Write;
fn main() {
task::block_on(async {
use std::env;
let client_id =
env::var("IGDB_CLIENT_ID").expect("You nee to set the IGDB_CLIENT_ID variable");
let token = env::var("IGDB_TOKEN").expect("You nee to set the IGDB_TOKEN variable");
let igdb_client = IGDBClient::new(&client_id, &token);
let games_client = igdb_client.games();
let witcher = games_client.get_first_by_name("Witcher 3").await.unwrap();
let screenshots_client = igdb_client.screenshots();
let screenshots_response = screenshots_client
.get_by_game_id(witcher.id, 3)
.await
.unwrap();
for screen in screenshots_response {
let bytes = screenshots_client
.get_resource_by_id(screen.id, MediaQuality::FullHD)
.await
.unwrap();
debug_assert!(bytes.len() > 0);
let mut f = std::fs::File::create(format!("{}.jpg", screen.id)).unwrap();
f.write_all(&bytes).unwrap();
}
})
}