as: Add saveUserNaviVoice

Signed-off-by: Yuan Si <do4suki@gmail.com>
This commit is contained in:
2023-05-27 01:57:48 +08:00
parent 5bc855d764
commit 71bf7eba6e
3 changed files with 151 additions and 9 deletions
+1
View File
@@ -9,4 +9,5 @@ assets/masterdata.db
static/llas-dev static/llas-dev
.idea
.vscode .vscode
+128
View File
@@ -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": []
}
}
+22 -9
View File
@@ -31,7 +31,7 @@ func SifRouter(r *gin.Engine) {
r.Static("/static", "static") r.Static("/static", "static")
var files []string 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") { if strings.HasSuffix(path, ".html") {
files = append(files, path) files = append(files, path)
} }
@@ -209,7 +209,7 @@ func AsRouter(r *gin.Engine) {
s.POST("/asset/getPackUrl", func(ctx *gin.Context) { s.POST("/asset/getPackUrl", func(ctx *gin.Context) {
reqBody := ctx.GetString("reqBody") reqBody := ctx.GetString("reqBody")
req := []model.AsReq{} var req []model.AsReq
err := json.Unmarshal([]byte(reqBody), &req) err := json.Unmarshal([]byte(reqBody), &req)
if err != nil { if err != nil {
panic(err) panic(err)
@@ -228,8 +228,8 @@ func AsRouter(r *gin.Engine) {
} }
// 生成更新包 map // 生成更新包 map
packageList := []string{} var packageList []string
urlList := []string{} var urlList []string
err = json.Unmarshal([]byte(utils.ReadAllText("assets/as/packages.json")), &packageList) err = json.Unmarshal([]byte(utils.ReadAllText("assets/as/packages.json")), &packageList)
if err != nil { if err != nil {
@@ -252,7 +252,7 @@ func AsRouter(r *gin.Engine) {
} }
// Response // Response
respUrls := []string{} var respUrls []string
for _, pack := range packNames { for _, pack := range packNames {
packName, ok := pack.(string) packName, ok := pack.(string)
if !ok { if !ok {
@@ -266,7 +266,7 @@ func AsRouter(r *gin.Engine) {
UrlList: respUrls, UrlList: respUrls,
} }
resp := []model.AsResp{} var resp []model.AsResp
resp = append(resp, time.Now().UnixMilli()) // 时间戳 resp = append(resp, time.Now().UnixMilli()) // 时间戳
resp = append(resp, config.MasterVersion) // 版本号 resp = append(resp, config.MasterVersion) // 版本号
resp = append(resp, 0) // 固定值 resp = append(resp, 0) // 固定值
@@ -323,7 +323,7 @@ func AsRouter(r *gin.Engine) {
s.POST("/liveMv/saveDeck", func(ctx *gin.Context) { s.POST("/liveMv/saveDeck", func(ctx *gin.Context) {
reqBody := ctx.GetString("reqBody") reqBody := ctx.GetString("reqBody")
req := []model.AsReq{} var req []model.AsReq
err := json.Unmarshal([]byte(reqBody), &req) err := json.Unmarshal([]byte(reqBody), &req)
if err != nil { if err != nil {
panic(err) panic(err)
@@ -423,7 +423,7 @@ func AsRouter(r *gin.Engine) {
} }
// fmt.Println(suitIds) // fmt.Println(suitIds)
userLiveMvDeckCustomByID := []model.UserLiveMvDeckCustomByID{} var userLiveMvDeckCustomByID []model.UserLiveMvDeckCustomByID
userLiveMvDeckCustomByID = append(userLiveMvDeckCustomByID, saveReq.LiveMasterID) userLiveMvDeckCustomByID = append(userLiveMvDeckCustomByID, saveReq.LiveMasterID)
userLiveMvDeckCustomByID = append(userLiveMvDeckCustomByID, userLiveMvDeckInfo) userLiveMvDeckCustomByID = append(userLiveMvDeckCustomByID, userLiveMvDeckInfo)
// fmt.Println(userLiveMvDeckCustomByID) // fmt.Println(userLiveMvDeckCustomByID)
@@ -437,7 +437,7 @@ func AsRouter(r *gin.Engine) {
} }
// fmt.Println(viewStatusIds) // fmt.Println(viewStatusIds)
userMemberByMemberID := []model.UserMemberByMemberID{} var userMemberByMemberID []model.UserMemberByMemberID
for k, v := range memberIds { for k, v := range memberIds {
userMemberByMemberID = append(userMemberByMemberID, v) userMemberByMemberID = append(userMemberByMemberID, v)
userMemberByMemberID = append(userMemberByMemberID, model.UserMemberInfo{ 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) signBody := strings.ReplaceAll(utils.ReadAllText("assets/as/activateEmblem.json"), `"EMBLEM_ID"`, emblemId)
resp := SignResp(ctx.GetString("ep"), signBody, sessionKey) 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.Header("Content-Type", "application/json")
ctx.String(http.StatusOK, resp) ctx.String(http.StatusOK, resp)
}) })