diff --git a/.gitignore b/.gitignore index 0631b18..2c6cfd4 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ /players.redb /players.json* + +/*.json \ No newline at end of file diff --git a/sdgb-api/src/title/methods/mod.rs b/sdgb-api/src/title/methods/mod.rs index 3169602..d71e952 100644 --- a/sdgb-api/src/title/methods/mod.rs +++ b/sdgb-api/src/title/methods/mod.rs @@ -75,6 +75,7 @@ api_implement!([ "UserLogoutApi", "GetUserDataApi", "GetUserPreviewApi", + "GetUserRatingApi", ]); #[cfg(test)] diff --git a/sdgb-api/src/title/model/get_user_rating_api/mod.rs b/sdgb-api/src/title/model/get_user_rating_api/mod.rs new file mode 100644 index 0000000..1bd0a80 --- /dev/null +++ b/sdgb-api/src/title/model/get_user_rating_api/mod.rs @@ -0,0 +1,85 @@ +use serde::Deserialize; +use serde::Serialize; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct GetUserRatingApi { + pub user_id: u32, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct GetUserRatingApiResp { + pub user_id: u32, + pub user_rating: UserRating, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct UserRating { + pub rating: i64, + /// b35 + pub rating_list: Vec, + /// b15 + pub new_rating_list: Vec, + /// 候补 b35 + pub next_rating_list: Vec, + /// 候补 b15 + pub next_new_rating_list: Vec, + pub udemae: Udemae, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct RatingList { + /// Maimai music id + pub music_id: u32, + /// difficulty + /// + /// - 0: BASIC + /// - 1: ADVANCED + /// - 2: EXPERT + /// - 3: MASTER + /// - 4: RE: MASTER + /// - 5: Utage 宴会场 + pub level: u32, + /// 歌曲 ROM 版本(解析未知) + pub rom_version: i64, + /// 达成率 * 10000 的整数 + pub achievement: i64, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Udemae { + pub max_lose_num: i64, + pub npc_total_win_num: i64, + pub npc_total_lose_num: i64, + pub npc_max_win_num: i64, + pub npc_max_lose_num: i64, + pub npc_win_num: i64, + pub npc_lose_num: i64, + pub rate: i64, + pub class_value: i64, + pub max_rate: i64, + pub max_class_value: i64, + pub total_win_num: i64, + pub total_lose_num: i64, + pub max_win_num: i64, + pub win_num: i64, + pub lose_num: i64, + #[serde(rename = "MaxLoseNum")] + pub max_lose_num2: i64, + #[serde(rename = "NpcTotalWinNum")] + pub npc_total_win_num2: i64, + #[serde(rename = "NpcTotalLoseNum")] + pub npc_total_lose_num2: i64, + #[serde(rename = "NpcMaxWinNum")] + pub npc_max_win_num2: i64, + #[serde(rename = "NpcMaxLoseNum")] + pub npc_max_lose_num2: i64, + #[serde(rename = "NpcWinNum")] + pub npc_win_num2: i64, + #[serde(rename = "NpcLoseNum")] + pub npc_lose_num2: i64, +} diff --git a/sdgb-api/src/title/model/mod.rs b/sdgb-api/src/title/model/mod.rs index cf1ebe0..fa5266f 100644 --- a/sdgb-api/src/title/model/mod.rs +++ b/sdgb-api/src/title/model/mod.rs @@ -12,3 +12,6 @@ pub use user_login_api::{LoginError, UserLoginApi, UserLoginApiResp}; mod get_user_data_api; pub use get_user_data_api::{GetUserDataApi, GetUserDataApiResp}; + +mod get_user_rating_api; +pub use get_user_rating_api::{GetUserRatingApi, GetUserRatingApiResp};