diff --git a/.gitignore b/.gitignore index 9c4c2ec..e4bca32 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ assets/masterdata.db static/llas-dev +.idea .vscode diff --git a/assets/as/saveUserNaviVoice.json b/assets/as/saveUserNaviVoice.json new file mode 100644 index 0000000..589cadb --- /dev/null +++ b/assets/as/saveUserNaviVoice.json @@ -0,0 +1,128 @@ +{ + "user_model": { + "user_status": { + "name": { + "dot_under_text": "梦路2号机@果果厨" + }, + "nickname": { + "dot_under_text": "梦路" + }, + "last_login_at": 1684949629, + "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": 320, + "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": 10400253, + "device_token": "", + "tutorial_phase": 99, + "tutorial_end_at": 1622217482, + "login_days": 447, + "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": [ + 100030107, + { + "navi_voice_master_id": 100030107, + "is_new": true + } + ], + "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/router/router.go b/router/router.go index 9abbf41..dfb93c2 100644 --- a/router/router.go +++ b/router/router.go @@ -31,7 +31,7 @@ func SifRouter(r *gin.Engine) { r.Static("/static", "static") var files []string - filepath.Walk("static/templates", func(path string, info os.FileInfo, err error) error { + _ = filepath.Walk("static/templates", func(path string, info os.FileInfo, err error) error { if strings.HasSuffix(path, ".html") { files = append(files, path) } @@ -209,7 +209,7 @@ func AsRouter(r *gin.Engine) { s.POST("/asset/getPackUrl", func(ctx *gin.Context) { reqBody := ctx.GetString("reqBody") - req := []model.AsReq{} + var req []model.AsReq err := json.Unmarshal([]byte(reqBody), &req) if err != nil { panic(err) @@ -228,8 +228,8 @@ func AsRouter(r *gin.Engine) { } // 生成更新包 map - packageList := []string{} - urlList := []string{} + var packageList []string + var urlList []string err = json.Unmarshal([]byte(utils.ReadAllText("assets/as/packages.json")), &packageList) if err != nil { @@ -252,7 +252,7 @@ func AsRouter(r *gin.Engine) { } // Response - respUrls := []string{} + var respUrls []string for _, pack := range packNames { packName, ok := pack.(string) if !ok { @@ -266,7 +266,7 @@ func AsRouter(r *gin.Engine) { UrlList: respUrls, } - resp := []model.AsResp{} + var resp []model.AsResp resp = append(resp, time.Now().UnixMilli()) // 时间戳 resp = append(resp, config.MasterVersion) // 版本号 resp = append(resp, 0) // 固定值 @@ -323,7 +323,7 @@ func AsRouter(r *gin.Engine) { s.POST("/liveMv/saveDeck", func(ctx *gin.Context) { reqBody := ctx.GetString("reqBody") - req := []model.AsReq{} + var req []model.AsReq err := json.Unmarshal([]byte(reqBody), &req) if err != nil { panic(err) @@ -423,7 +423,7 @@ func AsRouter(r *gin.Engine) { } // fmt.Println(suitIds) - userLiveMvDeckCustomByID := []model.UserLiveMvDeckCustomByID{} + var userLiveMvDeckCustomByID []model.UserLiveMvDeckCustomByID userLiveMvDeckCustomByID = append(userLiveMvDeckCustomByID, saveReq.LiveMasterID) userLiveMvDeckCustomByID = append(userLiveMvDeckCustomByID, userLiveMvDeckInfo) // fmt.Println(userLiveMvDeckCustomByID) @@ -437,7 +437,7 @@ func AsRouter(r *gin.Engine) { } // fmt.Println(viewStatusIds) - userMemberByMemberID := []model.UserMemberByMemberID{} + var userMemberByMemberID []model.UserMemberByMemberID for k, v := range memberIds { userMemberByMemberID = append(userMemberByMemberID, v) userMemberByMemberID = append(userMemberByMemberID, model.UserMemberInfo{ @@ -634,6 +634,19 @@ func AsRouter(r *gin.Engine) { signBody := strings.ReplaceAll(utils.ReadAllText("assets/as/activateEmblem.json"), `"EMBLEM_ID"`, emblemId) resp := SignResp(ctx.GetString("ep"), signBody, sessionKey) + ctx.Header("Content-Type", "application/json") + ctx.String(http.StatusOK, resp) + }) + s.POST("/navi/saveUserNaviVoice", func(ctx *gin.Context) { + reqBody := ctx.GetString("reqBody") + // var emblemId string + gjson.Parse(reqBody).ForEach(func(key, value gjson.Result) bool { + fmt.Println(value) + return true + }) + // signBody := strings.ReplaceAll(utils.ReadAllText("assets/as/activateEmblem.json"), `"EMBLEM_ID"`, emblemId) + resp := SignResp(ctx.GetString("ep"), utils.ReadAllText("assets/as/saveUserNaviVoice.json"), sessionKey) + ctx.Header("Content-Type", "application/json") ctx.String(http.StatusOK, resp) })