chore: add getUserDataApi

This commit is contained in:
mokurin000
2025-07-30 22:40:41 +08:00
parent f23c92628d
commit be2e430fcc
3 changed files with 168 additions and 0 deletions

View File

@@ -0,0 +1,131 @@
use serde::Deserialize;
use serde::Serialize;
pub struct GetUserDataApi {}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GetUserDataApiResp {
pub user_id: u32,
pub user_data: UserData,
pub ban_state: u32,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UserData {
/// your username, in full-width character
pub user_name: String,
/// should be `1`
pub is_net_member: i64,
/// maimile, 舞里程
pub point: i64,
/// 总获取过舞里程
pub total_point: i64,
/// DX RATING
pub player_rating: i64,
pub music_rating: i64,
/// B35
pub player_old_rating: i64,
/// B15
pub player_new_rating: i64,
/// highest total dx rating
pub highest_rating: i64,
pub grade_rating: i64,
/// 级别认定
pub grade_rank: i64,
/// 段位认定
pub course_rank: i64,
/// 友人对战段位
pub class_rank: i64,
pub nameplate_id: i64,
pub frame_id: i64,
pub icon_id: i64,
pub trophy_id: i64,
pub plate_id: i64,
pub title_id: i64,
pub partner_id: i64,
pub chara_slot: Vec<i64>,
pub chara_lock_slot: Vec<i64>,
pub content_bit: i64,
pub select_map_id: i64,
/// 总游玩次数
pub play_count: i64,
/// 当前版本游玩次数
pub current_play_count: i64,
pub play_vs_count: i64,
pub play_sync_count: i64,
pub win_count: i64,
pub help_count: i64,
pub combo_count: i64,
/// 总 DX 分数
pub total_deluxscore: i64,
/// 绿 DX 分数
pub total_basic_deluxscore: i64,
/// 黄 DX 分数
pub total_advanced_deluxscore: i64,
/// 红 DX 分数
pub total_expert_deluxscore: i64,
/// 紫 DX 分数
pub total_master_deluxscore: i64,
/// 白 DX 分数
pub total_re_master_deluxscore: i64,
/// 总 Sync
pub total_sync: i64,
pub total_basic_sync: i64,
pub total_advanced_sync: i64,
pub total_expert_sync: i64,
pub total_master_sync: i64,
pub total_re_master_sync: i64,
pub total_achievement: i64,
pub total_basic_achievement: i64,
pub total_advanced_achievement: i64,
pub total_expert_achievement: i64,
pub total_master_achievement: i64,
pub total_re_master_achievement: i64,
pub event_watched_date: String,
/// 最后游玩ROM版本
pub last_rom_version: String,
/// 最后游玩数据版本
pub last_data_version: String,
/// 上次登陆日期
pub last_login_date: String,
/// 上次游玩结束日期
pub last_play_date: String,
/// 上次双人登陆日期
pub last_pair_login_date: String,
/// 上次免费游玩日期
pub last_trial_play_date: String,
pub last_play_credit: i64,
pub last_play_mode: i64,
pub last_place_id: i64,
pub last_all_net_id: i64,
pub last_region_id: i64,
pub last_region_name: String,
pub last_country_code: String,
#[serde(rename = "lastSelectEMoney")]
pub last_select_emoney: i64,
pub last_select_ticket: i64,
pub last_select_course: i64,
pub last_count_course: i64,
pub first_game_id: String,
pub first_rom_version: String,
pub first_data_version: String,
pub first_play_date: String,
pub compatible_cm_version: String,
pub total_awake: i64,
pub daily_bonus_date: String,
pub daily_course_bonus_date: String,
pub map_stock: i64,
pub rename_credit: i64,
pub friend_regist_skip: i64,
pub cm_last_emoney_credit: i64,
pub cm_last_emoney_brand: i64,
// below are some null field
// pub access_code: Value,
// pub friend_code: Value,
// pub last_game_id: Value,
// pub last_place_name: Value,
// pub last_client_id: Value,
// pub date_time: Value,
}

View File

@@ -6,3 +6,9 @@ pub use get_user_preview_api::{GetUserPreviewApi, GetUserPreviewApiResp};
mod user_logout_api;
pub use user_logout_api::{UserLogoutApi, UserLogoutApiResp};
mod user_login_api;
pub use user_login_api::{UserLoginApi, UserLoginApiResp};
mod get_user_data_api;
pub use get_user_data_api::{GetUserDataApi, GetUserDataApiResp};

View File

@@ -0,0 +1,31 @@
use serde::{Deserialize, Serialize};
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UserLoginApi {
pub user_id: u32,
pub region_id: u32,
pub date_time: u64,
pub acsess_code: String,
pub place_id: String,
pub client_id: String,
/// set to `false` is fine
pub is_continue: bool,
/// fixed to 0
pub generic_flag: u8,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UserLoginApiResp {
/// - `1`: success
/// - `100`: logged
/// - `102`: QRCode expired
pub return_code: i32,
/// format: yyyy-mm-dd HH:MM:SS
pub last_login_date: Option<String>,
pub login_count: Option<u64>,
pub consecutive_login_count: Option<u64>,
/// needed for some operation
pub login_id: Option<u64>,
}