feat: implement full user music fetch

This commit is contained in:
mokurin000
2025-08-02 00:02:57 +08:00
parent 7b4dfbe5b2
commit f000b8636c
5 changed files with 95 additions and 6 deletions

View File

@@ -76,6 +76,7 @@ api_implement!([
"GetUserDataApi",
"GetUserPreviewApi",
"GetUserRatingApi",
"GetUserMusicApi",
]);
#[cfg(test)]

View File

@@ -0,0 +1,41 @@
use serde::Deserialize;
use serde::Serialize;
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GetUserMusicApi {
pub user_id: u32,
pub next_index: u32,
pub max_count: u32,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GetUserMusicApiResp {
pub user_id: u32,
pub length: u32,
pub next_index: u32,
pub user_music_list: Vec<UserMusic>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UserMusic {
pub user_music_detail_list: Vec<UserMusicDetail>,
pub length: u32,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UserMusicDetail {
pub music_id: u32,
pub level: u32,
pub play_count: i64,
pub achievement: i64,
pub combo_status: i64,
pub sync_status: i64,
pub deluxscore_max: i64,
pub score_rank: i64,
pub ext_num1: i64,
pub ext_num2: i64,
}

View File

@@ -11,7 +11,7 @@ mod user_login_api;
pub use user_login_api::{LoginError, UserLoginApi, UserLoginApiResp};
mod get_user_data_api;
pub use get_user_data_api::{GetUserDataApi, GetUserDataApiResp};
pub use get_user_data_api::{GetUserDataApi, GetUserDataApiResp, UserData};
mod get_user_rating_api;
pub use get_user_rating_api::dxrating::{
@@ -22,4 +22,13 @@ pub use get_user_rating_api::dxrating::{
DxRatingNet,
DxSheetId,
};
pub use get_user_rating_api::{GetUserRatingApi, GetUserRatingApiResp};
pub use get_user_rating_api::{
GetUserRatingApi,
GetUserRatingApiResp, // api
MusicRating,
Udemae,
UserRating,
};
mod get_user_music_api;
pub use get_user_music_api::{GetUserMusicApi, GetUserMusicApiResp, UserMusic};