Sync updates with elichika

As of https://github.com/YumeMichi/elichika/commit/81a78e964dcdb8bb2d123237f966f95e7fba190e

Signed-off-by: Yuan Si <do4suki@gmail.com>
This commit is contained in:
2023-07-20 00:21:22 +08:00
parent 4146728579
commit 81e97cf997
43 changed files with 40727 additions and 35491 deletions
+3 -2
View File
@@ -1,14 +1,15 @@
honoka-chan
honoka-chan.exe
config.json
data
temp
assets/data.db
assets/dictionary_zh_k.db
assets/masterdata.db
static/llas-dev
assets/userdata
.idea
.vscode
+122
View File
@@ -0,0 +1,122 @@
{
"user_model": {
"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": []
}
}
+543
View File
@@ -0,0 +1,543 @@
{
"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": []
},
"lesson_menu_actions": [
1,
[
{
"card_master_id": 200093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 202063001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 401093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 101093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 300073001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 101033001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 100033001,
"position": 7,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 101023001,
"position": 8,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 300093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
}
],
2,
[
{
"card_master_id": 200093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 202063001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 401093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 101093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 300073001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 101033001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 100033001,
"position": 7,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 101023001,
"position": 8,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 300093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
}
],
3,
[
{
"card_master_id": 200093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 202063001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 401093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 101093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 300073001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 101033001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 100033001,
"position": 7,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 101023001,
"position": 8,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 300093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
}
],
0,
[
{
"card_master_id": 200093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 202063001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 401093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 101093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 300073001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 101033001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 100033001,
"position": 7,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 101023001,
"position": 8,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
},
{
"card_master_id": 300093001,
"position": 0,
"is_added_passive_skill": true,
"is_added_special_passive_skill": true,
"is_rankuped_passive_skill": true,
"is_rankuped_special_passive_skill": true,
"is_promoted_skill": true,
"max_rarity": 4,
"up_count": 1
}
]
],
"lesson_drop_rarity_list": [
1,
[],
2,
[],
3,
[],
0,
[]
],
"is_subscription": false
}
+6 -6
View File
@@ -27,7 +27,7 @@
30000507,
30000507,
30000507,
30000452,
30000507,
0,
0,
0,
@@ -58,7 +58,7 @@
30000507,
30000507,
30000507,
30000452,
30000507,
0,
0,
0,
@@ -89,7 +89,7 @@
30000507,
30000507,
30000507,
30000452,
30000507,
0,
0,
0,
@@ -120,7 +120,7 @@
30000507,
30000507,
30000507,
30000452,
30000507,
0,
0,
0,
@@ -151,7 +151,7 @@
30000507,
30000507,
30000507,
30000452,
30000507,
0,
0,
0,
@@ -181,7 +181,7 @@
"additional_passive_skill_ids": [
30000512,
30000512,
30000462,
30000512,
0,
0,
0,
File diff suppressed because it is too large Load Diff
+5
View File
@@ -0,0 +1,5 @@
{
"present_items": [],
"present_history_items": [],
"present_count": 0
}
+284
View File
@@ -0,0 +1,284 @@
{
"user_lesson_deck_by_id": [
1,
{
"user_lesson_deck_id": 1,
"name": "合宿编队1",
"card_master_id_1": 400013002,
"card_master_id_2": 200013001,
"card_master_id_3": 400083002,
"card_master_id_4": 300023001,
"card_master_id_5": 400013003,
"card_master_id_6": 301093001,
"card_master_id_7": 101093001,
"card_master_id_8": 101043001,
"card_master_id_9": 202083001
},
2,
{
"user_lesson_deck_id": 2,
"name": "合宿编队2",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
3,
{
"user_lesson_deck_id": 3,
"name": "合宿编队3",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
4,
{
"user_lesson_deck_id": 4,
"name": "合宿编队4",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
5,
{
"user_lesson_deck_id": 5,
"name": "合宿编队5",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
6,
{
"user_lesson_deck_id": 6,
"name": "合宿编队6",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
7,
{
"user_lesson_deck_id": 7,
"name": "合宿编队7",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
8,
{
"user_lesson_deck_id": 8,
"name": "合宿编队8",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
9,
{
"user_lesson_deck_id": 9,
"name": "合宿编队9",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
10,
{
"user_lesson_deck_id": 10,
"name": "合宿编队10",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
11,
{
"user_lesson_deck_id": 11,
"name": "合宿编队11",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
12,
{
"user_lesson_deck_id": 12,
"name": "合宿编队12",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
13,
{
"user_lesson_deck_id": 13,
"name": "合宿编队13",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
14,
{
"user_lesson_deck_id": 14,
"name": "合宿编队14",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
15,
{
"user_lesson_deck_id": 15,
"name": "合宿编队15",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
16,
{
"user_lesson_deck_id": 16,
"name": "合宿编队16",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
17,
{
"user_lesson_deck_id": 17,
"name": "合宿编队17",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
18,
{
"user_lesson_deck_id": 18,
"name": "合宿编队18",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
19,
{
"user_lesson_deck_id": 19,
"name": "合宿编队19",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
},
20,
{
"user_lesson_deck_id": 20,
"name": "合宿编队20",
"card_master_id_1": null,
"card_master_id_2": null,
"card_master_id_3": null,
"card_master_id_4": null,
"card_master_id_5": null,
"card_master_id_6": null,
"card_master_id_7": null,
"card_master_id_8": null,
"card_master_id_9": null
}
]
}
File diff suppressed because it is too large Load Diff
+122
View File
@@ -0,0 +1,122 @@
{
"user_model": {
"user_status": {
"name": {
"dot_under_text": "梦路2号机@果果厨"
},
"nickname": {
"dot_under_text": "梦路"
},
"last_login_at": 1686137330,
"rank": 122,
"exp": 416854,
"message": {
"dot_under_text": "B站主播:梦路_YumeMichi"
},
"recommend_card_master_id": 200013001,
"max_friend_num": 0,
"live_point_full_at": 1686107403,
"live_point_broken": 173,
"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": 115779989,
"card_exp": 32464467,
"free_sns_coin": 3900,
"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": 10025301,
"lp_magnification": 1,
"emblem_id": 10400253,
"device_token": "",
"tutorial_phase": 99,
"tutorial_end_at": 1622217482,
"login_days": 451,
"navi_tap_count": 1,
"navi_tap_recover_at": 1685030400,
"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": []
}
}
+14755 -3
View File
File diff suppressed because it is too large Load Diff
+334
View File
@@ -0,0 +1,334 @@
{
"user_member_by_member_id": [
1,
{
"member_master_id": 1,
"custom_background_master_id": 103506600,
"suit_master_id": 400013003,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
2,
{
"member_master_id": 2,
"custom_background_master_id": 103503400,
"suit_master_id": 200023002,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
3,
{
"member_master_id": 3,
"custom_background_master_id": 100100400,
"suit_master_id": 200033001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
4,
{
"member_master_id": 4,
"custom_background_master_id": 100100400,
"suit_master_id": 200043001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
5,
{
"member_master_id": 5,
"custom_background_master_id": 103503101,
"suit_master_id": 200053001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
6,
{
"member_master_id": 6,
"custom_background_master_id": 103301101,
"suit_master_id": 200063001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
7,
{
"member_master_id": 7,
"custom_background_master_id": 100100400,
"suit_master_id": 300073002,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
8,
{
"member_master_id": 8,
"custom_background_master_id": 103503101,
"suit_master_id": 200083001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
9,
{
"member_master_id": 9,
"custom_background_master_id": 100100400,
"suit_master_id": 300093001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
101,
{
"member_master_id": 101,
"custom_background_master_id": 301100100,
"suit_master_id": 301013001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
102,
{
"member_master_id": 102,
"custom_background_master_id": 301100100,
"suit_master_id": 401023002,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
103,
{
"member_master_id": 103,
"custom_background_master_id": 301100100,
"suit_master_id": 101033101,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
104,
{
"member_master_id": 104,
"custom_background_master_id": 301100100,
"suit_master_id": 201043001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
105,
{
"member_master_id": 105,
"custom_background_master_id": 103503101,
"suit_master_id": 101053101,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
106,
{
"member_master_id": 106,
"custom_background_master_id": 301100100,
"suit_master_id": 201063001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
107,
{
"member_master_id": 107,
"custom_background_master_id": 301100100,
"suit_master_id": 201073001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
108,
{
"member_master_id": 108,
"custom_background_master_id": 301100100,
"suit_master_id": 401083001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
109,
{
"member_master_id": 109,
"custom_background_master_id": 301100100,
"suit_master_id": 301093001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
201,
{
"member_master_id": 201,
"custom_background_master_id": 103501900,
"suit_master_id": 202013001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
202,
{
"member_master_id": 202,
"custom_background_master_id": 202100403,
"suit_master_id": 302023102,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
203,
{
"member_master_id": 203,
"custom_background_master_id": 202100403,
"suit_master_id": 402032004,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
204,
{
"member_master_id": 204,
"custom_background_master_id": 202100403,
"suit_master_id": 202043001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
205,
{
"member_master_id": 205,
"custom_background_master_id": 202100403,
"suit_master_id": 202053001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
206,
{
"member_master_id": 206,
"custom_background_master_id": 202100403,
"suit_master_id": 202063001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
207,
{
"member_master_id": 207,
"custom_background_master_id": 103500300,
"suit_master_id": 302073001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
208,
{
"member_master_id": 208,
"custom_background_master_id": 202100403,
"suit_master_id": 202083001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
209,
{
"member_master_id": 209,
"custom_background_master_id": 202100403,
"suit_master_id": 302093002,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
210,
{
"member_master_id": 210,
"custom_background_master_id": 202100403,
"suit_master_id": 202103002,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
211,
{
"member_master_id": 211,
"custom_background_master_id": 202100403,
"suit_master_id": 102111001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
},
212,
{
"member_master_id": 212,
"custom_background_master_id": 202100403,
"suit_master_id": 102121001,
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": false
}
]
}
File diff suppressed because it is too large Load Diff
+414
View File
@@ -0,0 +1,414 @@
{
"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": []
},
"selected_deck_id": 1,
"drop_item_list": [],
"drop_skill_list": [
{
"position": 1,
"passive_skill_id": 30000507
},
{
"position": 1,
"passive_skill_id": 30000517
},
{
"position": 1,
"passive_skill_id": 30000512
},
{
"position": 1,
"passive_skill_id": 30000482
},
{
"position": 1,
"passive_skill_id": 30000402
},
{
"position": 1,
"passive_skill_id": 30000452
},
{
"position": 1,
"passive_skill_id": 30000462
},
{
"position": 1,
"passive_skill_id": 30000472
},
{
"position": 2,
"passive_skill_id": 30000507
},
{
"position": 2,
"passive_skill_id": 30000517
},
{
"position": 2,
"passive_skill_id": 30000512
},
{
"position": 2,
"passive_skill_id": 30000482
},
{
"position": 2,
"passive_skill_id": 30000402
},
{
"position": 2,
"passive_skill_id": 30000452
},
{
"position": 2,
"passive_skill_id": 30000462
},
{
"position": 2,
"passive_skill_id": 30000472
},
{
"position": 3,
"passive_skill_id": 30000507
},
{
"position": 3,
"passive_skill_id": 30000517
},
{
"position": 3,
"passive_skill_id": 30000512
},
{
"position": 3,
"passive_skill_id": 30000482
},
{
"position": 3,
"passive_skill_id": 30000402
},
{
"position": 3,
"passive_skill_id": 30000452
},
{
"position": 3,
"passive_skill_id": 30000462
},
{
"position": 3,
"passive_skill_id": 30000472
},
{
"position": 4,
"passive_skill_id": 30000507
},
{
"position": 4,
"passive_skill_id": 30000517
},
{
"position": 4,
"passive_skill_id": 30000512
},
{
"position": 4,
"passive_skill_id": 30000482
},
{
"position": 4,
"passive_skill_id": 30000402
},
{
"position": 4,
"passive_skill_id": 30000452
},
{
"position": 4,
"passive_skill_id": 30000462
},
{
"position": 4,
"passive_skill_id": 30000472
},
{
"position": 5,
"passive_skill_id": 30000507
},
{
"position": 5,
"passive_skill_id": 30000517
},
{
"position": 5,
"passive_skill_id": 30000512
},
{
"position": 5,
"passive_skill_id": 30000482
},
{
"position": 5,
"passive_skill_id": 30000402
},
{
"position": 5,
"passive_skill_id": 30000452
},
{
"position": 5,
"passive_skill_id": 30000462
},
{
"position": 5,
"passive_skill_id": 30000472
},
{
"position": 6,
"passive_skill_id": 30000507
},
{
"position": 6,
"passive_skill_id": 30000517
},
{
"position": 6,
"passive_skill_id": 30000512
},
{
"position": 6,
"passive_skill_id": 30000482
},
{
"position": 6,
"passive_skill_id": 30000402
},
{
"position": 6,
"passive_skill_id": 30000452
},
{
"position": 6,
"passive_skill_id": 30000462
},
{
"position": 6,
"passive_skill_id": 30000472
},
{
"position": 7,
"passive_skill_id": 30000507
},
{
"position": 7,
"passive_skill_id": 30000517
},
{
"position": 7,
"passive_skill_id": 30000512
},
{
"position": 7,
"passive_skill_id": 30000482
},
{
"position": 7,
"passive_skill_id": 30000402
},
{
"position": 7,
"passive_skill_id": 30000452
},
{
"position": 7,
"passive_skill_id": 30000462
},
{
"position": 7,
"passive_skill_id": 30000472
},
{
"position": 8,
"passive_skill_id": 30000507
},
{
"position": 8,
"passive_skill_id": 30000517
},
{
"position": 8,
"passive_skill_id": 30000512
},
{
"position": 8,
"passive_skill_id": 30000482
},
{
"position": 8,
"passive_skill_id": 30000402
},
{
"position": 8,
"passive_skill_id": 30000452
},
{
"position": 8,
"passive_skill_id": 30000462
},
{
"position": 8,
"passive_skill_id": 30000472
},
{
"position": 9,
"passive_skill_id": 30000507
},
{
"position": 9,
"passive_skill_id": 30000517
},
{
"position": 9,
"passive_skill_id": 30000512
},
{
"position": 9,
"passive_skill_id": 30000482
},
{
"position": 9,
"passive_skill_id": 30000402
},
{
"position": 9,
"passive_skill_id": 30000452
},
{
"position": 9,
"passive_skill_id": 30000462
},
{
"position": 9,
"passive_skill_id": 30000472
}
]
}
+122
View File
@@ -0,0 +1,122 @@
{
"user_model": {
"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": []
}
}
+2 -2
View File
@@ -61,8 +61,8 @@
"user_member_by_member_id": [],
"user_card_by_card_id": [],
"user_suit_by_suit_id": [],
"user_live_deck_by_id": "DECK_INFO",
"user_live_party_by_id": "PARTY_INFO",
"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": [],
+122
View File
@@ -0,0 +1,122 @@
{
"user_model": {
"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": []
}
}
+122
View File
@@ -0,0 +1,122 @@
{
"user_model": {
"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": []
}
}
+122
View File
@@ -0,0 +1,122 @@
{
"user_model": {
"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": []
}
}
+122
View File
@@ -0,0 +1,122 @@
{
"user_model": {
"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": []
}
}
+2 -20
View File
@@ -58,27 +58,9 @@
"member_guild_member_master_id": 1,
"member_guild_last_updated_at": 1659485328
},
"user_member_by_member_id": [
"MEMBER_MASTER_ID",
{
"member_master_id": "MEMBER_MASTER_ID",
"custom_background_master_id": "BACKGROUND_MASTER_ID",
"suit_master_id": "SUIT_MASTER_ID",
"love_point": 10271130,
"love_point_limit": 10271130,
"love_level": 450,
"view_status": 1,
"is_new": true
}
],
"user_member_by_member_id": [],
"user_card_by_card_id": [],
"user_suit_by_suit_id": [
"SUIT_MASTER_ID",
{
"suit_master_id": "SUIT_MASTER_ID",
"is_new": false
}
],
"user_suit_by_suit_id": [],
"user_live_deck_by_id": [],
"user_live_party_by_id": [],
"user_lesson_deck_by_id": [],
+122
View File
@@ -0,0 +1,122 @@
{
"user_model": {
"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": []
}
}
-17489
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
-5
View File
@@ -1,5 +0,0 @@
app_name: LL! SIF Private Server
leveldb:
data_path: ./data/honoka-chan.db
cdn:
cdn_url: http://192.168.1.9:8081/static
+2 -3
View File
@@ -12,8 +12,7 @@ import (
)
var (
ConfName = "config.yml"
Conf = &AppConfigs{}
Conf = &AppConfigs{}
ExampleDb = "assets/data.example.db"
MainDb = "assets/main.db"
@@ -29,7 +28,7 @@ var (
)
func init() {
Conf = Load(ConfName)
Conf = Load("./config.json")
_, err := os.Stat(UserDb)
if err != nil {
+53
View File
@@ -0,0 +1,53 @@
package config
import (
"encoding/json"
"honoka-chan/utils"
"os"
"strconv"
"time"
)
type AppConfigs struct {
AppName string `json:"app_name"`
Settings Settings `json:"settings"`
}
type Settings struct {
SifCdnServer string `json:"sif_cdn_server"`
AsCdnServer string `json:"as_cdn_server"`
}
func DefaultConfigs() *AppConfigs {
return &AppConfigs{
AppName: "honoka-chan",
Settings: Settings{
SifCdnServer: "http://192.168.1.123/static",
AsCdnServer: "http://192.168.1.123/static",
},
}
}
func Load(p string) *AppConfigs {
if !utils.PathExists(p) {
_ = DefaultConfigs().Save(p)
}
c := AppConfigs{}
err := json.Unmarshal([]byte(utils.ReadAllText(p)), &c)
if err != nil {
_ = os.Rename(p, p+".backup"+strconv.FormatInt(time.Now().Unix(), 10))
_ = DefaultConfigs().Save(p)
}
c = AppConfigs{}
_ = json.Unmarshal([]byte(utils.ReadAllText(p)), &c)
return &c
}
func (c *AppConfigs) Save(p string) error {
data, err := json.Marshal(c)
if err != nil {
return err
}
utils.WriteAllText(p, string(data))
return nil
}
-67
View File
@@ -1,67 +0,0 @@
// Copyright (C) 2021-2022 YumeMichi
//
// SPDX-License-Identifier: Apache-2.0
package config
import (
"fmt"
"honoka-chan/utils"
"os"
"strconv"
"time"
"gopkg.in/yaml.v3"
)
type AppConfigs struct {
AppName string `yaml:"app_name"`
LevelDb LevelDbConfigs `yaml:"leveldb"`
Cdn CdnConfigs `yaml:"cdn"`
}
type LevelDbConfigs struct {
DataPath string `yaml:"data_path"`
}
type CdnConfigs struct {
CdnUrl string `yaml:"cdn_url"`
}
func DefaultConfigs() *AppConfigs {
return &AppConfigs{
AppName: "LL! SIF Private Server",
LevelDb: LevelDbConfigs{
DataPath: "./data/honoka-chan.db",
},
Cdn: CdnConfigs{
CdnUrl: "",
},
}
}
func Load(p string) *AppConfigs {
if !utils.PathExists(p) {
_ = DefaultConfigs().Save(p)
}
c := AppConfigs{}
err := yaml.Unmarshal([]byte(utils.ReadAllText(p)), &c)
if err != nil {
fmt.Println("Failed to load" + ConfName + ":" + err.Error())
_ = os.Rename(p, p+".backup"+strconv.FormatInt(time.Now().Unix(), 10))
_ = DefaultConfigs().Save(p)
}
c = AppConfigs{}
_ = yaml.Unmarshal([]byte(utils.ReadAllText(p)), &c)
// fmt.Println(ConfName + "loaded!")
return &c
}
func (c *AppConfigs) Save(p string) error {
data, err := yaml.Marshal(c)
if err != nil {
fmt.Println("Failed to save" + ConfName + ":" + err.Error())
return err
}
utils.WriteAllText(p, string(data))
return nil
}
+1 -2
View File
@@ -2,7 +2,6 @@ package database
import (
"errors"
"honoka-chan/config"
"github.com/syndtr/goleveldb/leveldb"
"github.com/syndtr/goleveldb/leveldb/util"
@@ -22,7 +21,7 @@ func init() {
}
func (ldb *LevelDbImpl) InitDb() {
ldb.ldb, err = leveldb.OpenFile(config.Conf.LevelDb.DataPath, nil)
ldb.ldb, err = leveldb.OpenFile("./data/honoka-chan.db", nil)
if err != nil {
panic(err.Error())
}
+1 -1
View File
@@ -26,4 +26,4 @@ Linux 系统直接用包管理工具安装即可,以下为 Windows 用户需
- SIF 客户端: https://0w-my.sharepoint.com/:f:/g/personal/smallfish_hualuoo_com/Ejt_D76BTa9No_JlqwjgpxABHCCV7py25BX0-dD56BN4KQ ,感谢虹原翼大佬提供,两个日文名的是日服的客户端可不管。
- AS 客户端: https://mega.nz/folder/FtBxSZbR#7JZ0QuX_zdv-WFypIK0Vuw
- SIF 全量数据: 同 SIF 客户端下载地址。zhuabao.zip 中的 list_CN_Android 和 list_CN_iOS。
- AS 全量数据: 待补充。关服前可自行抓包获取 `/asset/getPackUrl` 返回的下载地址集合,或者后续我会上传到网盘上
- AS 全量数据: 链接: https://pan.baidu.com/s/1CDzbtX6d0hgoczNdLCTzqw?pwd=wfzv 提取码: wfzv
+1 -1
View File
@@ -16,7 +16,7 @@ Android 客户端修改,分为两个部分:
由于 AS 使用的是 Unity 引擎,所以相关的信息都存放在 `assets\bin\Data\Managed\Metadata\global-metadata.dat` 中,在上述步骤 Apktool 解包后的目录下找到该文件,使用 [MetaDataStringEditor](https://github.com/JeremieCHN/MetaDataStringEditor) 打开该文件。
在搜索栏里输入 `/ep` 定位到 `https://prod-llas.jijiagames.com/ep3071`,将该地址修改为你的服务器 IP 或者域名。注意如果你的服务器不支持 https,请改成 http。
在搜索栏里输入 `/ep` 定位到 `https://prod-llas.jijiagames.com/ep3071`,将该地址修改为你的服务器 IP 或者域名例如 `http://192.168.1.123/ep3071`。注意如果你的服务器不支持 https,请改成 http。
![](./images/20230624200603.jpg)
+4 -2
View File
@@ -14,10 +14,12 @@
#### SIF 数据下载服务
下载 [其一:文件准备](./1.md) 篇中的全量数据,解压出 `list_CN_iOS``list_CN_Android` 两个文件夹。
下载 [其一:文件准备](./1.md) 篇中的 SIF 全量数据,解压出 `list_CN_iOS``list_CN_Android` 两个文件夹。
在本程序目录下的 `static` 目录下新建 `Android``iOS` 两个文件夹,然后将上面解压的两个文件夹按照对应系统移动到新建的这两个文件夹里,并将 `list_CN_iOS``list_CN_Android` 都改名为 `archives`。最后目录结构为 `static\iOS\archives``static\Android\archives`
如果只需要其中一个系统的数据包比如你不用苹果设备,可以删掉不用的。
由于数据包中也包含了盛趣服务器地址,所以为了不再次修改游戏配置文件,可以通过添加一个数据包,其中包含了修改过的服务器地址,并使其最后一个下载,这样会覆盖盛趣的服务器地址。
这里以 iOS 为例,进入 `static\iOS\archives`,可以发现 `99` 的数据包最后一个为 `99_0_114.zip`。复制 `99_0_113.zip``99_0_115.zip`,打开压缩包,删除没用 `client_info.json`,然后将 `server_info.json` 解压出来。
@@ -30,4 +32,4 @@ Android 也是同样的操作。
#### AS 数据下载服务
目前用的官方下载资源,无需其他设置,后续会进行更新
下载 [其一:文件准备](./1.md) 篇中的 AS 全量数据,解压出 `f7f2ac627227500b` 文件夹,将其放入本程序 `static` 目录下即可,压缩包中已包含国服 database 文件
+5 -5
View File
@@ -2,19 +2,19 @@
如果前面的操作都没问题的话,服务端已经可以使用。
启动游戏,查看 `honoka-chan` 窗口输出,第一次运行会生成配置文件 `config.json`。打开该文件,设置好 `sif_cdn_server``as_cdn_server`,如果你是按前面的操作,数据都放在本程序的 `static` 目录下的话,那就改成你的服务器地址+`static` 就行,类似默认生成的 `http://192.168.1.123/static`。如果你有自己的服务器存放更新数据,设置成相应地址即可。
登录方式为 `手机号密码登录`,都可以随便输。第一次使用的手机号会自动生成账号并记住登录的密码,以及后续的游戏内设置都会保存。
### SIF 测试
启动游戏,查看 `honoka-chan` 窗口输出。
登录方式为手机号密码登录,都可以随便输。第一次使用的手机号会自动生成账号并记住登录的密码,以及后续的游戏内设置都会保存。
按照提示下载数据,确认下载正常。
下载完毕可以进入游戏。
### AS 测试
AS 和 SIF 用一套账号系统,所以可以直接用上面的账号密码登录。
AS 和 SIF 用一套账号系统,所以可以直接用上面的账号密码登录。
按照提示下载数据,确认下载正常。
+2 -2
View File
@@ -8,6 +8,7 @@ require (
github.com/forgoer/openssl v1.5.0
github.com/gin-contrib/sessions v0.0.5
github.com/tidwall/gjson v1.14.4
github.com/tidwall/sjson v1.2.5
modernc.org/sqlite v1.22.1
xorm.io/builder v0.3.11-0.20220531020008-1bd24a7dc978
xorm.io/xorm v1.3.2
@@ -28,7 +29,6 @@ require (
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/tidwall/match v1.1.1 // indirect
github.com/tidwall/pretty v1.2.1 // indirect
github.com/tidwall/sjson v1.2.5 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
golang.org/x/arch v0.3.0 // indirect
golang.org/x/mod v0.8.0 // indirect
@@ -65,5 +65,5 @@ require (
golang.org/x/text v0.9.0 // indirect
google.golang.org/protobuf v1.30.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1
gopkg.in/yaml.v3 v3.0.1 // indirect
)
-1
View File
@@ -395,7 +395,6 @@ github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM=
github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4=
github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
+571 -283
View File
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -28,7 +28,7 @@ func DownloadAdditional(ctx *gin.Context) {
panic(err)
}
pkgList := []model.AdditionalRes{}
if CdnUrl != "" {
if SifCdnServer != "" {
pkgType, pkgId := downloadReq.PackageType, downloadReq.PackageID
var pkgInfo []PkgInfo
err := MainEng.Table("download_m").Where("pkg_type = ? AND pkg_id = ? AND pkg_os = ?", pkgType, pkgId, downloadReq.TargetOs).
@@ -39,7 +39,7 @@ func DownloadAdditional(ctx *gin.Context) {
for _, pkg := range pkgInfo {
pkgList = append(pkgList, model.AdditionalRes{
Size: pkg.Size,
URL: fmt.Sprintf("%s/%s/archives/%d_%d_%d.zip", CdnUrl, downloadReq.TargetOs, pkgType, pkg.Id, pkg.Order),
URL: fmt.Sprintf("%s/%s/archives/%d_%d_%d.zip", SifCdnServer, downloadReq.TargetOs, pkgType, pkg.Id, pkg.Order),
})
}
}
@@ -68,7 +68,7 @@ func DownloadBatch(ctx *gin.Context) {
panic(err)
}
pkgList := []model.BatchRes{}
if downloadReq.ClientVersion == config.PackageVersion && CdnUrl != "" {
if downloadReq.ClientVersion == config.PackageVersion && SifCdnServer != "" {
pkgType := downloadReq.PackageType
var pkgInfo []PkgInfo
err := MainEng.Table("download_m").Where(builder.NotIn("pkg_id", downloadReq.ExcludedPackageIds)).Where("pkg_type = ? AND pkg_os = ?", pkgType, downloadReq.Os).
@@ -79,7 +79,7 @@ func DownloadBatch(ctx *gin.Context) {
for _, pkg := range pkgInfo {
pkgList = append(pkgList, model.BatchRes{
Size: pkg.Size,
URL: fmt.Sprintf("%s/%s/archives/%d_%d_%d.zip", CdnUrl, downloadReq.Os, pkgType, pkg.Id, pkg.Order),
URL: fmt.Sprintf("%s/%s/archives/%d_%d_%d.zip", SifCdnServer, downloadReq.Os, pkgType, pkg.Id, pkg.Order),
})
}
}
@@ -108,7 +108,7 @@ func DownloadUpdate(ctx *gin.Context) {
panic(err)
}
pkgList := []model.UpdateRes{}
if downloadReq.ExternalVersion != config.PackageVersion && CdnUrl != "" {
if downloadReq.ExternalVersion != config.PackageVersion && SifCdnServer != "" {
pkgType := 99
var pkgInfo []PkgInfo
err := MainEng.Table("download_m").Where("pkg_type = ? AND pkg_os = ?", pkgType, downloadReq.TargetOs).
@@ -119,12 +119,12 @@ func DownloadUpdate(ctx *gin.Context) {
for _, pkg := range pkgInfo {
pkgList = append(pkgList, model.UpdateRes{
Size: pkg.Size,
URL: fmt.Sprintf("%s/%s/archives/%d_%d_%d.zip", CdnUrl, downloadReq.TargetOs, pkgType, pkg.Id, pkg.Order),
URL: fmt.Sprintf("%s/%s/archives/%d_%d_%d.zip", SifCdnServer, downloadReq.TargetOs, pkgType, pkg.Id, pkg.Order),
Version: config.PackageVersion,
})
}
patchFileUrl := fmt.Sprintf("%s/%s/archives/99_0_115.zip", CdnUrl, downloadReq.TargetOs)
patchFileUrl := fmt.Sprintf("%s/%s/archives/99_0_115.zip", SifCdnServer, downloadReq.TargetOs)
resp, err := http.Get(patchFileUrl)
if err == nil {
res, err := io.ReadAll(resp.Body)
@@ -166,7 +166,7 @@ func DownloadUrl(ctx *gin.Context) {
}
urlList := []string{}
for _, v := range downloadReq.PathList {
urlList = append(urlList, fmt.Sprintf("%s/%s/extracted/%s", CdnUrl, downloadReq.Os, strings.ReplaceAll(v, "\\", "")))
urlList = append(urlList, fmt.Sprintf("%s/%s/extracted/%s", SifCdnServer, downloadReq.Os, strings.ReplaceAll(v, "\\", "")))
}
urlResp := model.UrlResp{
ResponseData: model.UrlRes{
+89 -68
View File
@@ -5,30 +5,36 @@ import (
"fmt"
"honoka-chan/config"
"honoka-chan/encrypt"
"honoka-chan/model"
"honoka-chan/utils"
"os"
"strings"
"time"
"github.com/tidwall/sjson"
"xorm.io/xorm"
)
var (
CdnUrl string
ErrorMsg = `{"code":20001,"message":""}`
MainEng *xorm.Engine
UserEng *xorm.Engine
SifCdnServer string
AsCdnServer string
ErrorMsg = `{"code":20001,"message":""}`
MainEng *xorm.Engine
UserEng *xorm.Engine
// LLAS
sessionKey = "12345678123456781234567812345678"
sessionKey = "12345678123456781234567812345678"
presetDataPath = "assets/as/"
userDataPath = "assets/userdata/"
)
func init() {
if config.Conf.Cdn.CdnUrl != "" {
CdnUrl = config.Conf.Cdn.CdnUrl
}
SifCdnServer = config.Conf.Settings.SifCdnServer
AsCdnServer = config.Conf.Settings.AsCdnServer
MainEng = config.MainEng
UserEng = config.UserEng
os.Mkdir(userDataPath, 0755)
}
func CheckErr(err error) {
@@ -54,70 +60,85 @@ func SignResp(ep, body, key string) (resp string) {
}
func GetUserStatus() map[string]any {
userData := GetUserData("userStatus.json")
var r map[string]any
if err := json.Unmarshal([]byte(utils.ReadAllText("assets/as/userStatus.json")), &r); err != nil {
if err := json.Unmarshal([]byte(userData), &r); err != nil {
panic(err)
}
return r
}
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,
func GetUserData(fileName string) string {
userDataFile := userDataPath + fileName
if utils.PathExists(userDataFile) {
return utils.ReadAllText(userDataFile)
}
presetDataFile := presetDataPath + fileName
if !utils.PathExists(presetDataFile) {
panic("File not exists")
}
userData := utils.ReadAllText(presetDataFile)
utils.WriteAllText(userDataFile, userData)
return userData
}
func SetUserData(fileName, key string, value any) string {
userData, err := sjson.Set(GetUserData(fileName), key, value)
CheckErr(err)
utils.WriteAllText(userDataPath+fileName, userData)
return userData
}
func GetPartyInfoByRoleIds(roleIds []int) (partyIcon int, partyName string) {
// 脑残逻辑部分
exists, err := MainEng.Table("m_live_party_name").
Where("role_1 = ? AND role_2 = ? AND role_3 = ?", roleIds[0], roleIds[1], roleIds[2]).
Cols("name,live_party_icon").Get(&partyName, &partyIcon)
CheckErr(err)
if !exists {
exists, err = MainEng.Table("m_live_party_name").
Where("role_1 = ? AND role_2 = ? AND role_3 = ?", roleIds[0], roleIds[2], roleIds[1]).
Cols("name,live_party_icon").Get(&partyName, &partyIcon)
CheckErr(err)
if !exists {
exists, err = MainEng.Table("m_live_party_name").
Where("role_1 = ? AND role_2 = ? AND role_3 = ?", roleIds[1], roleIds[0], roleIds[2]).
Cols("name,live_party_icon").Get(&partyName, &partyIcon)
CheckErr(err)
if !exists {
exists, err = MainEng.Table("m_live_party_name").
Where("role_1 = ? AND role_2 = ? AND role_3 = ?", roleIds[1], roleIds[2], roleIds[0]).
Cols("name,live_party_icon").Get(&partyName, &partyIcon)
CheckErr(err)
if !exists {
exists, err = MainEng.Table("m_live_party_name").
Where("role_1 = ? AND role_2 = ? AND role_3 = ?", roleIds[2], roleIds[0], roleIds[1]).
Cols("name,live_party_icon").Get(&partyName, &partyIcon)
CheckErr(err)
if !exists {
exists, err = MainEng.Table("m_live_party_name").
Where("role_1 = ? AND role_2 = ? AND role_3 = ?", roleIds[2], roleIds[1], roleIds[0]).
Cols("name,live_party_icon").Get(&partyName, &partyIcon)
CheckErr(err)
if !exists {
panic("Fuck you!")
}
}
}
}
}
}
return
}
func GetRealPartyName(partyName string) (realPartyName string) {
_, err := MainEng.Table("m_dictionary").Where("id = ?", strings.ReplaceAll(partyName, "k.", "")).
Cols("message").Get(&realPartyName)
CheckErr(err)
return
}
+56
View File
@@ -551,3 +551,59 @@ type LiveDaily struct {
RemainingPlayCount int `json:"remaining_play_count"`
RemainingRecoveryCount int `json:"remaining_recovery_count"`
}
// AsLiveStageInfo ...
type AsLiveStageInfo struct {
LiveDifficultyID int `json:"live_difficulty_id"`
LiveNotes []AsLiveNotes `json:"live_notes"`
LiveWaveSettings []AsLiveWaveSettings `json:"live_wave_settings"`
NoteGimmicks []AsNoteGimmicks `json:"note_gimmicks"`
StageGimmickDict []any `json:"stage_gimmick_dict"`
}
// AsLiveNotes ...
type AsLiveNotes struct {
ID int `json:"id"`
CallTime int `json:"call_time"`
NoteType int `json:"note_type"`
NotePosition int `json:"note_position"`
GimmickID int `json:"gimmick_id"`
NoteAction int `json:"note_action"`
WaveID int `json:"wave_id"`
NoteRandomDropColor int `json:"note_random_drop_color"`
AutoJudgeType int `json:"auto_judge_type"`
}
// AsLiveWaveSettings ...
type AsLiveWaveSettings struct {
ID int `json:"id"`
WaveDamage int `json:"wave_damage"`
MissionType int `json:"mission_type"`
Arg1 int `json:"arg_1"`
Arg2 int `json:"arg_2"`
RewardVoltage int `json:"reward_voltage"`
}
// AsNoteGimmicks ...
type AsNoteGimmicks struct {
UniqID int `json:"uniq_id"`
ID int `json:"id"`
NoteGimmickType int `json:"note_gimmick_type"`
Arg1 int `json:"arg_1"`
Arg2 int `json:"arg_2"`
EffectMID int `json:"effect_m_id"`
IconType int `json:"icon_type"`
}
// AsLessonMenuAction ...
type AsLessonMenuAction struct {
CardMasterID int64 `json:"card_master_id"`
Position int `json:"position"`
IsAddedPassiveSkill bool `json:"is_added_passive_skill"`
IsAddedSpecialPassiveSkill bool `json:"is_added_special_passive_skill"`
IsRankupedPassiveSkill bool `json:"is_rankuped_passive_skill"`
IsRankupedSpecialPassiveSkill bool `json:"is_rankuped_special_passive_skill"`
IsPromotedSkill bool `json:"is_promoted_skill"`
MaxRarity any `json:"max_rarity"`
UpCount int `json:"up_count"`
}
+40 -29
View File
@@ -64,7 +64,7 @@ func SifRouter(r *gin.Engine) {
m.POST("/api", middleware.ParseMultipartForm, handler.Api)
m.POST("/award/set", handler.AwardSet)
m.POST("/background/set", handler.BackgroundSet)
m.POST("/download/additional", handler.DownloadAdditional)
m.POST("/download/additional", middleware.ParseMultipartForm, handler.DownloadAdditional)
m.POST("/download/batch", middleware.ParseMultipartForm, handler.DownloadBatch)
m.POST("/download/event", middleware.ParseMultipartForm, handler.DownloadEvent)
m.POST("/download/getUrl", middleware.ParseMultipartForm, handler.DownloadUrl)
@@ -141,42 +141,53 @@ func SifRouter(r *gin.Engine) {
}
func AsRouter(r *gin.Engine) {
r.Static("/llas-dev/static", "static/llas-dev/static")
r.Static("/llas-dev/static", "static")
s := r.Group("ep3071").Use(middleware.CommonAs)
{
s.POST("/login/login", handler.AsLogin)
s.POST("/bootstrap/fetchBootstrap", handler.AsFetchBootstrap)
s.POST("/billing/fetchBillingHistory", handler.AsFetchBillingHistory)
s.POST("/notice/fetchNotice", handler.AsFetchNotice)
s.POST("/asset/getPackUrl", handler.AsGetPackUrl)
s.POST("/card/updateCardNewFlag", handler.AsUpdateCardNewFlag)
s.POST("/billing/fetchBillingHistory", handler.AsFetchBillingHistory)
s.POST("/bootstrap/fetchBootstrap", handler.AsFetchBootstrap)
s.POST("/bootstrap/getClearedPlatformAchievement", handler.AsGetClearedPlatformAchievement)
s.POST("/live/fetchLiveMusicSelect", handler.AsFetchLiveMusicSelect)
s.POST("/liveMv/start", handler.AsLiveMvStart)
s.POST("/liveMv/saveDeck", handler.AsLiveMvSaveDeck)
s.POST("/card/changeIsAwakeningImage", handler.AsChangeIsAwakeningImage)
s.POST("/card/getOtherUserCard", handler.AsGetOtherUserCard)
s.POST("/card/updateCardNewFlag", handler.AsUpdateCardNewFlag)
s.POST("/communicationMember/fetchCommunicationMemberDetail", handler.AsFetchCommunicationMemberDetail)
s.POST("/navi/tapLovePoint", handler.AsTapLovePoint)
s.POST("/communicationMember/finishUserStoryMember", handler.AsFinishUserStoryMember)
s.POST("/communicationMember/finishUserStorySide", handler.AsFinishUserStorySide)
s.POST("/communicationMember/setTheme", handler.AsSetTheme)
s.POST("/communicationMember/setFavoriteMember", handler.AsSetFavoriteMember)
s.POST("/communicationMember/updateUserCommunicationMemberDetailBadge", handler.AsUpdateUserCommunicationMemberDetailBadge)
s.POST("/communicationMember/updateUserLiveDifficultyNewFlag", handler.AsUpdateUserLiveDifficultyNewFlag)
s.POST("/communicationMember/finishUserStorySide", handler.AsFinishUserStorySide)
s.POST("/communicationMember/finishUserStoryMember", handler.AsFinishUserStoryMember)
s.POST("/communicationMember/setTheme", handler.AsSetTheme)
s.POST("/userProfile/fetchProfile", handler.AsFetchProfile)
s.POST("/emblem/fetchEmblem", handler.AsFetchEmblem)
s.POST("/emblem/activateEmblem", handler.AsActivateEmblem)
s.POST("/navi/saveUserNaviVoice", handler.AsSaveUserNaviVoice)
s.POST("/liveDeck/saveDeckAll", handler.AsSaveDeckAll)
s.POST("/livePartners/fetch", handler.AsFetchLivePartners)
s.POST("/liveDeck/fetchLiveDeckSelect", handler.AsFetchLiveDeckSelect)
s.POST("/live/start", handler.AsLiveStart)
s.POST("/live/finish", handler.AsLiveFinish)
s.POST("/card/getOtherUserCard", handler.AsGetOtherUserCard)
s.POST("/notice/fetchNoticeDetail", handler.AsFetchNoticeDetail)
s.POST("/card/changeIsAwakeningImage", handler.AsChangeIsAwakeningImage)
s.POST("/storyEventHistory/finishStory", handler.AsFinishStory)
s.POST("/story/finishUserStoryMain", handler.AsFinishStoryMain)
s.POST("/story/finishStoryLinkage", handler.AsFinishStoryLinkage)
s.POST("/trainingTree/fetchTrainingTree", handler.AsFetchTrainingTree)
s.POST("/emblem/fetchEmblem", handler.AsFetchEmblem)
s.POST("/gameSettings/updatePushNotificationSettings", handler.AsUpdatePushNotificationSettings)
s.POST("/lesson/executeLesson", handler.AsExecuteLesson)
s.POST("/lesson/resultLesson", handler.AsResultLesson)
s.POST("/lesson/saveDeck", handler.AsSaveDeckLesson)
s.POST("/lesson/skillEditResult", handler.AsSkillEditResult)
s.POST("/liveDeck/fetchLiveDeckSelect", handler.AsFetchLiveDeckSelect)
s.POST("/liveDeck/saveDeckAll", handler.AsSaveDeckAll)
s.POST("/liveDeck/saveDeck", handler.AsSaveDeck)
s.POST("/liveDeck/saveSuit", handler.AsSaveSuit)
s.POST("/live/fetchLiveMusicSelect", handler.AsFetchLiveMusicSelect)
s.POST("/live/finish", handler.AsLiveFinish)
s.POST("/liveMv/saveDeck", handler.AsLiveMvSaveDeck)
s.POST("/liveMv/start", handler.AsLiveMvStart)
s.POST("/livePartners/fetch", handler.AsFetchLivePartners)
s.POST("/live/start", handler.AsLiveStart)
s.POST("/login/login", handler.AsLogin)
s.POST("/mission/clearMissionBadge", handler.AsClearMissionBadge)
s.POST("/mission/fetchMission", handler.AsFetchMission)
s.POST("/navi/saveUserNaviVoice", handler.AsSaveUserNaviVoice)
s.POST("/navi/tapLovePoint", handler.AsTapLovePoint)
s.POST("/notice/fetchNoticeDetail", handler.AsFetchNoticeDetail)
s.POST("/notice/fetchNotice", handler.AsFetchNotice)
s.POST("/present/fetch", handler.AsFetchPresent)
s.POST("/storyEventHistory/finishStory", handler.AsFinishStory)
s.POST("/story/finishStoryLinkage", handler.AsFinishStoryLinkage)
s.POST("/story/finishUserStoryMain", handler.AsFinishStoryMain)
s.POST("/trainingTree/fetchTrainingTree", handler.AsFetchTrainingTree)
s.POST("/userProfile/fetchProfile", handler.AsFetchProfile)
s.POST("/userProfile/setProfile", handler.AsSetProfile)
}
}
+4
View File
@@ -0,0 +1,4 @@
f7f2ac627227500b
Android
iOS
+4 -3
View File
@@ -257,7 +257,8 @@ func init() {
// CheckErr(err)
// missionRes := []model.AsMissionRes{}
// err = eng.Table("m_mission").Cols("id,mission_clear_condition_count").Where("term = 3").OrderBy("id ASC").Find(&missionRes)
// err = eng.Table("m_mission").Cols("id,mission_clear_condition_count").
// Where("term = 3 AND (end_at > ? OR end_at IS NULL)", time.Now().Unix()).OrderBy("id ASC").Find(&missionRes)
// CheckErr(err)
// jsonStr := "["
@@ -286,7 +287,7 @@ func init() {
// missionRes := []model.AsMissionRes{}
// err = eng.Table("m_mission").Cols("id,mission_clear_condition_count").
// Where("term = 1 AND end_at > ?", time.Now().Unix()).OrderBy("id ASC").Find(&missionRes)
// Where("term = 1 AND (end_at > ? OR end_at IS NULL)", time.Now().Unix()).OrderBy("id ASC").Find(&missionRes)
// CheckErr(err)
// jsonStr := "["
@@ -316,7 +317,7 @@ func init() {
// missionRes := []model.AsMissionRes{}
// err = eng.Table("m_mission").Cols("id,mission_clear_condition_count").
// Where("term = 2 AND end_at > ?", time.Now().Unix()).OrderBy("id ASC").Find(&missionRes)
// Where("term = 2 AND (end_at > ? OR end_at IS NULL)", time.Now().Unix()).OrderBy("id ASC").Find(&missionRes)
// CheckErr(err)
// jsonStr := "["
+11
View File
@@ -7,15 +7,23 @@ import (
"encoding/hex"
"math/rand"
"os"
"sync"
"time"
)
var (
rwMutex sync.RWMutex
)
func PathExists(path string) bool {
_, err := os.Stat(path)
return err == nil || os.IsExist(err)
}
func ReadAllText(path string) string {
rwMutex.RLock()
defer rwMutex.RUnlock()
b, err := os.ReadFile(path)
if err != nil {
return ""
@@ -24,6 +32,9 @@ func ReadAllText(path string) string {
}
func WriteAllText(path, text string) {
rwMutex.Lock()
defer rwMutex.Unlock()
_ = os.WriteFile(path, []byte(text), 0644)
}