2023-03-21

Signed-off-by: Yuan Si <do4suki@gmail.com>
This commit is contained in:
2023-03-21 07:43:16 +08:00
parent b8ef91ecd4
commit 0a4496ff54
41 changed files with 15440 additions and 662 deletions
+138 -18
View File
@@ -2,10 +2,10 @@ package handler
import (
"encoding/json"
"errors"
"fmt"
"honoka-chan/database"
"honoka-chan/model"
"honoka-chan/resp"
"honoka-chan/utils"
"net/http"
"github.com/gin-gonic/gin"
@@ -19,25 +19,145 @@ func ApiHandler(ctx *gin.Context) {
fmt.Println(err)
return
}
v1 := false
var results []interface{}
for _, v := range formdata {
var res string
var err error
// fmt.Println(v)
if v.Module == "live" {
v1 = true
break
// fmt.Println(v.Module, v.Action)
switch v.Module {
case "login":
if v.Action == "topInfo" {
// fmt.Println("topInfo")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "login_topinfo_result").Result()
} else if v.Action == "topInfoOnce" {
// fmt.Println("topInfoOnce")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "login_topinfo_once_result").Result()
}
case "live":
if v.Action == "liveStatus" {
// fmt.Println("liveStatus")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "live_status_result").Result()
} else if v.Action == "schedule" {
// fmt.Println("schedule")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "live_list_result").Result()
}
case "unit":
switch v.Action {
case "unitAll":
// fmt.Println("unitAll")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "unit_list_result").Result()
case "deckInfo":
// fmt.Println("deckInfo")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "unit_deck_result").Result()
case "supporterAll":
// fmt.Println("supporterAll")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "unit_support_result").Result()
case "removableSkillInfo":
// fmt.Println("removableSkillInfo")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "owning_equip_result").Result()
case "accessoryAll":
// fmt.Println("accessoryAll")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "unit_accessory_result").Result()
}
case "costume":
// fmt.Println("costumeList")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "costume_list_result").Result()
case "album":
// fmt.Println("albumAll")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "album_unit_result").Result()
case "scenario":
// fmt.Println("scenarioStatus")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "scenario_status_result").Result()
case "subscenario":
// fmt.Println("subscenarioStatus")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "subscenario_status_result").Result()
case "eventscenario":
// fmt.Println("status")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "event_scenario_result").Result()
case "multiunit":
// fmt.Println("multiunitscenarioStatus")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "multi_unit_scenario_result").Result()
case "payment":
// fmt.Println("productList")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "product_result").Result()
case "banner":
// fmt.Println("bannerList")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "banner_result").Result()
case "notice":
// fmt.Println("noticeMarquee")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "item_marquee_result").Result()
case "user":
// fmt.Println("getNavi")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "user_intro_result").Result()
case "navigation":
// fmt.Println("specialCutin")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "special_cutin_result").Result()
case "award":
// fmt.Println("awardInfo")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "award_result").Result()
case "background":
// fmt.Println("backgroundInfo")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "background_result").Result()
case "stamp":
// fmt.Println("stampInfo")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "stamp_result").Result()
case "exchange":
// fmt.Println("owningPoint")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "exchange_point_result").Result()
case "livese":
// fmt.Println("liveseInfo")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "live_se_result").Result()
case "liveicon":
// fmt.Println("liveiconInfo")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "live_icon_result").Result()
case "item":
// fmt.Println("list")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "item_list_result").Result()
case "marathon":
// fmt.Println("marathonInfo")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "marathon_result").Result()
case "challenge":
// fmt.Println("challengeInfo")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "challenge_result").Result()
case "museum":
// fmt.Println("info")
res, err = database.RedisCli.HGet(database.RedisCtx, "temp_dataset", "museum_result").Result()
default:
// fmt.Println("Fuck you!")
err = errors.New("invalid option")
}
if err != nil {
panic(err)
}
var result interface{}
err = json.Unmarshal([]byte(res), &result)
if err != nil {
panic(err)
}
results = append(results, result)
}
// fmt.Println(results)
b, err := json.Marshal(results)
if err != nil {
panic(err)
}
rp := model.Response{
ResponseData: b,
ReleaseInfo: []interface{}{},
StatusCode: 200,
}
b, err = json.Marshal(rp)
if err != nil {
panic(err)
}
// fmt.Println(string(b))
ctx.Header("Server-Version", "97.4.6")
ctx.Header("user_id", "5802913")
if v1 {
// 登录后第一次请求API
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1678640521&version=1.1&token=bS5G6TKTsw0aGxVQz8JWJTx8Tf73H0bF9Bq1PEw3UaxoEoUG8GcrrzaEbjOwEQJTrThgHpBlbwnMRl9ITGw1&nonce=9&requestTimeStamp=1678640521")
// ctx.Header("X-Message-Sign", "bNuSClKqt20FoGduZJI4pB1Y8xUwrrarvfsq0soqU5U97x7kGLESNoXSQVZcFfa1Eo4kgntEktokmDHzCbxpsYFvrD1mhbn++UOmcwXXCQRdxbbfhTt7MVfXbcqXAuFKAfkE37n9dkn1U0RnNt5U4m3mbRhLYT5B16ZcPGIPn/E=")
ctx.String(http.StatusOK, utils.ReadAllText("data/test2.json"))
} else {
// 登录后第二次请求API
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1678640523&version=1.1&token=bS5G6TKTsw0aGxVQz8JWJTx8Tf73H0bF9Bq1PEw3UaxoEoUG8GcrrzaEbjOwEQJTrThgHpBlbwnMRl9ITGw1&nonce=10&requestTimeStamp=1678640523")
// ctx.Header("X-Message-Sign", "w6+DlFx4DcmaoNXoLu71PH9sOOQeGFX/x0aDayt0qpHa+Uw+MeA0EJossW3/OgZvZgcFxBK2tKrHZJxRrguwCp0lpaI6/onWrYhK9xZeAW33nrsuWWT52v4wyNPY236xGecrDrs9R0nmTOuxElQEKqdFeZYL/JZiuuxvUbwxMy8=")
ctx.String(http.StatusOK, resp.Api2)
}
ctx.Header("user_id", "3241988")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1678640521&version=1.1&token=bS5G6TKTsw0aGxVQz8JWJTx8Tf73H0bF9Bq1PEw3UaxoEoUG8GcrrzaEbjOwEQJTrThgHpBlbwnMRl9ITGw1&nonce=9&requestTimeStamp=1678640521")
ctx.Header("X-Message-Sign", "bNuSClKqt20FoGduZJI4pB1Y8xUwrrarvfsq0soqU5U97x7kGLESNoXSQVZcFfa1Eo4kgntEktokmDHzCbxpsYFvrD1mhbn++UOmcwXXCQRdxbbfhTt7MVfXbcqXAuFKAfkE37n9dkn1U0RnNt5U4m3mbRhLYT5B16ZcPGIPn/E=")
ctx.String(http.StatusOK, string(b))
}
+5 -5
View File
@@ -1,15 +1,15 @@
package handler
import (
"honoka-chan/resp"
"honoka-chan/utils"
"net/http"
"github.com/gin-gonic/gin"
)
func DownloadEventHandler(ctx *gin.Context) {
ctx.Header("user_id", "5802913")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1678640521&version=1.1&token=bS5G6TKTsw0aGxVQz8JWJTx8Tf73H0bF9Bq1PEw3UaxoEoUG8GcrrzaEbjOwEQJTrThgHpBlbwnMRl9ITGw1&nonce=7&requestTimeStamp=1678640521")
ctx.Header("X-Message-Sign", "anBqaPYp7nEprAbxhOouwx8e1dCn1PbmXNplSVtGT3QWNvS+bcMYnqr8QxluM5SIGi3esO8tzHsDzn+Z7tdohFtpkT1zdYQ5qK07eZ8VtyckaRnmx5QLzn7MMflFWr3P/HONS04QwLakoeZyNDCBmxjqOy6QzNsf6e4o9D+21AM=")
ctx.String(http.StatusOK, resp.Event)
ctx.Header("user_id", "3241988")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1679236701&version=1.1&token=cHPoOHP5dAs2dh30EkOW8FndO07xlpKHrDRdVOtT7Whlo1opiEMXSwk1JJdAFd4cSeKQvGVRwH2Z7sFh1gnz3gd&nonce=8&requestTimeStamp=1679236698")
ctx.Header("X-Message-Sign", "rFJdTYrGPvG9V/IESgiAZu4qod4VgVTe5/oj8/5fA2mzXhJkKAD7nE8IOI9MQmjwECFYRc4KLPjtqsxuosloIjxTk6pHiAPtGvzkajqBivbbaBIB2OdIZQarqMRURN5M0TGLOC0vzO9xP5fYKJzMHSskJsmMdunPWLkUz3eqoZU=")
ctx.String(http.StatusOK, utils.ReadAllText("assets/event.json"))
}
+5 -5
View File
@@ -1,7 +1,7 @@
package handler
import (
"honoka-chan/resp"
"honoka-chan/utils"
"net/http"
"github.com/gin-gonic/gin"
@@ -9,8 +9,8 @@ import (
func GdprHandler(ctx *gin.Context) {
ctx.Header("Server-Version", "97.4.6")
ctx.Header("user_id", "5802913")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1678640520&version=1.1&token=bS5G6TKTsw0aGxVQz8JWJTx8Tf73H0bF9Bq1PEw3UaxoEoUG8GcrrzaEbjOwEQJTrThgHpBlbwnMRl9ITGw1&nonce=4&requestTimeStamp=1678640520")
ctx.Header("X-Message-Sign", "nGH0cQ34z9D3QnTGFDe2r2WMBGfTzYx+5oaJJbvYCqMESTDAQWlxq8X73OBLgdCkEIMuIAiRyF0z+0MQEVohDL4l6nDgcVDDJztCXP/W5ZXZh1wNgGhHZIDrwboNjsg1acq0+phBAiBEQQt6HipEdGRQh5fhAhhA717ns/C4iUI=")
ctx.String(http.StatusOK, resp.Gdpr)
ctx.Header("user_id", "3241988")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1679236700&version=1.1&token=cHPoOHP5dAs2dh30EkOW8FndO07xlpKHrDRdVOtT7Whlo1opiEMXSwk1JJdAFd4cSeKQvGVRwH2Z7sFh1gnz3gd&nonce=4&requestTimeStamp=1679236697")
ctx.Header("X-Message-Sign", "El2L/coKTfbHF8shto7SjxnukwicN1BtIMhvD21uKy+9ISwH0G2fI4aCemKn77o54H2zv+mVN4osDK0N0Zi86lGyx0rFXMlQ75D7XKX5KbWAhHcgn+W8t6tk2R0PVUyEeo1gtHgjNauT1asNK+PDJ7h3WWINPFgfVSnldCUnYLk=")
ctx.String(http.StatusOK, utils.ReadAllText("assets/gdpr.json"))
}
-23
View File
@@ -1,28 +1,5 @@
package handler
import (
"context"
"honoka-chan/config"
"github.com/redis/go-redis/v9"
)
var (
nonce = 0
redisCli *redis.Client
redisCtx = context.Background()
)
func init() {
redisCli = redis.NewClient(&redis.Options{
Addr: config.Conf.Redis.Host + ":" + config.Conf.Redis.Port,
Password: config.Conf.Redis.Pass,
DB: config.Conf.Redis.Db,
})
_, err := redisCli.Ping(redisCtx).Result()
if err != nil {
panic(err)
}
}
+5 -5
View File
@@ -1,7 +1,7 @@
package handler
import (
"honoka-chan/resp"
"honoka-chan/utils"
"net/http"
"github.com/gin-gonic/gin"
@@ -9,8 +9,8 @@ import (
func LBonusExecuteHandler(ctx *gin.Context) {
ctx.Header("Server-Version", "97.4.6")
ctx.Header("user_id", "5802913")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1678640521&version=1.1&token=bS5G6TKTsw0aGxVQz8JWJTx8Tf73H0bF9Bq1PEw3UaxoEoUG8GcrrzaEbjOwEQJTrThgHpBlbwnMRl9ITGw1&nonce=8&requestTimeStamp=1678640521")
ctx.Header("X-Message-Sign", "2UDMPncUOcUnQdLPCSuZIrRWK9yRgASUzCL3YiMpox/IUDNrHn7BRr/eo6iMQ1TlDTnNqzHj/ZP/8m4rpgvlDFHg16nlPUQJe0hqF9Ck3tjeHfT7wbwV75deoqIlPNONS5u3eCI8ZlhRf9VeDUBxRoVDRiq4xqiwjOILvmPAb1w=")
ctx.String(http.StatusOK, resp.LBonus)
ctx.Header("user_id", "3241988")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1679236701&version=1.1&token=cHPoOHP5dAs2dh30EkOW8FndO07xlpKHrDRdVOtT7Whlo1opiEMXSwk1JJdAFd4cSeKQvGVRwH2Z7sFh1gnz3gd&nonce=9&requestTimeStamp=1679236698")
ctx.Header("X-Message-Sign", "pV5H3WfRtj2zpDYuYwt9BuB8jMUJiXrGXQbsemJA+8sX7/c9s4mnbMFTKDD3cxK1mSeCLNhJVtR1M6QKZVgbCjyQGSVPR1EG1cTumR9T5LFF6ighJWV7EEYxbeYgJjAEcjVHOgB3d2hy7SK7u4oCatEgXhbJMQYGV5lH2gdwEpw=")
ctx.String(http.StatusOK, utils.ReadAllText("assets/lbonus.json"))
}
+4 -3
View File
@@ -4,6 +4,7 @@ import (
"encoding/base64"
"encoding/json"
"fmt"
"honoka-chan/database"
"honoka-chan/encrypt"
"honoka-chan/model"
"honoka-chan/utils"
@@ -48,7 +49,7 @@ func AuthKeyHandler(ctx *gin.Context) {
"server_token": serverToken,
"nonce": nonce,
}
_, err = redisCli.HSet(redisCtx, authorizeToken, authData).Result()
_, err = database.RedisCli.HSet(database.RedisCtx, authorizeToken, authData).Result()
if err != nil {
panic(err)
}
@@ -94,7 +95,7 @@ func LoginHandler(ctx *gin.Context) {
ctx.String(http.StatusForbidden, "Fuck you!")
return
}
authData, err := redisCli.HGetAll(redisCtx, authToken[0]).Result()
authData, err := database.RedisCli.HGetAll(database.RedisCtx, authToken[0]).Result()
if err != nil {
panic(err)
}
@@ -134,7 +135,7 @@ func LoginHandler(ctx *gin.Context) {
nonce++
authorizeToken := utils.RandomBase64Token(32)
uid, err := redisCli.HGet(redisCtx, "login_key_uid", string(keyDescrypted)).Result()
uid, err := database.RedisCli.HGet(database.RedisCtx, "login_key_uid", string(keyDescrypted)).Result()
if err != nil {
ctx.String(http.StatusForbidden, "Fuck you!")
return
+5 -5
View File
@@ -1,7 +1,7 @@
package handler
import (
"honoka-chan/resp"
"honoka-chan/utils"
"net/http"
"github.com/gin-gonic/gin"
@@ -9,8 +9,8 @@ import (
func PersonalNoticeHandler(ctx *gin.Context) {
ctx.Header("Server-Version", "97.4.6")
ctx.Header("user_id", "5802913")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1678640520&version=1.1&token=bS5G6TKTsw0aGxVQz8JWJTx8Tf73H0bF9Bq1PEw3UaxoEoUG8GcrrzaEbjOwEQJTrThgHpBlbwnMRl9ITGw1&nonce=5&requestTimeStamp=1678640520")
ctx.Header("X-Message-Sign", "c/J6CJPZZeGk44VLWkgCfamhFFKlLheu4e2ga2KrEl6DkVyotQTDte39RGMJS+kd5qRg/nSh/QdRGEfMLIeXB2xj3TT/UB1a03wV6slr39B+Xd2ip8BiuDKxmqpw3ESdK25WdlY+fMXbXc4RkkrleqElME7jw+VZ2SiwIgiedNg=")
ctx.String(http.StatusOK, resp.Gdpr)
ctx.Header("user_id", "3241988")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1679236701&version=1.1&token=cHPoOHP5dAs2dh30EkOW8FndO07xlpKHrDRdVOtT7Whlo1opiEMXSwk1JJdAFd4cSeKQvGVRwH2Z7sFh1gnz3gd&nonce=5&requestTimeStamp=1679236697")
ctx.Header("X-Message-Sign", "mTvY9EUM4LAomFxHQPINslVF8KBJ/nWZvCmVzYYyFln+M23/T05cuT/E6FUt9ExwmGMFy6TqtbZwcoomFWaEm38uJH2nQy/3RDjS0L26AsyFOHDIUOK11a4qHxv309sRjb04KhckTmzJERTooCnRturTYcNYet0g01vz2Geu4Ew=")
ctx.String(http.StatusOK, utils.ReadAllText("assets/personalnotice.json"))
}
+1 -1
View File
@@ -11,7 +11,7 @@ func ScenarioStartupHandler(ctx *gin.Context) {
ctx.Header("X-Powered-By", "KLab Native APP Platform")
ctx.Header("server_version", "20120129")
ctx.Header("Server-Version", "97.4.6")
ctx.Header("user_id", "5802913")
ctx.Header("user_id", "3241988")
ctx.Header("version_up", "0")
ctx.Header("status_code", "200")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1678786443&version=1.1&token=2gjbstqCHAlIv600Pk0AJN5uvfPYgLvfSKB418sMIoclOy1M9UP7LUC1CG14tPicVzOq2MBOXLvpmNRwyWIi9Qf&nonce=17&requestTimeStamp=1678786443")
+5 -5
View File
@@ -1,15 +1,15 @@
package handler
import (
"honoka-chan/resp"
"honoka-chan/utils"
"net/http"
"github.com/gin-gonic/gin"
)
func TosCheckHandler(ctx *gin.Context) {
ctx.Header("user_id", "5802913")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1678640520&version=1.1&token=bS5G6TKTsw0aGxVQz8JWJTx8Tf73H0bF9Bq1PEw3UaxoEoUG8GcrrzaEbjOwEQJTrThgHpBlbwnMRl9ITGw1&nonce=6&requestTimeStamp=1678640520")
ctx.Header("X-Message-Sign", "lHGAUrSt27AAUkeB+WJCSLjs9xZdyNnDRlZVZ0VRXFhqDnVBag0lwSQEUQoedh3/FyIHazbfjuTJw9REsgSJwX05I7GW7KoqPIYNoRLiLgjM6Y7MOZWrpVdipWl0q7IPS3mKyL8ye6sRZ8TfWx8cFfnohp3U7FnvrAEWdh1h71I=")
ctx.String(http.StatusOK, resp.TosCheck)
ctx.Header("user_id", "3241988")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1679236701&version=1.1&token=cHPoOHP5dAs2dh30EkOW8FndO07xlpKHrDRdVOtT7Whlo1opiEMXSwk1JJdAFd4cSeKQvGVRwH2Z7sFh1gnz3gd&nonce=6&requestTimeStamp=1679236698")
ctx.Header("X-Message-Sign", "3OYeXseR08OvVJfG9cEU6CbEXwbjAhL93vTEL6G4i3FqCY5wpELp0XR8FVZeHo7wsO9UI3+5JJZylnlWvaPgaXej2oefsk5cWHO2rKvrPxaqWRfz5YeGZBvXQejY81KgRRZBWZaQBlHEacH+aILl608xwQGQ98wGtyyMYfOf4Ss=")
ctx.String(http.StatusOK, utils.ReadAllText("assets/toscheck.json"))
}
+1 -1
View File
@@ -9,7 +9,7 @@ import (
func SetNotificationTokenHandler(ctx *gin.Context) {
ctx.Header("Server-Version", "97.4.6")
ctx.Header("user_id", "5802913")
ctx.Header("user_id", "3241988")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1678891478&version=1.1&token=cTMEyAfIDErcKUyCgBM6ZuJv8UBRgSzG4z4MfqYhR7xSHBYhIA9ofaVKtSefeiP2LTKIfbnCfE5dppYw8Af&nonce=18&requestTimeStamp=1678891478")
ctx.Header("X-Message-Sign", "bNZj/YjRADDccb5vcF/NHI9Kin3bkM3ECBQdxttXvCBqzoSBX6yWuEn9Fsjx+Yp3g2D9CcONZzqJlAvXbatGHJkbClSXuomLXVOcNmQYgidjyUvC7CceoSvCbL8U4Ge12tyGd8V2EMHVZfxqPKdHsJSGaOFbUpmo7wAhKVfuEjg=")
ctx.String(http.StatusOK, resp.NotificationToken)
+5 -5
View File
@@ -1,7 +1,7 @@
package handler
import (
"honoka-chan/resp"
"honoka-chan/utils"
"net/http"
"github.com/gin-gonic/gin"
@@ -9,8 +9,8 @@ import (
func UserInfoHandler(ctx *gin.Context) {
ctx.Header("Server-Version", "97.4.6")
ctx.Header("user_id", "5802913")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1678640520&version=1.1&token=bS5G6TKTsw0aGxVQz8JWJTx8Tf73H0bF9Bq1PEw3UaxoEoUG8GcrrzaEbjOwEQJTrThgHpBlbwnMRl9ITGw1&nonce=3&requestTimeStamp=1678640520")
ctx.Header("X-Message-Sign", "oa9sisoLJILWOKto4CAfb1jJwzoozpkpIAhnXl3s6m5jy75Zyb8tM+Jds6rqytnJt/labC/hFH0dhna/qqGbnTeLq6zUwHrTf8crz4uwtVi8qOBwvSbtA1dgbiKJr9raAflgJOQj6cft7XGP4bdkYfbuNxPS9gFhK+MG7b8S3Z8=")
ctx.String(http.StatusOK, resp.UserInfo)
ctx.Header("user_id", "3241988")
ctx.Header("authorize", "consumerKey=lovelive_test&timeStamp=1679236700&version=1.1&token=cHPoOHP5dAs2dh30EkOW8FndO07xlpKHrDRdVOtT7Whlo1opiEMXSwk1JJdAFd4cSeKQvGVRwH2Z7sFh1gnz3gd&nonce=3&requestTimeStamp=1679236697")
ctx.Header("X-Message-Sign", "mGcmcvrm22pt5zJw1CJxe/6Y9R4aZPb6znja4jxioWHlinjWU5nEq61qyslW0bX6uVWTifz17eSDdidlJHccusbQaKXOyoFfbQC1hpArv97b3RJGrnDK7iShPOTz3+mwYiUhtXrJ3oohRGH1siEG0G3H4pSK3JHnAbPlF84cR4w=")
ctx.String(http.StatusOK, utils.ReadAllText("assets/userinfo.json"))
}