use steam_user::{SteamUser, SteamUserError};
use tracing::info;
#[tokio::main]
async fn main() -> Result<(), SteamUserError> {
tracing_subscriber::fmt::init();
let community = SteamUser::new(&["steamLoginSecure=76561198012345678||YOUR_ACCESS_TOKEN", "sessionid=YOUR_SESSION_ID"])?;
let identity_secret = "YOUR_IDENTITY_SECRET_BASE64";
info!("Fetching confirmations...");
let confirmations = community.get_confirmations(identity_secret, None).await?;
info!("Found {} confirmations:", confirmations.len());
for conf in &confirmations {
info!("\n=== Confirmation ===");
info!(" ID: {}", conf.id);
info!(" Key: {}", conf.key);
info!(" Type: {:?}", conf.conf_type);
info!(" Creator: {}", conf.creator);
info!(" Title: {}", conf.title);
info!(" Sending: {}", conf.sending);
info!(" Receiving: {}", conf.receiving);
if let Some(offer_id) = conf.offer_id() {
info!(" Trade Offer ID: {}", offer_id);
}
}
let trade_confirmations: Vec<_> = confirmations.iter().filter(|c| c.conf_type == steam_user::types::ConfirmationType::Trade).cloned().collect();
if !trade_confirmations.is_empty() {
info!("\nAccepting {} trade confirmations...", trade_confirmations.len());
community.respond_to_confirmations(&trade_confirmations, identity_secret, true).await?;
info!("Trade confirmations accepted!");
}
if let Some(first_conf) = confirmations.first() {
info!("\nAccepting first confirmation...");
community.respond_to_confirmation(first_conf, identity_secret, true).await?;
info!("Confirmation accepted!");
}
let trade_offer_id: u64 = 123456789; info!("\nLooking for confirmation for trade offer {}...", trade_offer_id);
match community.accept_confirmation_for_object(identity_secret, trade_offer_id).await {
Ok(()) => info!("Trade offer confirmation accepted!"),
Err(SteamUserError::ConfirmationNotFound(id)) => {
info!("No confirmation found for object ID: {}", id);
}
Err(e) => return Err(e),
}
Ok(())
}