#[path = "common.rs"]
mod common;
use egs_api::api::types::cosmos::CosmosEulaResponse;
#[tokio::main]
async fn main() {
env_logger::init();
let mut egs = egs_api::EpicGames::new();
if !common::login_or_restore(&mut egs).await {
eprintln!("Authentication failed. Run the 'auth' example first.");
std::process::exit(1);
}
let token = egs
.try_game_token()
.await
.expect("Failed to get game token");
println!("Exchange code obtained, setting up Cosmos session...");
let auth = egs
.cosmos_session_setup(&token.code)
.await
.expect("Cosmos session setup failed");
println!(
"Cosmos auth: bearerTokenValid={}, upgradedBearerToken={}",
auth.bearer_token_valid, auth.upgraded_bearer_token
);
let eula: CosmosEulaResponse = egs
.try_cosmos_eula_check("unreal_engine2", "en")
.await
.expect("EULA check failed");
println!("UE EULA accepted: {}", eula.accepted);
if let Some(account) = egs.cosmos_account().await {
println!("Account: {} ({})", account.display_name, account.country);
}
if let Some(versions) = egs.engine_versions("linux").await {
println!("\nLinux engine builds ({} blobs):", versions.blobs.len());
for blob in versions.blobs.iter().take(5) {
println!(" {} ({} bytes)", blob.name, blob.size);
}
if versions.blobs.len() > 5 {
println!(" ... and {} more", versions.blobs.len() - 5);
}
}
}