use async_std::task; use igdb::client::IGDBClient; use igdb::media_quality::MediaQuality; fn main() { femme::with_level(log::LevelFilter::Debug); 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 game = games_client .get_first_by_name("Borderlands 2") .await .unwrap(); let platforms_client = igdb_client.platforms(); let platform_logos_client = igdb_client.platform_logos(); for p_id in game.platforms { let platform = platforms_client .get_first_by_id(p_id as usize) .await .unwrap(); platform_logos_client .download_by_id( platform.platform_logo, format!("{}.png", platform.name), MediaQuality::Original, ) .await .unwrap(); } }) }