as: Add APIs required for playing MV
Signed-off-by: Yuan Si <do4suki@gmail.com>
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
{
|
||||
"weekday_state": {
|
||||
"weekday": 1,
|
||||
"next_weekday_at": 1684771200
|
||||
},
|
||||
"live_daily_list": [
|
||||
{
|
||||
"live_daily_master_id": 1,
|
||||
"live_master_id": 10070,
|
||||
"end_at": 1684771200,
|
||||
"remaining_play_count": 5,
|
||||
"remaining_recovery_count": 9
|
||||
},
|
||||
{
|
||||
"live_daily_master_id": 2,
|
||||
"live_master_id": 11066,
|
||||
"end_at": 1684771200,
|
||||
"remaining_play_count": 5,
|
||||
"remaining_recovery_count": 9
|
||||
},
|
||||
{
|
||||
"live_daily_master_id": 38,
|
||||
"live_master_id": 12092,
|
||||
"end_at": 1684771200,
|
||||
"remaining_play_count": 5,
|
||||
"remaining_recovery_count": 9
|
||||
}
|
||||
],
|
||||
"live_campaign_list": [],
|
||||
"live_daily_campaign_list": [],
|
||||
"live_campaign_lp_list": [],
|
||||
"live_campaign_change_drop_list": [],
|
||||
"live_campaign_notice": null,
|
||||
"live_event_common_info": null,
|
||||
"banner_info": {
|
||||
"banners": []
|
||||
},
|
||||
"pickup_info": {
|
||||
"active_event": null,
|
||||
"live_campaign_info": {
|
||||
"live_campaign_end_at": null,
|
||||
"live_daily_campaign_end_at": null,
|
||||
"live_extra_campaign_end_at": null,
|
||||
"live_challenge_campaign_end_at": null
|
||||
},
|
||||
"is_lesson_campaign": false,
|
||||
"appeal_gachas": [
|
||||
{
|
||||
"v": "_u3"
|
||||
}
|
||||
],
|
||||
"is_shop_sale": true,
|
||||
"is_sns_coin_sale": true
|
||||
},
|
||||
"user_model_diff": {
|
||||
"user_status": {
|
||||
"name": {
|
||||
"dot_under_text": "梦路2号机@果果厨"
|
||||
},
|
||||
"nickname": {
|
||||
"dot_under_text": "梦路"
|
||||
},
|
||||
"last_login_at": 1684754024,
|
||||
"rank": 122,
|
||||
"exp": 416263,
|
||||
"message": {
|
||||
"dot_under_text": "B站主播:梦路_YumeMichi"
|
||||
},
|
||||
"recommend_card_master_id": 200013001,
|
||||
"max_friend_num": 0,
|
||||
"live_point_full_at": 1684158189,
|
||||
"live_point_broken": 150,
|
||||
"live_point_subscription_recovery_daily_count": 1,
|
||||
"live_point_subscription_recovery_daily_reset_at": 1656259200,
|
||||
"activity_point_count": 0,
|
||||
"activity_point_reset_at": 1684123200,
|
||||
"activity_point_payment_recovery_daily_count": 10,
|
||||
"activity_point_payment_recovery_daily_reset_at": 1683734400,
|
||||
"game_money": 115665089,
|
||||
"card_exp": 32316167,
|
||||
"free_sns_coin": 280,
|
||||
"apple_sns_coin": 0,
|
||||
"google_sns_coin": 0,
|
||||
"cash": 0,
|
||||
"subscription_coin": 30,
|
||||
"birth_date": null,
|
||||
"birth_month": 10,
|
||||
"birth_day": 18,
|
||||
"latest_live_deck_id": 1,
|
||||
"main_lesson_deck_id": 1,
|
||||
"favorite_member_id": 1,
|
||||
"last_live_difficulty_id": 12092302,
|
||||
"lp_magnification": 1,
|
||||
"emblem_id": 13100608,
|
||||
"device_token": "",
|
||||
"tutorial_phase": 99,
|
||||
"tutorial_end_at": 1622217482,
|
||||
"login_days": 446,
|
||||
"navi_tap_count": 1,
|
||||
"navi_tap_recover_at": 1683043200,
|
||||
"is_auto_mode": false,
|
||||
"max_score_live_difficulty_master_id": 12037401,
|
||||
"live_max_score": 40553270,
|
||||
"max_combo_live_difficulty_master_id": 12037401,
|
||||
"live_max_combo": 301,
|
||||
"lesson_resume_status": 1,
|
||||
"accessory_box_additional": 90,
|
||||
"terms_of_use_version": 0,
|
||||
"bootstrap_sifid_check_at": 1683178908,
|
||||
"gdpr_version": 0,
|
||||
"member_guild_member_master_id": 1,
|
||||
"member_guild_last_updated_at": 1659485328
|
||||
},
|
||||
"user_member_by_member_id": [],
|
||||
"user_card_by_card_id": [],
|
||||
"user_suit_by_suit_id": [],
|
||||
"user_live_deck_by_id": [],
|
||||
"user_live_party_by_id": [],
|
||||
"user_lesson_deck_by_id": [],
|
||||
"user_live_mv_deck_by_id": [],
|
||||
"user_live_mv_deck_custom_by_id": [],
|
||||
"user_live_difficulty_by_difficulty_id": [],
|
||||
"user_story_main_by_story_main_id": [],
|
||||
"user_story_main_selected_by_story_main_cell_id": [],
|
||||
"user_voice_by_voice_id": [],
|
||||
"user_emblem_by_emblem_id": [],
|
||||
"user_gacha_ticket_by_ticket_id": [],
|
||||
"user_gacha_point_by_point_id": [],
|
||||
"user_lesson_enhancing_item_by_item_id": [],
|
||||
"user_training_material_by_item_id": [],
|
||||
"user_grade_up_item_by_item_id": [],
|
||||
"user_custom_background_by_id": [],
|
||||
"user_story_side_by_id": [],
|
||||
"user_story_member_by_id": [],
|
||||
"user_communication_member_detail_badge_by_id": [],
|
||||
"user_story_event_history_by_id": [],
|
||||
"user_recovery_lp_by_id": [],
|
||||
"user_recovery_ap_by_id": [],
|
||||
"user_mission_by_mission_id": [],
|
||||
"user_daily_mission_by_mission_id": [],
|
||||
"user_weekly_mission_by_mission_id": [],
|
||||
"user_info_trigger_basic_by_trigger_id": [],
|
||||
"user_info_trigger_card_grade_up_by_trigger_id": [],
|
||||
"user_info_trigger_member_guild_support_item_expired_by_trigger_id": [],
|
||||
"user_info_trigger_member_love_level_up_by_trigger_id": [],
|
||||
"user_accessory_by_user_accessory_id": [],
|
||||
"user_accessory_level_up_item_by_id": [],
|
||||
"user_accessory_rarity_up_item_by_id": [],
|
||||
"user_unlock_scenes_by_enum": [],
|
||||
"user_scene_tips_by_enum": [],
|
||||
"user_rule_description_by_id": [],
|
||||
"user_exchange_event_point_by_id": [],
|
||||
"user_school_idol_festival_id_reward_mission_by_id": [],
|
||||
"user_gps_present_received_by_id": [],
|
||||
"user_event_marathon_by_event_master_id": [],
|
||||
"user_event_mining_by_event_master_id": [],
|
||||
"user_event_coop_by_event_master_id": [],
|
||||
"user_live_skip_ticket_by_id": [],
|
||||
"user_story_event_unlock_item_by_id": [],
|
||||
"user_event_marathon_booster_by_id": [],
|
||||
"user_reference_book_by_id": [],
|
||||
"user_review_request_process_flow_by_id": [],
|
||||
"user_rank_exp_by_id": [],
|
||||
"user_share_by_id": [],
|
||||
"user_tower_by_tower_id": [],
|
||||
"user_recovery_tower_card_used_count_item_by_recovery_tower_card_used_count_item_master_id": [],
|
||||
"user_story_linkage_by_id": [],
|
||||
"user_subscription_status_by_id": [],
|
||||
"user_story_main_part_digest_movie_by_id": [],
|
||||
"user_member_guild_by_id": [],
|
||||
"user_member_guild_support_item_by_id": [],
|
||||
"user_daily_theater_by_daily_theater_id": [],
|
||||
"user_play_list_by_id": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"cleared_ids": [
|
||||
"CgkI6fnP4IYMEAIQAg",
|
||||
"CgkI6fnP4IYMEAIQAw",
|
||||
"CgkI6fnP4IYMEAIQBA",
|
||||
"CgkI6fnP4IYMEAIQBQ",
|
||||
"CgkI6fnP4IYMEAIQBg",
|
||||
"CgkI6fnP4IYMEAIQBw",
|
||||
"CgkI6fnP4IYMEAIQCA",
|
||||
"CgkI6fnP4IYMEAIQCQ",
|
||||
"CgkI6fnP4IYMEAIQCg",
|
||||
"CgkI6fnP4IYMEAIQAQ",
|
||||
"CgkI6fnP4IYMEAIQCw",
|
||||
"CgkI6fnP4IYMEAIQDA",
|
||||
"CgkI6fnP4IYMEAIQDQ",
|
||||
"CgkI6fnP4IYMEAIQDg",
|
||||
"CgkI6fnP4IYMEAIQDw",
|
||||
"CgkI6fnP4IYMEAIQEA",
|
||||
"CgkI6fnP4IYMEAIQEQ",
|
||||
"CgkI6fnP4IYMEAIQEg"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
{
|
||||
"uniq_id": 1684755047154917443,
|
||||
"user_model_diff": {
|
||||
"user_status": {
|
||||
"name": {
|
||||
"dot_under_text": "梦路2号机@果果厨"
|
||||
},
|
||||
"nickname": {
|
||||
"dot_under_text": "梦路"
|
||||
},
|
||||
"last_login_at": 1684754024,
|
||||
"rank": 122,
|
||||
"exp": 416263,
|
||||
"message": {
|
||||
"dot_under_text": "B站主播:梦路_YumeMichi"
|
||||
},
|
||||
"recommend_card_master_id": 200013001,
|
||||
"max_friend_num": 0,
|
||||
"live_point_full_at": 1684158189,
|
||||
"live_point_broken": 150,
|
||||
"live_point_subscription_recovery_daily_count": 1,
|
||||
"live_point_subscription_recovery_daily_reset_at": 1656259200,
|
||||
"activity_point_count": 0,
|
||||
"activity_point_reset_at": 1684123200,
|
||||
"activity_point_payment_recovery_daily_count": 10,
|
||||
"activity_point_payment_recovery_daily_reset_at": 1683734400,
|
||||
"game_money": 115665089,
|
||||
"card_exp": 32316167,
|
||||
"free_sns_coin": 280,
|
||||
"apple_sns_coin": 0,
|
||||
"google_sns_coin": 0,
|
||||
"cash": 0,
|
||||
"subscription_coin": 30,
|
||||
"birth_date": null,
|
||||
"birth_month": 10,
|
||||
"birth_day": 18,
|
||||
"latest_live_deck_id": 1,
|
||||
"main_lesson_deck_id": 1,
|
||||
"favorite_member_id": 1,
|
||||
"last_live_difficulty_id": 12092302,
|
||||
"lp_magnification": 1,
|
||||
"emblem_id": 13100608,
|
||||
"device_token": "",
|
||||
"tutorial_phase": 99,
|
||||
"tutorial_end_at": 1622217482,
|
||||
"login_days": 446,
|
||||
"navi_tap_count": 1,
|
||||
"navi_tap_recover_at": 1684771200,
|
||||
"is_auto_mode": false,
|
||||
"max_score_live_difficulty_master_id": 12037401,
|
||||
"live_max_score": 40553270,
|
||||
"max_combo_live_difficulty_master_id": 12037401,
|
||||
"live_max_combo": 301,
|
||||
"lesson_resume_status": 1,
|
||||
"accessory_box_additional": 90,
|
||||
"terms_of_use_version": 0,
|
||||
"bootstrap_sifid_check_at": 1683178908,
|
||||
"gdpr_version": 0,
|
||||
"member_guild_member_master_id": 1,
|
||||
"member_guild_last_updated_at": 1659485328
|
||||
},
|
||||
"user_member_by_member_id": [],
|
||||
"user_card_by_card_id": [],
|
||||
"user_suit_by_suit_id": [],
|
||||
"user_live_deck_by_id": [],
|
||||
"user_live_party_by_id": [],
|
||||
"user_lesson_deck_by_id": [],
|
||||
"user_live_mv_deck_by_id": [],
|
||||
"user_live_mv_deck_custom_by_id": [],
|
||||
"user_live_difficulty_by_difficulty_id": [],
|
||||
"user_story_main_by_story_main_id": [],
|
||||
"user_story_main_selected_by_story_main_cell_id": [],
|
||||
"user_voice_by_voice_id": [],
|
||||
"user_emblem_by_emblem_id": [],
|
||||
"user_gacha_ticket_by_ticket_id": [],
|
||||
"user_gacha_point_by_point_id": [],
|
||||
"user_lesson_enhancing_item_by_item_id": [],
|
||||
"user_training_material_by_item_id": [],
|
||||
"user_grade_up_item_by_item_id": [],
|
||||
"user_custom_background_by_id": [],
|
||||
"user_story_side_by_id": [],
|
||||
"user_story_member_by_id": [],
|
||||
"user_communication_member_detail_badge_by_id": [],
|
||||
"user_story_event_history_by_id": [],
|
||||
"user_recovery_lp_by_id": [],
|
||||
"user_recovery_ap_by_id": [],
|
||||
"user_mission_by_mission_id": [],
|
||||
"user_daily_mission_by_mission_id": [],
|
||||
"user_weekly_mission_by_mission_id": [],
|
||||
"user_info_trigger_basic_by_trigger_id": [],
|
||||
"user_info_trigger_card_grade_up_by_trigger_id": [],
|
||||
"user_info_trigger_member_guild_support_item_expired_by_trigger_id": [],
|
||||
"user_info_trigger_member_love_level_up_by_trigger_id": [],
|
||||
"user_accessory_by_user_accessory_id": [],
|
||||
"user_accessory_level_up_item_by_id": [],
|
||||
"user_accessory_rarity_up_item_by_id": [],
|
||||
"user_unlock_scenes_by_enum": [],
|
||||
"user_scene_tips_by_enum": [],
|
||||
"user_rule_description_by_id": [],
|
||||
"user_exchange_event_point_by_id": [],
|
||||
"user_school_idol_festival_id_reward_mission_by_id": [],
|
||||
"user_gps_present_received_by_id": [],
|
||||
"user_event_marathon_by_event_master_id": [],
|
||||
"user_event_mining_by_event_master_id": [],
|
||||
"user_event_coop_by_event_master_id": [],
|
||||
"user_live_skip_ticket_by_id": [],
|
||||
"user_story_event_unlock_item_by_id": [],
|
||||
"user_event_marathon_booster_by_id": [],
|
||||
"user_reference_book_by_id": [],
|
||||
"user_review_request_process_flow_by_id": [],
|
||||
"user_rank_exp_by_id": [],
|
||||
"user_share_by_id": [],
|
||||
"user_tower_by_tower_id": [],
|
||||
"user_recovery_tower_card_used_count_item_by_recovery_tower_card_used_count_item_master_id": [],
|
||||
"user_story_linkage_by_id": [],
|
||||
"user_subscription_status_by_id": [],
|
||||
"user_story_main_part_digest_movie_by_id": [],
|
||||
"user_member_guild_by_id": [],
|
||||
"user_member_guild_support_item_by_id": [],
|
||||
"user_daily_theater_by_daily_theater_id": [],
|
||||
"user_play_list_by_id": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
{
|
||||
"user_model_diff": {
|
||||
"user_status": {
|
||||
"name": {
|
||||
"dot_under_text": "梦路2号机@果果厨"
|
||||
},
|
||||
"nickname": {
|
||||
"dot_under_text": "梦路"
|
||||
},
|
||||
"last_login_at": 1684754024,
|
||||
"rank": 122,
|
||||
"exp": 416263,
|
||||
"message": {
|
||||
"dot_under_text": "B站主播:梦路_YumeMichi"
|
||||
},
|
||||
"recommend_card_master_id": 200013001,
|
||||
"max_friend_num": 0,
|
||||
"live_point_full_at": 1684158189,
|
||||
"live_point_broken": 150,
|
||||
"live_point_subscription_recovery_daily_count": 1,
|
||||
"live_point_subscription_recovery_daily_reset_at": 1656259200,
|
||||
"activity_point_count": 0,
|
||||
"activity_point_reset_at": 1684123200,
|
||||
"activity_point_payment_recovery_daily_count": 10,
|
||||
"activity_point_payment_recovery_daily_reset_at": 1683734400,
|
||||
"game_money": 115665089,
|
||||
"card_exp": 32316167,
|
||||
"free_sns_coin": 280,
|
||||
"apple_sns_coin": 0,
|
||||
"google_sns_coin": 0,
|
||||
"cash": 0,
|
||||
"subscription_coin": 30,
|
||||
"birth_date": null,
|
||||
"birth_month": 10,
|
||||
"birth_day": 18,
|
||||
"latest_live_deck_id": 1,
|
||||
"main_lesson_deck_id": 1,
|
||||
"favorite_member_id": 1,
|
||||
"last_live_difficulty_id": 12092302,
|
||||
"lp_magnification": 1,
|
||||
"emblem_id": 13100608,
|
||||
"device_token": "",
|
||||
"tutorial_phase": 99,
|
||||
"tutorial_end_at": 1622217482,
|
||||
"login_days": 446,
|
||||
"navi_tap_count": 1,
|
||||
"navi_tap_recover_at": 1683043200,
|
||||
"is_auto_mode": false,
|
||||
"max_score_live_difficulty_master_id": 12037401,
|
||||
"live_max_score": 40553270,
|
||||
"max_combo_live_difficulty_master_id": 12037401,
|
||||
"live_max_combo": 301,
|
||||
"lesson_resume_status": 1,
|
||||
"accessory_box_additional": 90,
|
||||
"terms_of_use_version": 0,
|
||||
"bootstrap_sifid_check_at": 1683178908,
|
||||
"gdpr_version": 0,
|
||||
"member_guild_member_master_id": 1,
|
||||
"member_guild_last_updated_at": 1659485328
|
||||
},
|
||||
"user_member_by_member_id": [],
|
||||
"user_card_by_card_id": [],
|
||||
"user_suit_by_suit_id": [],
|
||||
"user_live_deck_by_id": [],
|
||||
"user_live_party_by_id": [],
|
||||
"user_lesson_deck_by_id": [],
|
||||
"user_live_mv_deck_by_id": [],
|
||||
"user_live_mv_deck_custom_by_id": [],
|
||||
"user_live_difficulty_by_difficulty_id": [],
|
||||
"user_story_main_by_story_main_id": [],
|
||||
"user_story_main_selected_by_story_main_cell_id": [],
|
||||
"user_voice_by_voice_id": [],
|
||||
"user_emblem_by_emblem_id": [],
|
||||
"user_gacha_ticket_by_ticket_id": [],
|
||||
"user_gacha_point_by_point_id": [],
|
||||
"user_lesson_enhancing_item_by_item_id": [],
|
||||
"user_training_material_by_item_id": [],
|
||||
"user_grade_up_item_by_item_id": [],
|
||||
"user_custom_background_by_id": [],
|
||||
"user_story_side_by_id": [],
|
||||
"user_story_member_by_id": [],
|
||||
"user_communication_member_detail_badge_by_id": [],
|
||||
"user_story_event_history_by_id": [],
|
||||
"user_recovery_lp_by_id": [],
|
||||
"user_recovery_ap_by_id": [],
|
||||
"user_mission_by_mission_id": [],
|
||||
"user_daily_mission_by_mission_id": [],
|
||||
"user_weekly_mission_by_mission_id": [],
|
||||
"user_info_trigger_basic_by_trigger_id": [],
|
||||
"user_info_trigger_card_grade_up_by_trigger_id": [],
|
||||
"user_info_trigger_member_guild_support_item_expired_by_trigger_id": [],
|
||||
"user_info_trigger_member_love_level_up_by_trigger_id": [],
|
||||
"user_accessory_by_user_accessory_id": [],
|
||||
"user_accessory_level_up_item_by_id": [],
|
||||
"user_accessory_rarity_up_item_by_id": [],
|
||||
"user_unlock_scenes_by_enum": [],
|
||||
"user_scene_tips_by_enum": [],
|
||||
"user_rule_description_by_id": [],
|
||||
"user_exchange_event_point_by_id": [],
|
||||
"user_school_idol_festival_id_reward_mission_by_id": [],
|
||||
"user_gps_present_received_by_id": [],
|
||||
"user_event_marathon_by_event_master_id": [],
|
||||
"user_event_mining_by_event_master_id": [],
|
||||
"user_event_coop_by_event_master_id": [],
|
||||
"user_live_skip_ticket_by_id": [],
|
||||
"user_story_event_unlock_item_by_id": [],
|
||||
"user_event_marathon_booster_by_id": [],
|
||||
"user_reference_book_by_id": [],
|
||||
"user_review_request_process_flow_by_id": [],
|
||||
"user_rank_exp_by_id": [],
|
||||
"user_share_by_id": [],
|
||||
"user_tower_by_tower_id": [],
|
||||
"user_recovery_tower_card_used_count_item_by_recovery_tower_card_used_count_item_master_id": [],
|
||||
"user_story_linkage_by_id": [],
|
||||
"user_subscription_status_by_id": [],
|
||||
"user_story_main_part_digest_movie_by_id": [],
|
||||
"user_member_guild_by_id": [],
|
||||
"user_member_guild_support_item_by_id": [],
|
||||
"user_daily_theater_by_daily_theater_id": [],
|
||||
"user_play_list_by_id": []
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package model
|
||||
|
||||
/* ==== SIF START ==== */
|
||||
// GameOverResp ...
|
||||
type GameOverResp struct {
|
||||
ResponseData []interface{} `json:"response_data"`
|
||||
@@ -653,3 +654,67 @@ type LiveIconInfoResp struct {
|
||||
CommandNum bool `json:"commandNum"`
|
||||
TimeStamp int64 `json:"timeStamp"`
|
||||
}
|
||||
|
||||
/* ==== SIF END ==== */
|
||||
|
||||
/* ==== AS START ==== */
|
||||
// LiveSaveDeckReq ...
|
||||
type LiveSaveDeckReq struct {
|
||||
LiveMasterID int `json:"live_master_id"`
|
||||
LiveMvDeckType int `json:"live_mv_deck_type"`
|
||||
MemberMasterIDByPos []int `json:"member_master_id_by_pos"`
|
||||
SuitMasterIDByPos []int `json:"suit_master_id_by_pos"`
|
||||
ViewStatusByPos []int `json:"view_status_by_pos"`
|
||||
}
|
||||
|
||||
// LiveSaveDeckResp ...
|
||||
type LiveSaveDeckResp struct {
|
||||
UserModel UserModel `json:"user_model"`
|
||||
}
|
||||
|
||||
// UserMemberInfo ...
|
||||
type UserMemberInfo struct {
|
||||
MemberMasterID int `json:"member_master_id"`
|
||||
CustomBackgroundMasterID int `json:"custom_background_master_id"`
|
||||
SuitMasterID int `json:"suit_master_id"`
|
||||
LovePoint int `json:"love_point"`
|
||||
LovePointLimit int `json:"love_point_limit"`
|
||||
LoveLevel int `json:"love_level"`
|
||||
ViewStatus int `json:"view_status"`
|
||||
IsNew bool `json:"is_new"`
|
||||
}
|
||||
|
||||
// UserMemberByMemberID ...
|
||||
type UserMemberByMemberID interface{}
|
||||
|
||||
// UserLiveMvDeckInfo ...
|
||||
type UserLiveMvDeckInfo struct {
|
||||
LiveMasterID interface{} `json:"live_master_id"`
|
||||
MemberMasterID1 interface{} `json:"member_master_id_1"`
|
||||
MemberMasterID2 interface{} `json:"member_master_id_2"`
|
||||
MemberMasterID3 interface{} `json:"member_master_id_3"`
|
||||
MemberMasterID4 interface{} `json:"member_master_id_4"`
|
||||
MemberMasterID5 interface{} `json:"member_master_id_5"`
|
||||
MemberMasterID6 interface{} `json:"member_master_id_6"`
|
||||
MemberMasterID7 interface{} `json:"member_master_id_7"`
|
||||
MemberMasterID8 interface{} `json:"member_master_id_8"`
|
||||
MemberMasterID9 interface{} `json:"member_master_id_9"`
|
||||
MemberMasterID10 interface{} `json:"member_master_id_10"`
|
||||
MemberMasterID11 interface{} `json:"member_master_id_11"`
|
||||
MemberMasterID12 interface{} `json:"member_master_id_12"`
|
||||
SuitMasterID1 interface{} `json:"suit_master_id_1"`
|
||||
SuitMasterID2 interface{} `json:"suit_master_id_2"`
|
||||
SuitMasterID3 interface{} `json:"suit_master_id_3"`
|
||||
SuitMasterID4 interface{} `json:"suit_master_id_4"`
|
||||
SuitMasterID5 interface{} `json:"suit_master_id_5"`
|
||||
SuitMasterID6 interface{} `json:"suit_master_id_6"`
|
||||
SuitMasterID7 interface{} `json:"suit_master_id_7"`
|
||||
SuitMasterID8 interface{} `json:"suit_master_id_8"`
|
||||
SuitMasterID9 interface{} `json:"suit_master_id_9"`
|
||||
SuitMasterID10 interface{} `json:"suit_master_id_10"`
|
||||
SuitMasterID11 interface{} `json:"suit_master_id_11"`
|
||||
SuitMasterID12 interface{} `json:"suit_master_id_12"`
|
||||
}
|
||||
|
||||
// UserLiveMvDeckCustomByID ...
|
||||
type UserLiveMvDeckCustomByID interface{}
|
||||
|
||||
+3
-3
@@ -45,14 +45,14 @@ type AsLoginRes struct {
|
||||
// UserModel ...
|
||||
type UserModel struct {
|
||||
UserStatus AsUserStatus `json:"user_status"`
|
||||
UserMemberByMemberID []interface{} `json:"user_member_by_member_id"`
|
||||
UserMemberByMemberID interface{} `json:"user_member_by_member_id"`
|
||||
UserCardByCardID []interface{} `json:"user_card_by_card_id"`
|
||||
UserSuitBySuitID []interface{} `json:"user_suit_by_suit_id"`
|
||||
UserLiveDeckByID []interface{} `json:"user_live_deck_by_id"`
|
||||
UserLivePartyByID []interface{} `json:"user_live_party_by_id"`
|
||||
UserLessonDeckByID []interface{} `json:"user_lesson_deck_by_id"`
|
||||
UserLiveMvDeckByID []interface{} `json:"user_live_mv_deck_by_id"`
|
||||
UserLiveMvDeckCustomByID []interface{} `json:"user_live_mv_deck_custom_by_id"`
|
||||
UserLiveMvDeckCustomByID interface{} `json:"user_live_mv_deck_custom_by_id"`
|
||||
UserLiveDifficultyByDifficultyID []interface{} `json:"user_live_difficulty_by_difficulty_id"`
|
||||
UserStoryMainByStoryMainID []interface{} `json:"user_story_main_by_story_main_id"`
|
||||
UserStoryMainSelectedByStoryMainCellID []interface{} `json:"user_story_main_selected_by_story_main_cell_id"`
|
||||
@@ -126,7 +126,7 @@ type Message struct {
|
||||
type AsUserStatus struct {
|
||||
Name Name `json:"name"`
|
||||
Nickname Nickname `json:"nickname"`
|
||||
LastLoginAt int `json:"last_login_at"`
|
||||
LastLoginAt int64 `json:"last_login_at"`
|
||||
Rank int `json:"rank"`
|
||||
Exp int `json:"exp"`
|
||||
Message Message `json:"message"`
|
||||
|
||||
@@ -306,5 +306,244 @@ func AsRouter(r *gin.Engine) {
|
||||
ctx.Header("Content-Type", "application/json")
|
||||
ctx.String(http.StatusOK, string(mm))
|
||||
})
|
||||
s.POST("/card/updateCardNewFlag", func(ctx *gin.Context) {
|
||||
resp := SignResp(ctx.GetString("ep"), utils.ReadAllText("assets/updateCardNewFlag.json"), sessionKey)
|
||||
|
||||
ctx.Header("Content-Type", "application/json")
|
||||
ctx.String(http.StatusOK, resp)
|
||||
})
|
||||
s.POST("/bootstrap/getClearedPlatformAchievement", func(ctx *gin.Context) {
|
||||
resp := SignResp(ctx.GetString("ep"), utils.ReadAllText("assets/getClearedPlatformAchievement.json"), sessionKey)
|
||||
|
||||
ctx.Header("Content-Type", "application/json")
|
||||
ctx.String(http.StatusOK, resp)
|
||||
})
|
||||
s.POST("/live/fetchLiveMusicSelect", func(ctx *gin.Context) {
|
||||
resp := SignResp(ctx.GetString("ep"), utils.ReadAllText("assets/fetchLiveMusicSelect.json"), sessionKey)
|
||||
|
||||
ctx.Header("Content-Type", "application/json")
|
||||
ctx.String(http.StatusOK, resp)
|
||||
})
|
||||
s.POST("/liveMv/start", func(ctx *gin.Context) {
|
||||
resp := SignResp(ctx.GetString("ep"), utils.ReadAllText("assets/liveMvStart.json"), sessionKey)
|
||||
|
||||
ctx.Header("Content-Type", "application/json")
|
||||
ctx.String(http.StatusOK, resp)
|
||||
})
|
||||
s.POST("/liveMv/saveDeck", func(ctx *gin.Context) {
|
||||
body, err := io.ReadAll(ctx.Request.Body)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer ctx.Request.Body.Close()
|
||||
// fmt.Println(string(body))
|
||||
|
||||
req := []model.AsReq{}
|
||||
err = json.Unmarshal(body, &req)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
reqBody, ok := req[0].(map[string]interface{})
|
||||
if !ok {
|
||||
panic("Assertion failed!")
|
||||
}
|
||||
|
||||
reqB, err := json.Marshal(reqBody)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
// fmt.Println(string(reqB))
|
||||
|
||||
saveReq := model.LiveSaveDeckReq{}
|
||||
err = json.Unmarshal(reqB, &saveReq)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
// fmt.Println(saveReq)
|
||||
|
||||
userLiveMvDeckInfo := model.UserLiveMvDeckInfo{
|
||||
LiveMasterID: saveReq.LiveMasterID,
|
||||
}
|
||||
|
||||
memberIds := map[int]int{}
|
||||
for k, v := range saveReq.MemberMasterIDByPos {
|
||||
if k%2 == 0 {
|
||||
memberId := saveReq.MemberMasterIDByPos[k+1]
|
||||
memberIds[v] = memberId
|
||||
|
||||
switch v {
|
||||
case 1:
|
||||
userLiveMvDeckInfo.MemberMasterID1 = memberId
|
||||
case 2:
|
||||
userLiveMvDeckInfo.MemberMasterID2 = memberId
|
||||
case 3:
|
||||
userLiveMvDeckInfo.MemberMasterID3 = memberId
|
||||
case 4:
|
||||
userLiveMvDeckInfo.MemberMasterID4 = memberId
|
||||
case 5:
|
||||
userLiveMvDeckInfo.MemberMasterID5 = memberId
|
||||
case 6:
|
||||
userLiveMvDeckInfo.MemberMasterID6 = memberId
|
||||
case 7:
|
||||
userLiveMvDeckInfo.MemberMasterID7 = memberId
|
||||
case 8:
|
||||
userLiveMvDeckInfo.MemberMasterID8 = memberId
|
||||
case 9:
|
||||
userLiveMvDeckInfo.MemberMasterID9 = memberId
|
||||
case 10:
|
||||
userLiveMvDeckInfo.MemberMasterID10 = memberId
|
||||
case 11:
|
||||
userLiveMvDeckInfo.MemberMasterID11 = memberId
|
||||
case 12:
|
||||
userLiveMvDeckInfo.MemberMasterID12 = memberId
|
||||
}
|
||||
}
|
||||
}
|
||||
// fmt.Println(memberIds)
|
||||
|
||||
suitIds := map[int]int{}
|
||||
for k, v := range saveReq.SuitMasterIDByPos {
|
||||
if k%2 == 0 {
|
||||
suitId := saveReq.SuitMasterIDByPos[k+1]
|
||||
suitIds[v] = suitId
|
||||
|
||||
switch v {
|
||||
case 1:
|
||||
userLiveMvDeckInfo.SuitMasterID1 = suitId
|
||||
case 2:
|
||||
userLiveMvDeckInfo.SuitMasterID2 = suitId
|
||||
case 3:
|
||||
userLiveMvDeckInfo.SuitMasterID3 = suitId
|
||||
case 4:
|
||||
userLiveMvDeckInfo.SuitMasterID4 = suitId
|
||||
case 5:
|
||||
userLiveMvDeckInfo.SuitMasterID5 = suitId
|
||||
case 6:
|
||||
userLiveMvDeckInfo.SuitMasterID6 = suitId
|
||||
case 7:
|
||||
userLiveMvDeckInfo.SuitMasterID7 = suitId
|
||||
case 8:
|
||||
userLiveMvDeckInfo.SuitMasterID8 = suitId
|
||||
case 9:
|
||||
userLiveMvDeckInfo.SuitMasterID9 = suitId
|
||||
case 10:
|
||||
userLiveMvDeckInfo.SuitMasterID10 = suitId
|
||||
case 11:
|
||||
userLiveMvDeckInfo.SuitMasterID11 = suitId
|
||||
case 12:
|
||||
userLiveMvDeckInfo.SuitMasterID12 = suitId
|
||||
}
|
||||
}
|
||||
}
|
||||
// fmt.Println(suitIds)
|
||||
|
||||
userLiveMvDeckCustomByID := []model.UserLiveMvDeckCustomByID{}
|
||||
userLiveMvDeckCustomByID = append(userLiveMvDeckCustomByID, saveReq.LiveMasterID)
|
||||
userLiveMvDeckCustomByID = append(userLiveMvDeckCustomByID, userLiveMvDeckInfo)
|
||||
// fmt.Println(userLiveMvDeckCustomByID)
|
||||
|
||||
viewStatusIds := map[int]int{}
|
||||
for k, v := range saveReq.ViewStatusByPos {
|
||||
if k%2 == 0 {
|
||||
viewStatusId := saveReq.ViewStatusByPos[k+1]
|
||||
viewStatusIds[v] = viewStatusId
|
||||
}
|
||||
}
|
||||
// fmt.Println(viewStatusIds)
|
||||
|
||||
userMemberByMemberID := []model.UserMemberByMemberID{}
|
||||
for k, v := range memberIds {
|
||||
userMemberByMemberID = append(userMemberByMemberID, v)
|
||||
userMemberByMemberID = append(userMemberByMemberID, model.UserMemberInfo{
|
||||
MemberMasterID: v,
|
||||
CustomBackgroundMasterID: 103506600,
|
||||
SuitMasterID: suitIds[k],
|
||||
LovePoint: 0,
|
||||
LovePointLimit: 999999,
|
||||
LoveLevel: 1,
|
||||
ViewStatus: viewStatusIds[k],
|
||||
IsNew: true,
|
||||
})
|
||||
}
|
||||
// fmt.Println(userMemberByMemberID)
|
||||
|
||||
saveResp := model.LiveSaveDeckResp{
|
||||
UserModel: model.UserModel{
|
||||
UserStatus: CommonUserStatus(),
|
||||
UserMemberByMemberID: userMemberByMemberID,
|
||||
UserCardByCardID: []interface{}{},
|
||||
UserSuitBySuitID: []interface{}{},
|
||||
UserLiveDeckByID: []interface{}{},
|
||||
UserLivePartyByID: []interface{}{},
|
||||
UserLessonDeckByID: []interface{}{},
|
||||
UserLiveMvDeckByID: []interface{}{},
|
||||
UserLiveMvDeckCustomByID: userLiveMvDeckCustomByID,
|
||||
UserLiveDifficultyByDifficultyID: []interface{}{},
|
||||
UserStoryMainByStoryMainID: []interface{}{},
|
||||
UserStoryMainSelectedByStoryMainCellID: []interface{}{},
|
||||
UserVoiceByVoiceID: []interface{}{},
|
||||
UserEmblemByEmblemID: []interface{}{},
|
||||
UserGachaTicketByTicketID: []interface{}{},
|
||||
UserGachaPointByPointID: []interface{}{},
|
||||
UserLessonEnhancingItemByItemID: []interface{}{},
|
||||
UserTrainingMaterialByItemID: []interface{}{},
|
||||
UserGradeUpItemByItemID: []interface{}{},
|
||||
UserCustomBackgroundByID: []interface{}{},
|
||||
UserStorySideByID: []interface{}{},
|
||||
UserStoryMemberByID: []interface{}{},
|
||||
UserCommunicationMemberDetailBadgeByID: []interface{}{},
|
||||
UserStoryEventHistoryByID: []interface{}{},
|
||||
UserRecoveryLpByID: []interface{}{},
|
||||
UserRecoveryApByID: []interface{}{},
|
||||
UserMissionByMissionID: []interface{}{},
|
||||
UserDailyMissionByMissionID: []interface{}{},
|
||||
UserWeeklyMissionByMissionID: []interface{}{},
|
||||
UserInfoTriggerBasicByTriggerID: []interface{}{},
|
||||
UserInfoTriggerCardGradeUpByTriggerID: []interface{}{},
|
||||
UserInfoTriggerMemberGuildSupportItemExpiredByTriggerID: []interface{}{},
|
||||
UserInfoTriggerMemberLoveLevelUpByTriggerID: []interface{}{},
|
||||
UserAccessoryByUserAccessoryID: []interface{}{},
|
||||
UserAccessoryLevelUpItemByID: []interface{}{},
|
||||
UserAccessoryRarityUpItemByID: []interface{}{},
|
||||
UserUnlockScenesByEnum: []interface{}{},
|
||||
UserSceneTipsByEnum: []interface{}{},
|
||||
UserRuleDescriptionByID: []interface{}{},
|
||||
UserExchangeEventPointByID: []interface{}{},
|
||||
UserSchoolIdolFestivalIDRewardMissionByID: []interface{}{},
|
||||
UserGpsPresentReceivedByID: []interface{}{},
|
||||
UserEventMarathonByEventMasterID: []interface{}{},
|
||||
UserEventMiningByEventMasterID: []interface{}{},
|
||||
UserEventCoopByEventMasterID: []interface{}{},
|
||||
UserLiveSkipTicketByID: []interface{}{},
|
||||
UserStoryEventUnlockItemByID: []interface{}{},
|
||||
UserEventMarathonBoosterByID: []interface{}{},
|
||||
UserReferenceBookByID: []interface{}{},
|
||||
UserReviewRequestProcessFlowByID: []interface{}{},
|
||||
UserRankExpByID: []interface{}{},
|
||||
UserShareByID: []interface{}{},
|
||||
UserTowerByTowerID: []interface{}{},
|
||||
UserRecoveryTowerCardUsedCountItemByRecoveryTowerCardUsedCountItemMasterID: []interface{}{},
|
||||
UserStoryLinkageByID: []interface{}{},
|
||||
UserSubscriptionStatusByID: []interface{}{},
|
||||
UserStoryMainPartDigestMovieByID: []interface{}{},
|
||||
UserMemberGuildByID: []interface{}{},
|
||||
UserMemberGuildSupportItemByID: []interface{}{},
|
||||
UserDailyTheaterByDailyTheaterID: []interface{}{},
|
||||
UserPlayListByID: []interface{}{},
|
||||
},
|
||||
}
|
||||
respB, err := json.Marshal(saveResp)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
// fmt.Println(string(b))
|
||||
|
||||
resp := SignResp(ctx.GetString("ep"), string(respB), sessionKey)
|
||||
// fmt.Println(resp)
|
||||
|
||||
ctx.Header("Content-Type", "application/json")
|
||||
ctx.String(http.StatusOK, resp)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"fmt"
|
||||
"honoka-chan/config"
|
||||
"honoka-chan/encrypt"
|
||||
"honoka-chan/model"
|
||||
"time"
|
||||
)
|
||||
|
||||
@@ -15,3 +16,64 @@ func SignResp(ep, body, key string) (resp string) {
|
||||
resp = fmt.Sprintf("[%s,\"%s\"]", signBody, sign)
|
||||
return
|
||||
}
|
||||
|
||||
func CommonUserStatus() model.AsUserStatus {
|
||||
return model.AsUserStatus{
|
||||
Name: model.Name{
|
||||
DotUnderText: "梦路2号机@果果厨",
|
||||
},
|
||||
Nickname: model.Nickname{
|
||||
DotUnderText: "梦路",
|
||||
},
|
||||
LastLoginAt: time.Now().Unix(),
|
||||
Rank: 122,
|
||||
Exp: 416263,
|
||||
Message: model.Message{
|
||||
DotUnderText: "B站主播:梦路_YumeMichi",
|
||||
},
|
||||
RecommendCardMasterID: 200013001,
|
||||
MaxFriendNum: 0,
|
||||
LivePointFullAt: 1684158189,
|
||||
LivePointBroken: 150,
|
||||
LivePointSubscriptionRecoveryDailyCount: 1,
|
||||
LivePointSubscriptionRecoveryDailyResetAt: 1656259200,
|
||||
ActivityPointCount: 0,
|
||||
ActivityPointResetAt: 1684123200,
|
||||
ActivityPointPaymentRecoveryDailyCount: 10,
|
||||
ActivityPointPaymentRecoveryDailyResetAt: 1683734400,
|
||||
GameMoney: 115665089,
|
||||
CardExp: 32316167,
|
||||
FreeSnsCoin: 280,
|
||||
AppleSnsCoin: 0,
|
||||
GoogleSnsCoin: 0,
|
||||
Cash: 0,
|
||||
SubscriptionCoin: 30,
|
||||
BirthDate: nil,
|
||||
BirthMonth: 10,
|
||||
BirthDay: 18,
|
||||
LatestLiveDeckID: 1,
|
||||
MainLessonDeckID: 1,
|
||||
FavoriteMemberID: 1,
|
||||
LastLiveDifficultyID: 12092302,
|
||||
LpMagnification: 1,
|
||||
EmblemID: 13100608,
|
||||
DeviceToken: "",
|
||||
TutorialPhase: 99,
|
||||
TutorialEndAt: 1622217482,
|
||||
LoginDays: 446,
|
||||
NaviTapCount: 2,
|
||||
NaviTapRecoverAt: 1684771200,
|
||||
IsAutoMode: false,
|
||||
MaxScoreLiveDifficultyMasterID: 12037401,
|
||||
LiveMaxScore: 40553270,
|
||||
MaxComboLiveDifficultyMasterID: 12037401,
|
||||
LiveMaxCombo: 301,
|
||||
LessonResumeStatus: 1,
|
||||
AccessoryBoxAdditional: 90,
|
||||
TermsOfUseVersion: 0,
|
||||
BootstrapSifidCheckAt: 1683178908,
|
||||
GdprVersion: 0,
|
||||
MemberGuildMemberMasterID: 1,
|
||||
MemberGuildLastUpdatedAt: 1659485328,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user