as: Add story related APIs

Signed-off-by: Yuan Si <do4suki@gmail.com>
This commit is contained in:
2023-06-07 21:42:52 +08:00
parent 31f86f2b93
commit 3f8546b418
6 changed files with 555 additions and 0 deletions
+122
View File
@@ -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": []
}
}
+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": []
}
}
+123
View File
@@ -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
}
+123
View File
@@ -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": []
}
+6
View File
@@ -468,6 +468,12 @@ type AsUserCardReq struct {
CardMasterID int64 `json:"card_master_id"` CardMasterID int64 `json:"card_master_id"`
} }
// AsCardAwakeningReq ...
type AsCardAwakeningReq struct {
CardMasterID int `json:"card_master_id"`
IsAwakeningImage bool `json:"is_awakening_image"`
}
// AsReq ... // AsReq ...
type AsReq interface{} type AsReq interface{}
+59
View File
@@ -1032,6 +1032,65 @@ func AsRouter(r *gin.Engine) {
resp := SignResp(ctx.GetString("ep"), utils.ReadAllText("assets/as/notices/"+noticeId+".json"), sessionKey) 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.Header("Content-Type", "application/json")
ctx.String(http.StatusOK, resp) ctx.String(http.StatusOK, resp)
}) })