From d2bf5478ba2a6efb8806421d1222be8fc5d9ce71 Mon Sep 17 00:00:00 2001 From: Carson McManus Date: Tue, 27 Jul 2021 19:50:39 -0400 Subject: [PATCH] require login only when session is invalid --- src/lib.rs | 10 ++++++---- src/main.rs | 16 ++++++++++++++-- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index d5531c7..e9dd82e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -130,7 +130,7 @@ impl SteamGuardAccount { return params; } - pub fn get_trade_confirmations(&self) { + pub fn get_trade_confirmations(&self) -> Result, reqwest::Error> { // uri: "https://steamcommunity.com/mobileconf/conf" // confirmation details: let url = "https://steamcommunity.com".parse::().unwrap(); @@ -175,16 +175,18 @@ impl SteamGuardAccount { let conf_key = &caps[2]; let conf_type = &caps[3]; let conf_creator = &caps[4]; - debug!("{} {} {} {}", conf_id, conf_key, conf_type, conf_creator); + debug!("conf_id={} conf_key={} conf_type={} conf_creator={}", conf_id, conf_key, conf_type, conf_creator); + return Ok(vec![format!("conf_id={} conf_key={} conf_type={} conf_creator={}", conf_id, conf_key, conf_type, conf_creator)]); } _ => { info!("No confirmations"); + return Ok(vec![]); } - } + }; } Err(e) => { error!("error: {:?}", e); - return; + return Err(e); } } } diff --git a/src/main.rs b/src/main.rs index e274943..04a925a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -128,10 +128,22 @@ fn main() { info!("trade"); for a in selected_accounts.iter_mut() { let mut account = a; // why is this necessary? - do_login(&mut account); info!("Checking for trade confirmations"); - account.get_trade_confirmations(); + loop { + match account.get_trade_confirmations() { + Ok(confs) => { + for conf in confs { + println!("{}", conf); + } + break; + } + Err(_) => { + info!("failed to get trade confirmations, asking user to log in"); + do_login(&mut account); + } + } + } } } else { let server_time = steamapi::get_server_time();