feat: add helper for userallmusicdetail
This commit is contained in:
@@ -15,12 +15,12 @@ use sdgb_api::{
|
||||
auth_lite::{SDGB, SDHJ, delivery_raw},
|
||||
title::{
|
||||
MaiVersionExt, Sdgb1_50,
|
||||
helper::get_user_all_music,
|
||||
methods::APIMethod,
|
||||
model::{
|
||||
DataVersion, DxCalculatedEntries, DxMusicRecord, DxRatingNet, GetUserDataApi,
|
||||
GetUserDataApiResp, GetUserMusicApi, GetUserMusicApiResp, GetUserPreviewApi,
|
||||
GetUserPreviewApiResp, GetUserRatingApi, GetUserRatingApiResp, Ping, PingResp,
|
||||
UserLogoutApi, UserLogoutApiResp,
|
||||
GetUserDataApiResp, GetUserPreviewApi, GetUserPreviewApiResp, GetUserRatingApi,
|
||||
GetUserRatingApiResp, Ping, PingResp, UserLogoutApi, UserLogoutApiResp,
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -79,35 +79,7 @@ async fn main() -> Result<(), Box<dyn snafu::Error>> {
|
||||
// TODO: refactor via enum_dispatch
|
||||
match command {
|
||||
Commands::MusicDetail { user_id, format } => {
|
||||
let mut music_detail = Vec::new();
|
||||
let mut index = None;
|
||||
|
||||
loop {
|
||||
let GetUserMusicApiResp {
|
||||
next_index,
|
||||
mut user_music_list,
|
||||
..
|
||||
} = Sdgb1_50::request::<_, GetUserMusicApiResp>(
|
||||
&client,
|
||||
APIMethod::GetUserMusicApi,
|
||||
user_id,
|
||||
GetUserMusicApi {
|
||||
user_id,
|
||||
next_index: index.unwrap_or_default(),
|
||||
max_count: 50,
|
||||
},
|
||||
)
|
||||
.await?;
|
||||
|
||||
for list in &mut user_music_list {
|
||||
music_detail.append(&mut list.user_music_detail_list);
|
||||
}
|
||||
|
||||
if next_index == 0 || user_music_list.is_empty() {
|
||||
break;
|
||||
}
|
||||
index = Some(next_index);
|
||||
}
|
||||
let music_detail = get_user_all_music(&client, user_id).await?;
|
||||
|
||||
match (human_readable, format) {
|
||||
(true, _) => {
|
||||
|
||||
Reference in New Issue
Block a user