diff --git a/sdgb-cli/src/commands.rs b/sdgb-cli/src/commands.rs index 0b532b5..5f47402 100644 --- a/sdgb-cli/src/commands.rs +++ b/sdgb-cli/src/commands.rs @@ -77,6 +77,8 @@ pub enum Commands { Userdata { #[arg(short, long)] user_id: u32, + #[arg(long)] + skip_login: bool, }, #[cfg(feature = "fetchall")] diff --git a/sdgb-cli/src/main.rs b/sdgb-cli/src/main.rs index edd5f61..9dd06dc 100644 --- a/sdgb-cli/src/main.rs +++ b/sdgb-cli/src/main.rs @@ -20,7 +20,8 @@ use sdgb_api::{ model::{ DataVersion, DxCalculatedEntries, DxMusicRecord, DxRatingNet, GetUserDataApi, GetUserDataApiResp, GetUserPreviewApi, GetUserPreviewApiResp, GetUserRatingApi, - GetUserRatingApiResp, Ping, PingResp, UserLogoutApi, UserLogoutApiResp, + GetUserRatingApiResp, Ping, PingResp, UserLoginApiResp, UserLogoutApi, + UserLogoutApiResp, }, }, }; @@ -342,7 +343,10 @@ async fn main() -> Result<(), Box> { dump_json::("b50.json", B50)?; } - Commands::Userdata { user_id } => { + Commands::Userdata { + user_id, + skip_login, + } => { let action = async |_| match Sdgb1_50::request::<_, GetUserDataApiResp>( &client, APIMethod::GetUserDataApi, @@ -358,7 +362,12 @@ async fn main() -> Result<(), Box> { error!("failed to get userdata: {e}"); } }; - login_action(&client, user_id, action).await?; + // userdata does not require loginResult + if skip_login { + action(UserLoginApiResp::default()).await; + } else { + login_action(&client, user_id, action).await?; + } } }