From 3f8546b418592acf5677691282ae4de4676fe85b Mon Sep 17 00:00:00 2001 From: Yuan Si Date: Wed, 7 Jun 2023 21:42:52 +0800 Subject: [PATCH] as: Add story related APIs Signed-off-by: Yuan Si --- assets/as/changeIsAwakeningImage.json | 122 +++++++++++++++++++++++++ assets/as/finishStory.json | 122 +++++++++++++++++++++++++ assets/as/finishStoryLinkage.json | 123 ++++++++++++++++++++++++++ assets/as/finishUserStoryMain.json | 123 ++++++++++++++++++++++++++ model/login.go | 6 ++ router/router.go | 59 ++++++++++++ 6 files changed, 555 insertions(+) create mode 100644 assets/as/changeIsAwakeningImage.json create mode 100644 assets/as/finishStory.json create mode 100644 assets/as/finishStoryLinkage.json create mode 100644 assets/as/finishUserStoryMain.json diff --git a/assets/as/changeIsAwakeningImage.json b/assets/as/changeIsAwakeningImage.json new file mode 100644 index 0000000..ddaf8f0 --- /dev/null +++ b/assets/as/changeIsAwakeningImage.json @@ -0,0 +1,122 @@ +{ + "user_model_diff": { + "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_CARD_INFO", + "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": [] + } +} \ No newline at end of file diff --git a/assets/as/finishStory.json b/assets/as/finishStory.json new file mode 100644 index 0000000..f9c86f0 --- /dev/null +++ b/assets/as/finishStory.json @@ -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": [] + } +} \ No newline at end of file diff --git a/assets/as/finishStoryLinkage.json b/assets/as/finishStoryLinkage.json new file mode 100644 index 0000000..9db2a50 --- /dev/null +++ b/assets/as/finishStoryLinkage.json @@ -0,0 +1,123 @@ +{ + "user_model_diff": { + "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": [] + }, + "has_additional_rewards": false +} \ No newline at end of file diff --git a/assets/as/finishUserStoryMain.json b/assets/as/finishUserStoryMain.json new file mode 100644 index 0000000..1c2f83c --- /dev/null +++ b/assets/as/finishUserStoryMain.json @@ -0,0 +1,123 @@ +{ + "user_model_diff": { + "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": [] + }, + "first_clear_reward": [] +} \ No newline at end of file diff --git a/model/login.go b/model/login.go index 99aa80c..ce84975 100644 --- a/model/login.go +++ b/model/login.go @@ -468,6 +468,12 @@ type AsUserCardReq struct { CardMasterID int64 `json:"card_master_id"` } +// AsCardAwakeningReq ... +type AsCardAwakeningReq struct { + CardMasterID int `json:"card_master_id"` + IsAwakeningImage bool `json:"is_awakening_image"` +} + // AsReq ... type AsReq interface{} diff --git a/router/router.go b/router/router.go index bf5cf55..29db1e7 100644 --- a/router/router.go +++ b/router/router.go @@ -1032,6 +1032,65 @@ func AsRouter(r *gin.Engine) { resp := SignResp(ctx.GetString("ep"), utils.ReadAllText("assets/as/notices/"+noticeId+".json"), sessionKey) + ctx.Header("Content-Type", "application/json") + ctx.String(http.StatusOK, resp) + }) + s.POST("/card/changeIsAwakeningImage", func(ctx *gin.Context) { + reqBody := gjson.Parse(ctx.GetString("reqBody")).Array()[0] + // fmt.Println(reqBody.String()) + + req := model.AsCardAwakeningReq{} + if err := json.Unmarshal([]byte(reqBody.String()), &req); err != nil { + panic(err) + } + + cardInfo := model.AsCardInfo{} + gjson.Parse(utils.ReadAllText("assets/as/login.json")).Get("user_model.user_card_by_card_id"). + ForEach(func(key, value gjson.Result) bool { + if value.IsObject() { + if err := json.Unmarshal([]byte(value.String()), &cardInfo); err != nil { + panic(err) + } + + if cardInfo.CardMasterID == req.CardMasterID { + cardInfo.IsAwakeningImage = req.IsAwakeningImage + + return false + } + } + return true + }) + + card, err := json.Marshal(cardInfo) + CheckErr(err) + + jsonStr := fmt.Sprintf("[%d,%s]", cardInfo.CardMasterID, string(card)) + // fmt.Println(jsonStr) + + cardResp := utils.ReadAllText("assets/as/changeIsAwakeningImage.json") + cardResp = strings.ReplaceAll(cardResp, `"USER_CARD_INFO"`, jsonStr) + // fmt.Println(cardResp) + + resp := SignResp(ctx.GetString("ep"), cardResp, sessionKey) + + ctx.Header("Content-Type", "application/json") + ctx.String(http.StatusOK, resp) + }) + s.POST("/storyEventHistory/finishStory", func(ctx *gin.Context) { + resp := SignResp(ctx.GetString("ep"), utils.ReadAllText("assets/as/finishStory.json"), sessionKey) + + ctx.Header("Content-Type", "application/json") + ctx.String(http.StatusOK, resp) + }) + s.POST("/story/finishUserStoryMain", func(ctx *gin.Context) { + resp := SignResp(ctx.GetString("ep"), utils.ReadAllText("assets/as/finishUserStoryMain.json"), sessionKey) + + ctx.Header("Content-Type", "application/json") + ctx.String(http.StatusOK, resp) + }) + s.POST("/story/finishStoryLinkage", func(ctx *gin.Context) { + resp := SignResp(ctx.GetString("ep"), utils.ReadAllText("assets/as/finishStoryLinkage.json"), sessionKey) + ctx.Header("Content-Type", "application/json") ctx.String(http.StatusOK, resp) })