Files
honoka-chan/tools/gen.go
T
2023-04-03 21:59:35 +08:00

1338 lines
37 KiB
Go

package tools
import (
"database/sql"
"encoding/json"
"fmt"
"honoka-chan/database"
"honoka-chan/model"
"honoka-chan/utils"
"strings"
"time"
_ "github.com/mattn/go-sqlite3"
)
type DifficultyResult struct {
Difficulty int `json:"difficulty"`
ClearCnt int `json:"clear_cnt"`
}
type DifficultyResp struct {
Result []DifficultyResult `json:"result"`
Status int `json:"status"`
CommandNum bool `json:"commandNum"`
TimeStamp int64 `json:"timeStamp"`
}
type LoveResp struct {
Result []interface{} `json:"result"`
Status int `json:"status"`
CommandNum bool `json:"commandNum"`
TimeStamp int64 `json:"timeStamp"`
}
type UserInfo struct {
UserID int `json:"user_id"`
Name string `json:"name"`
Level int `json:"level"`
CostMax int `json:"cost_max"`
UnitMax int `json:"unit_max"`
EnergyMax int `json:"energy_max"`
FriendMax int `json:"friend_max"`
UnitCnt int `json:"unit_cnt"`
InviteCode string `json:"invite_code"`
ElapsedTimeFromLogin string `json:"elapsed_time_from_login"`
Introduction string `json:"introduction"`
}
type AccessoryInfo struct {
AccessoryOwningUserID int `json:"accessory_owning_user_id"`
AccessoryID int `json:"accessory_id"`
Exp int `json:"exp"`
NextExp int `json:"next_exp"`
Level int `json:"level"`
MaxLevel int `json:"max_level"`
RankUpCount int `json:"rank_up_count"`
FavoriteFlag bool `json:"favorite_flag"`
}
type Costume struct {
UnitID int `json:"unit_id"`
IsRankMax bool `json:"is_rank_max"`
IsSigned bool `json:"is_signed"`
}
type CenterUnitInfo struct {
UnitOwningUserID int `json:"unit_owning_user_id"`
UnitID int `json:"unit_id"`
Exp int `json:"exp"`
NextExp int `json:"next_exp"`
Level int `json:"level"`
LevelLimitID int `json:"level_limit_id"`
MaxLevel int `json:"max_level"`
Rank int `json:"rank"`
MaxRank int `json:"max_rank"`
Love int `json:"love"`
MaxLove int `json:"max_love"`
UnitSkillLevel int `json:"unit_skill_level"`
MaxHp int `json:"max_hp"`
FavoriteFlag bool `json:"favorite_flag"`
DisplayRank int `json:"display_rank"`
UnitSkillExp int `json:"unit_skill_exp"`
UnitRemovableSkillCapacity int `json:"unit_removable_skill_capacity"`
Attribute int `json:"attribute"`
Smile int `json:"smile"`
Cute int `json:"cute"`
Cool int `json:"cool"`
IsLoveMax bool `json:"is_love_max"`
IsLevelMax bool `json:"is_level_max"`
IsRankMax bool `json:"is_rank_max"`
IsSigned bool `json:"is_signed"`
IsSkillLevelMax bool `json:"is_skill_level_max"`
SettingAwardID int `json:"setting_award_id"`
RemovableSkillIds []int `json:"removable_skill_ids"`
AccessoryInfo AccessoryInfo `json:"accessory_info"`
Costume Costume `json:"costume"`
TotalSmile int `json:"total_smile"`
TotalCute int `json:"total_cute"`
TotalCool int `json:"total_cool"`
TotalHp int `json:"total_hp"`
}
type NaviUnitInfo struct {
UnitOwningUserID int `json:"unit_owning_user_id"`
UnitID int `json:"unit_id"`
Exp int `json:"exp"`
NextExp int `json:"next_exp"`
Level int `json:"level"`
MaxLevel int `json:"max_level"`
LevelLimitID int `json:"level_limit_id"`
Rank int `json:"rank"`
MaxRank int `json:"max_rank"`
Love int `json:"love"`
MaxLove int `json:"max_love"`
UnitSkillExp int `json:"unit_skill_exp"`
UnitSkillLevel int `json:"unit_skill_level"`
MaxHp int `json:"max_hp"`
UnitRemovableSkillCapacity int `json:"unit_removable_skill_capacity"`
FavoriteFlag bool `json:"favorite_flag"`
DisplayRank int `json:"display_rank"`
IsRankMax bool `json:"is_rank_max"`
IsLoveMax bool `json:"is_love_max"`
IsLevelMax bool `json:"is_level_max"`
IsSigned bool `json:"is_signed"`
IsSkillLevelMax bool `json:"is_skill_level_max"`
IsRemovableSkillCapacityMax bool `json:"is_removable_skill_capacity_max"`
InsertDate string `json:"insert_date"`
TotalSmile int `json:"total_smile"`
TotalCute int `json:"total_cute"`
TotalCool int `json:"total_cool"`
TotalHp int `json:"total_hp"`
RemovableSkillIds []int `json:"removable_skill_ids"`
}
type ProfileResult struct {
UserInfo UserInfo `json:"user_info"`
CenterUnitInfo CenterUnitInfo `json:"center_unit_info"`
NaviUnitInfo NaviUnitInfo `json:"navi_unit_info"`
IsAlliance bool `json:"is_alliance"`
FriendStatus int `json:"friend_status"`
SettingAwardID int `json:"setting_award_id"`
SettingBackgroundID int `json:"setting_background_id"`
}
type ProfileResp struct {
Result ProfileResult `json:"result"`
Status int `json:"status"`
CommandNum bool `json:"commandNum"`
TimeStamp int64 `json:"timeStamp"`
}
var (
CenterId int
)
func GenApi1Data() {
db, err := sql.Open("sqlite3", "assets/main.db")
if err != nil {
panic(err)
}
defer db.Close()
// global
var respAll []interface{}
// live_status_result
var liveDifficultyId int
normalLives := []model.NormalLiveStatusList{}
sql := `SELECT live_difficulty_id FROM normal_live_m ORDER BY live_difficulty_id ASC`
rows, err := db.Query(sql)
if err != nil {
panic(err)
}
for rows.Next() {
err = rows.Scan(&liveDifficultyId)
if err != nil {
panic(err)
}
normalLive := model.NormalLiveStatusList{
LiveDifficultyID: liveDifficultyId,
Status: 1,
HiScore: 0,
HiComboCount: 0,
ClearCnt: 0,
AchievedGoalIDList: []int{},
}
normalLives = append(normalLives, normalLive)
}
specialLives := []model.SpecialLiveStatusList{}
sql = `SELECT live_difficulty_id FROM special_live_m ORDER BY live_difficulty_id ASC`
rows, err = db.Query(sql)
if err != nil {
panic(err)
}
for rows.Next() {
err = rows.Scan(&liveDifficultyId)
if err != nil {
panic(err)
}
specialLive := model.SpecialLiveStatusList{
LiveDifficultyID: liveDifficultyId,
Status: 1,
HiScore: 0,
HiComboCount: 0,
ClearCnt: 0,
AchievedGoalIDList: []int{},
}
specialLives = append(specialLives, specialLive)
}
LiveStatusResp := model.LiveStatusResp{
// _ = model.LiveStatusResp{
Result: model.LiveStatusResult{
NormalLiveStatusList: normalLives,
SpecialLiveStatusList: specialLives,
TrainingLiveStatusList: []model.TrainingLiveStatusList{},
MarathonLiveStatusList: []interface{}{},
FreeLiveStatusList: []interface{}{},
CanResumeLive: false,
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, LiveStatusResp)
// live_list_result
livesList := []model.LiveList{}
for _, v := range specialLives {
livesList = append(livesList, model.LiveList{
LiveDifficultyID: v.LiveDifficultyID,
StartDate: "2023-01-01 00:00:00",
EndDate: "2037-01-01 00:00:00",
IsRandom: false,
})
}
liveListResp := model.LiveScheduleResp{
// _ = model.LiveScheduleResp{
Result: model.LiveScheduleResult{
EventList: []interface{}{},
LiveList: livesList,
LimitedBonusList: []interface{}{},
LimitedBonusCommonList: []model.LimitedBonusCommonList{}, // 特效道具
RandomLiveList: []model.RandomLiveList{}, // 随机歌曲
FreeLiveList: []interface{}{},
TrainingLiveList: []model.TrainingLiveList{}, // 挑战歌曲
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, liveListResp)
// unit_list_result
sql = `SELECT unit_id,album_series_id,rarity,rank_min,rank_max,hp_max,default_removable_skill_capacity FROM unit_m WHERE unit_id NOT IN (SELECT unit_id FROM unit_m WHERE unit_type_id IN (SELECT unit_type_id FROM unit_type_m WHERE image_button_asset IS NULL AND (background_color = 'dcdbe3' AND original_attribute_id IS NULL) OR (unit_type_id IN (10,110,127,128,129) OR unit_type_id BETWEEN 131 AND 140))) ORDER BY unit_number ASC;`
rows, err = db.Query(sql)
if err != nil {
panic(err)
}
unitsData := []model.Active{}
oId := 3000000000 // 起始卡片 ID,随意设置
sdt := time.Now().Add(-time.Hour * 24 * 30)
defaultDeckUnitList := []model.PlayRewardUnitList{}
for rows.Next() {
unitData := model.Active{}
var uid, rit, rank, max_rank, hp_max, skill_capacity int
var album_series_id interface{}
err = rows.Scan(&uid, &album_series_id, &rit, &rank, &max_rank, &hp_max, &skill_capacity)
if err != nil {
fmt.Println(err)
continue
}
oId++
sdt = sdt.Add(time.Second * 3)
unitData.UnitOwningUserID = oId
unitData.UnitID = uid
unitData.NextExp = 0
unitData.Rank = rank
unitData.MaxRank = max_rank
unitData.MaxHp = hp_max
unitData.DisplayRank = 2
unitData.UnitSkillLevel = 8
unitData.FavoriteFlag = true
unitData.IsRankMax = true
unitData.IsLevelMax = true
unitData.IsLoveMax = true
unitData.IsSkillLevelMax = true
unitData.IsRemovableSkillCapacityMax = true
unitData.InsertDate = sdt.Local().Format("2006-01-02 03:04:05")
if rit != 4 {
unitData.LevelLimitID = 0
unitData.UnitRemovableSkillCapacity = skill_capacity
unitData.IsSigned = false
switch rit {
case 1:
// N
unitData.Exp = 8000
unitData.Level = 40
unitData.MaxLevel = 40
unitData.Love = 50
unitData.MaxLove = 50
unitData.UnitSkillExp = 0
unitData.UnitSkillLevel = 0
unitData.FavoriteFlag = false
unitData.IsRankMax = false
unitData.IsLevelMax = false
unitData.IsLoveMax = false
unitData.IsSkillLevelMax = false
unitData.IsRemovableSkillCapacityMax = false
case 2:
// R
unitData.Exp = 13500
unitData.Level = 60
unitData.MaxLevel = 60
unitData.Love = 200
unitData.MaxLove = 200
unitData.UnitSkillExp = 490
case 3:
// SR
unitData.Exp = 36800
unitData.Level = 80
unitData.MaxLevel = 80
unitData.Love = 500
unitData.MaxLove = 500
unitData.UnitSkillExp = 4900
case 5:
// SSR
unitData.Exp = 56657
unitData.Level = 90
unitData.MaxLevel = 90
unitData.Love = 750
unitData.MaxLove = 750
unitData.UnitSkillExp = 12700
}
} else {
// UR
unitData.Exp = 79700
unitData.Level = 100
unitData.MaxLevel = 100
unitData.LevelLimitID = 2
unitData.Love = 1000
unitData.MaxLove = 1000
unitData.UnitSkillExp = 29900
unitData.UnitRemovableSkillCapacity = 8
rs, err := db.Query("SELECT COUNT(*) AS ct FROM unit_sign_asset_m WHERE unit_id = ?", uid)
if err != nil {
panic(err)
}
ct := 0
for rs.Next() {
err = rs.Scan(&ct)
if err != nil {
panic(err)
}
}
if ct > 0 {
unitData.IsSigned = true
} else {
unitData.IsSigned = false
}
}
unitsData = append(unitsData, unitData)
// 中心位成员
if uid == 3927 { // AC15 果
CenterId = oId
}
switch album_series_id := album_series_id.(type) {
case int64:
if album_series_id == 615 {
// 仆光套
defaultDeckUnitList = append(defaultDeckUnitList, model.PlayRewardUnitList{
UnitOwningUserID: oId,
UnitID: uid,
Level: 100,
LevelLimitID: 2,
DisplayRank: 2,
Love: 1000,
UnitSkillLevel: 8,
IsRankMax: true,
IsLoveMax: true,
IsLevelMax: true,
IsSigned: unitData.IsSigned,
BeforeLove: 1000,
MaxLove: 1000,
})
}
}
}
unitListResp := model.UnitAllResp{
// _ = model.UnitAllResp{
Result: model.UnitAllResult{
Active: unitsData,
Waiting: []model.Waiting{},
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, unitListResp)
// unit_deck_result
oUids := []model.UnitOwningUserIds{}
for k, v := range defaultDeckUnitList[0:9] {
position := k + 1
defaultDeckUnitList[k].Position = position
oUids = append(oUids, model.UnitOwningUserIds{
Position: position,
UnitOwningUserID: v.UnitOwningUserID,
})
}
unitDeckResp := model.UnitDeckInfoResp{
// _ = model.UnitDeckInfoResp{
Result: []model.UnitDeckInfo{
{
UnitDeckID: 1,
MainFlag: true,
DeckName: "Future style",
UnitOwningUserIds: oUids,
},
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, unitDeckResp)
// HACK 保存卡组信息
deck, err := json.Marshal(defaultDeckUnitList)
if err != nil {
panic(err)
}
err = database.LevelDb.Put([]byte("deck_info"), deck)
if err != nil {
panic(err)
}
// unit_support_result
unitSupportResp := model.UnitSupportResp{
// _ = model.UnitSupportResp{
Result: model.UnitSupportResult{
UnitSupportList: []model.UnitSupportList{},
}, // 练习道具
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, unitSupportResp)
// owning_equip_result
rmSkillResp := model.RemovableSkillResp{
// _ = model.RemovableSkillResp{
Result: model.RemovableSkillResult{
OwningInfo: []model.OwningInfo{},
EquipmentInfo: []interface{}{},
}, // 宝石
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, rmSkillResp)
// costume_list_result
costumeListResp := model.CostumeListResp{
// _ = model.CostumeListResp{
Result: model.CostumeListResult{
CostumeList: []model.CostumeList{},
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, costumeListResp)
// album_unit_result
albumLists := []model.AlbumResult{}
sql = `SELECT unit_id,rarity FROM unit_m ORDER BY unit_id ASC`
rows, err = db.Query(sql)
if err != nil {
panic(err)
}
for rows.Next() {
albumList := model.AlbumResult{
RankMaxFlag: true,
LoveMaxFlag: true,
RankLevelMaxFlag: true,
AllMaxFlag: true,
FavoritePoint: 1000,
}
var uid, rit int
err = rows.Scan(&uid, &rit)
if err != nil {
panic(err)
}
albumList.UnitID = uid
if rit != 4 {
albumList.SignFlag = false
if rit == 1 {
albumList.HighestLovePerUnit = 50
albumList.TotalLove = 50
} else if rit == 2 {
albumList.HighestLovePerUnit = 200
albumList.TotalLove = 200
} else if rit == 3 {
albumList.HighestLovePerUnit = 500
albumList.TotalLove = 500
} else if rit == 5 {
albumList.HighestLovePerUnit = 750
albumList.TotalLove = 750
}
} else {
albumList.HighestLovePerUnit = 1000
albumList.TotalLove = 1000
rs, err := db.Query("SELECT COUNT(*) AS ct FROM unit_sign_asset_m WHERE unit_id = ?", uid)
if err != nil {
panic(err)
}
ct := 0
for rs.Next() {
err = rs.Scan(&ct)
if err != nil {
panic(err)
}
}
if ct > 0 {
albumList.SignFlag = true
} else {
albumList.SignFlag = false
}
}
albumLists = append(albumLists, albumList)
}
albumResp := model.AlbumResp{
// _ = model.AlbumResp{
Result: albumLists,
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, albumResp)
// scenario_status_result
sql = `SELECT scenario_id FROM scenario_m ORDER BY scenario_id ASC`
rows, err = db.Query(sql)
if err != nil {
panic(err)
}
scenarioLists := []model.ScenarioStatusList{}
for rows.Next() {
var sid int
err = rows.Scan(&sid)
if err != nil {
panic(err)
}
scenarioLists = append(scenarioLists, model.ScenarioStatusList{
ScenarioID: sid,
Status: 2,
})
}
scenarioResp := model.ScenarioStatusResp{
// _ = model.ScenarioStatusResp{
Result: model.ScenarioStatusResult{
ScenarioStatusList: scenarioLists,
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, scenarioResp)
// subscenario_status_result
sql = `SELECT subscenario_id FROM subscenario_m ORDER BY subscenario_id ASC`
rows, err = db.Query(sql)
if err != nil {
panic(err)
}
subScenarioLists := []model.SubscenarioStatusList{}
for rows.Next() {
var sid int
err = rows.Scan(&sid)
if err != nil {
panic(err)
}
subScenarioLists = append(subScenarioLists, model.SubscenarioStatusList{
SubscenarioID: sid,
Status: 2,
})
}
subScenarioResp := model.SubscenarioStatusResp{
// _ = model.SubscenarioStatusResp{
Result: model.SubscenarioStatusResult{
SubscenarioStatusList: subScenarioLists,
UnlockedSubscenarioIds: []interface{}{},
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, subScenarioResp)
// event_scenario_result
eventsList := []model.EventScenarioList{}
sql = `SELECT event_id FROM event_scenario_m GROUP BY event_id ORDER BY event_id DESC`
rows, err = db.Query(sql)
if err != nil {
panic(err)
}
for rows.Next() {
var eventId int
err = rows.Scan(&eventId)
if err != nil {
panic(err)
}
sql = `SELECT event_scenario_id,chapter,chapter_asset,open_date FROM event_scenario_m WHERE event_id = ? ORDER BY chapter DESC`
chaps, err := db.Query(sql, eventId)
if err != nil {
panic(err)
}
chapsList := []model.EventScenarioChapterList{}
var open_date string
for chaps.Next() {
var event_scenario_id, chapter int
var chapter_asset interface{}
err = chaps.Scan(&event_scenario_id, &chapter, &chapter_asset, &open_date)
if err != nil {
panic(err)
}
chapList := model.EventScenarioChapterList{
EventScenarioID: event_scenario_id,
Chapter: chapter,
Status: 2,
OpenFlashFlag: 0,
IsReward: false,
CostType: 1000,
ItemID: 1200,
Amount: 1,
}
if chapter_asset != nil {
chapList.ChapterAsset = chapter_asset.(string)
}
chapsList = append(chapsList, chapList)
}
eventList := model.EventScenarioList{
EventID: eventId,
OpenDate: strings.ReplaceAll(open_date, "/", "-"),
ChapterList: chapsList,
}
// HACK event_scenario_btn_asset
if eventId == 10001 {
eventList.EventScenarioBtnAsset = "assets/image/ui/eventscenario/38_se_ba_t.png"
} else if eventId == 221 {
eventList.EventScenarioBtnAsset = "assets/image/ui/eventscenario/215_se_ba_t.png"
} else {
eventList.EventScenarioBtnAsset = fmt.Sprintf("assets/image/ui/eventscenario/%d_se_ba_t.png", eventId)
}
eventsList = append(eventsList, eventList)
}
eventScenarioResp := model.EventScenarioStatusResp{
// _ = model.EventScenarioStatusResp{
Result: model.EventScenarioStatusResult{
EventScenarioList: eventsList, //
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, eventScenarioResp)
// multi_unit_scenario_result
sql = `SELECT multi_unit_id FROM multi_unit_scenario_m GROUP BY multi_unit_id ORDER BY multi_unit_id ASC`
rows, err = db.Query(sql)
if err != nil {
panic(err)
}
var mId int
multiUnitsList := []model.MultiUnitScenarioStatusList{}
for rows.Next() {
err = rows.Scan(&mId)
if err != nil {
panic(err)
}
sql = `SELECT multi_unit_scenario_btn_asset,open_date,multi_unit_scenario_id,chapter FROM multi_unit_scenario_m a LEFT JOIN multi_unit_scenario_open_m b ON a.multi_unit_id = b.multi_unit_id WHERE a.multi_unit_id = ?`
units, err := db.Query(sql, mId)
if err != nil {
panic(err)
}
var multi_unit_scenario_id, chapter int
var multi_unit_scenario_btn_asset, open_date string
for units.Next() {
err = units.Scan(&multi_unit_scenario_btn_asset, &open_date, &multi_unit_scenario_id, &chapter)
if err != nil {
panic(err)
}
}
multiUnitsList = append(multiUnitsList, model.MultiUnitScenarioStatusList{
MultiUnitID: mId,
Status: 2,
MultiUnitScenarioBtnAsset: multi_unit_scenario_btn_asset,
OpenDate: strings.ReplaceAll(open_date, "/", "-"),
ChapterList: []model.MultiUnitScenarioChapterList{
{
MultiUnitScenarioID: multi_unit_scenario_id,
Chapter: chapter,
Status: 2,
},
},
})
}
unitsResp := model.MultiUnitScenarioStatusResp{
// _ = model.MultiUnitScenarioStatusResp{
Result: model.MultiUnitScenarioStatusResult{
MultiUnitScenarioStatusList: multiUnitsList,
UnlockedMultiUnitScenarioIds: []interface{}{},
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, unitsResp)
// product_result
productResp := model.ProductListResp{
// _ = model.ProductListResp{
Result: model.ProductListResult{
RestrictionInfo: model.RestrictionInfo{
Restricted: false,
},
UnderAgeInfo: model.UnderAgeInfo{
BirthSet: false,
HasLimit: false,
LimitAmount: nil,
MonthUsed: 0,
},
SnsProductList: []model.SnsProductList{},
ProductList: []model.ProductList{},
SubscriptionList: []model.SubscriptionList{},
ShowPointShop: false,
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, productResp)
// banner_result
bannerResp := model.BannerListResp{
// _ = model.BannerListResp{
Result: model.BannerListResult{
TimeLimit: "2037-12-31 23:59:59",
BannerList: []model.BannerList{
{
BannerType: 1,
TargetID: 1743,
AssetPath: "assets/image/secretbox/icon/s_ba_1743_1.png",
FixedFlag: false,
BackSide: false,
BannerID: 101151,
StartDate: "2013-04-15 00:00:00",
EndDate: "2037-12-31 23:59:59",
AddUnitStartDate: "2022-01-01 00:00:00",
},
{
BannerType: 2,
TargetID: 1,
AssetPath: "assets/image/webview/wv_ba_01.png",
WebviewURL: "/manga",
FixedFlag: false,
BackSide: true,
BannerID: 200001,
StartDate: "2016-10-15 15:00:00",
EndDate: "2037-12-31 23:59:59",
},
},
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, bannerResp)
// item_marquee_result
marqueeResp := model.NoticeMarqueeResp{
// _ = model.NoticeMarqueeResp{
Result: model.NoticeMarqueeResult{
ItemCount: 0,
MarqueeList: []interface{}{},
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, marqueeResp)
// user_intro_result
userIntroResp := model.UserNaviResp{
// _ = model.UserNaviResp{
Result: model.UserNaviResult{
User: model.User{
UserID: 9999999,
UnitOwningUserID: CenterId,
},
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, userIntroResp)
// special_cutin_result
cutinResp := model.SpecialCutinResp{
// _ = model.SpecialCutinResp{
Result: model.SpecialCutinResult{
SpecialCutinList: []interface{}{},
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, cutinResp)
// award_result
sql = `SELECT award_id FROM award_m ORDER BY award_id ASC`
rows, err = db.Query(sql)
if err != nil {
panic(err)
}
awardsList := []model.AwardInfo{}
for rows.Next() {
var aId int
err = rows.Scan(&aId)
if err != nil {
panic(err)
}
isSet := false
if aId == 113 { // 极推穗乃果
isSet = true
}
awardsList = append(awardsList, model.AwardInfo{
AwardID: aId,
IsSet: isSet,
InsertDate: time.Now().Format("2006-01-02 03:04:05"),
})
}
awardResp := model.AwardInfoResp{
// _ = model.AwardInfoResp{
Result: model.AwardInfoResult{
AwardInfo: awardsList,
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, awardResp)
// background_result
sql = `SELECT background_id FROM background_m ORDER BY background_id ASC`
rows, err = db.Query(sql)
if err != nil {
panic(err)
}
backgroundsList := []model.BackgroundInfo{}
for rows.Next() {
var bId int
err = rows.Scan(&bId)
if err != nil {
panic(err)
}
isSet := false
if bId == 143 { // 穗乃果的房间[情人节]
isSet = true
}
backgroundsList = append(backgroundsList, model.BackgroundInfo{
BackgroundID: bId,
IsSet: isSet,
InsertDate: time.Now().Format("2006-01-02 03:04:05"),
})
}
backgroundResp := model.BackgroundInfoResp{
// _ = model.BackgroundInfoResp{
Result: model.BackgroundInfoResult{
BackgroundInfo: backgroundsList,
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, backgroundResp)
// stamp_result 使用不到的功能就不弄了
stampResp := utils.ReadAllText("assets/stamp.json")
var mStampResp interface{}
err = json.Unmarshal([]byte(stampResp), &mStampResp)
if err != nil {
panic(err)
}
// _ = utils.ReadAllText("assets/stamp.json")
respAll = append(respAll, mStampResp)
// exchange_point_result
sql = `SELECT exchange_point_id FROM exchange_point_m ORDER BY exchange_point_id ASC`
rows, err = db.Query(sql)
if err != nil {
panic(err)
}
exPointsList := []model.ExchangePointList{}
for rows.Next() {
var eId int
err = rows.Scan(&eId)
if err != nil {
panic(err)
}
exPointsList = append(exPointsList, model.ExchangePointList{
Rarity: eId,
ExchangePoint: 9999,
})
}
exPointsResp := model.ExchangePointResp{
// _ = model.ExchangePointResp{
Result: model.ExchangePointResult{
ExchangePointList: exPointsList,
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, exPointsResp)
// live_se_result
liveSeResp := model.LiveSeInfoResp{
// _ = model.LiveSeInfoResp{
Result: model.LiveSeInfoResult{
LiveSeList: []int{1, 2, 3},
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, liveSeResp)
// live_icon_result
liveIconResp := model.LiveIconInfoResp{
// _ = model.LiveIconInfoResp{
Result: model.LiveIconInfoResult{
LiveNotesIconList: []int{1, 2, 3},
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, liveIconResp)
// item_list_result 暂时不知道部分字段啥逻辑
itemResp := utils.ReadAllText("assets/item.json")
// _ = utils.ReadAllText("assets/item.json")
var mItemResp interface{}
err = json.Unmarshal([]byte(itemResp), &mItemResp)
if err != nil {
panic(err)
}
respAll = append(respAll, mItemResp)
// marathon_result
marathonResp := model.MarathonInfoResp{
// _ = model.MarathonInfoResp{
Result: []interface{}{},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, marathonResp)
// challenge_result
challengeResp := model.ChallengeInfoResp{
// _ = model.ChallengeInfoResp{
Result: []interface{}{},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, challengeResp)
// Final
k, err := json.Marshal(respAll)
if err != nil {
panic(err)
}
resp := model.Response{
ResponseData: k,
ReleaseInfo: []interface{}{},
StatusCode: 200,
}
k, err = json.Marshal(resp)
if err != nil {
panic(err)
}
// fmt.Println(string(k))
utils.WriteAllText("assets/api1.json", string(k))
}
func GenApi2Data() {
db, err := sql.Open("sqlite3", "assets/main.db")
if err != nil {
panic(err)
}
defer db.Close()
// global
var respAll []interface{}
// login_topinfo_result
topInfoResp := model.TopInfoResp{
// _ = model.TopInfoResp{
Result: model.TopInfoResult{
FriendActionCnt: 0,
FriendGreetCnt: 0,
FriendVarietyCnt: 0,
FriendNewCnt: 0,
PresentCnt: 0,
SecretBoxBadgeFlag: true,
ServerDatetime: time.Now().Format("2006-01-02 15:04:05"),
ServerTimestamp: time.Now().Unix(),
NoticeFriendDatetime: time.Now().Format("2006-01-02 15:04:05"),
NoticeMailDatetime: "2000-01-01 12:00:00",
FriendsApprovalWaitCnt: 0,
FriendsRequestCnt: 0,
IsTodayBirthday: false,
LicenseInfo: model.TopInfoLicenseInfo{
LicenseList: []interface{}{},
LicensedInfo: []interface{}{},
ExpiredInfo: []interface{}{},
BadgeFlag: false,
},
UsingBuffInfo: []interface{}{},
IsKlabIDTaskFlag: false,
KlabIDTaskCanSync: false,
HasUnreadAnnounce: false,
ExchangeBadgeCnt: []int{0, 0, 0},
AdFlag: false,
HasAdReward: false,
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, topInfoResp)
// login_topinfo_once_result
topInfoOnceResp := model.TopInfoOnceResp{
// _ = model.TopInfoOnceResp{
Result: model.TopInfoOnceResult{
NewAchievementCnt: 0,
UnaccomplishedAchievementCnt: 0,
LiveDailyRewardExist: false,
TrainingEnergy: 10,
TrainingEnergyMax: 10,
Notification: model.TopInfoOnceNotification{
Push: false,
Lp: false,
UpdateInfo: false,
Campaign: false,
Live: false,
Lbonus: false,
Event: false,
Secretbox: false,
Birthday: true,
},
OpenArena: true,
CostumeStatus: true,
OpenAccessory: true,
ArenaSiSkillUniqueCheck: true,
OpenV98: true,
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, topInfoOnceResp)
// unit_accessory_result
unitAccResp := model.UnitAccessoryAllResp{
// _ = model.UnitAccessoryAllResp{
Result: model.UnitAccessoryAllResult{
AccessoryList: []interface{}{},
WearingInfo: []interface{}{},
EspecialCreateFlag: false,
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, unitAccResp)
// museum_result
sql := `SELECT museum_contents_id,smile_buff,pure_buff,cool_buff FROM museum_contents_m ORDER BY museum_contents_id ASC`
rows, err := db.Query(sql)
if err != nil {
panic(err)
}
var smileBuf, pureBuf, coolBuf int
var mIds []int
for rows.Next() {
var museum_contents_id, smile_buff, pure_buff, cool_buff int
err = rows.Scan(&museum_contents_id, &smile_buff, &pure_buff, &cool_buff)
if err != nil {
panic(err)
}
smileBuf += smile_buff
pureBuf += pure_buff
coolBuf += cool_buff
mIds = append(mIds, museum_contents_id)
}
museumInfoResp := model.MuseumInfoResp{
Result: model.MuseumInfoResult{
MuseumInfo: model.MuseumInfo{
Parameter: model.MuseumInfoParameter{
Smile: smileBuf,
Pure: pureBuf,
Cool: coolBuf,
},
ContentsIDList: mIds,
},
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, museumInfoResp)
// Final
k, err := json.Marshal(respAll)
if err != nil {
panic(err)
}
resp := model.Response{
ResponseData: k,
ReleaseInfo: []interface{}{},
StatusCode: 200,
}
k, err = json.Marshal(resp)
if err != nil {
panic(err)
}
// fmt.Println(string(k))
utils.WriteAllText("assets/api2.json", string(k))
}
func GenApi3Data() {
// global
var respAll []interface{}
// profile_livecnt_result
difficultyResp := DifficultyResp{
// _ = DifficultyResp{
Result: []DifficultyResult{
{
Difficulty: 1,
ClearCnt: 315,
},
{
Difficulty: 2,
ClearCnt: 310,
},
{
Difficulty: 3,
ClearCnt: 314,
},
{
Difficulty: 4,
ClearCnt: 455,
},
{
Difficulty: 6,
ClearCnt: 233,
},
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, difficultyResp)
// profile_card_ranking_result
var result []interface{}
love := utils.ReadAllText("assets/love.json")
err := json.Unmarshal([]byte(love), &result)
if err != nil {
panic(err)
}
loveResp := LoveResp{
// _ = LoveResp{
Result: result,
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, loveResp)
// profile_info_result
profileResp := ProfileResp{
Result: ProfileResult{
UserInfo: UserInfo{
UserID: 9999999, // 3241988
Name: "\u68a6\u8def @\u65c5\u7acb\u3061\u306e\u65e5\u306b",
Level: 1028,
CostMax: 100,
UnitMax: 5000,
EnergyMax: 417,
FriendMax: 99,
UnitCnt: 3898,
InviteCode: "377385143",
ElapsedTimeFromLogin: "14\u5c0f\u65f6\u524d",
Introduction: "\u5728\u4e0d\u77e5\u4e0d\u89c9\u4e2d \u65f6\u5149\u4ece\u4e0d\u505c\u7559\\n\u5982\u4eca\u7684\u6211\u4eec \u6bd5\u4e1a\u518d\u56de\u9996\\n\u8ffd\u68a6\u7684\u670b\u53cb\u4eec\u4e00\u540c \u8e0f\u4e0a\u4e86\u65b0\u7684\u5f81\u9014\\n\u5728\u4e0d\u4e45\u7684\u4eca\u540e \u5728\u672a\u77e5\u7684\u67d0\u5904\\n \u6211\u4eec\u4e00\u5b9a\u4f1a\u518d\u4e00\u6b21\u9082\u9005\\n \u8bf7\u4e0d\u8981\u5fd8\u8bb0\u6211\u4eec \u66fe\u7ecf\u7684\u7b11\u5bb9\r",
},
CenterUnitInfo: CenterUnitInfo{
UnitOwningUserID: CenterId,
UnitID: 3927,
Exp: 79700,
NextExp: 0,
Level: 100,
LevelLimitID: 2,
MaxLevel: 100,
Rank: 2,
MaxRank: 2,
Love: 1000,
MaxLove: 1000,
UnitSkillLevel: 8,
MaxHp: 6,
FavoriteFlag: true,
DisplayRank: 2,
UnitSkillExp: 29900,
UnitRemovableSkillCapacity: 8,
Attribute: 1,
Smile: 1,
Cute: 1,
Cool: 1,
IsLoveMax: true,
IsLevelMax: true,
IsRankMax: true,
IsSigned: true,
IsSkillLevelMax: true,
SettingAwardID: 113,
RemovableSkillIds: []int{},
AccessoryInfo: AccessoryInfo{},
Costume: Costume{},
TotalSmile: 1,
TotalCute: 1,
TotalCool: 1,
TotalHp: 6,
},
NaviUnitInfo: NaviUnitInfo{
UnitOwningUserID: CenterId,
UnitID: 3927,
Exp: 79700,
NextExp: 0,
Level: 100,
MaxLevel: 100,
LevelLimitID: 2,
Rank: 2,
MaxRank: 2,
Love: 1000,
MaxLove: 1000,
UnitSkillExp: 29900,
UnitSkillLevel: 8,
MaxHp: 6,
UnitRemovableSkillCapacity: 8,
FavoriteFlag: true,
DisplayRank: 2,
IsLoveMax: true,
IsLevelMax: true,
IsRankMax: true,
IsSigned: true,
IsSkillLevelMax: true,
IsRemovableSkillCapacityMax: true,
InsertDate: "2016-10-11 10:33:03",
TotalSmile: 1,
TotalCute: 1,
TotalCool: 1,
TotalHp: 6,
RemovableSkillIds: []int{},
},
IsAlliance: false,
FriendStatus: 0,
SettingAwardID: 113,
SettingBackgroundID: 143,
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
respAll = append(respAll, profileResp)
// Final
k, err := json.Marshal(respAll)
if err != nil {
panic(err)
}
resp := model.Response{
ResponseData: k,
ReleaseInfo: []interface{}{},
StatusCode: 200,
}
k, err = json.Marshal(resp)
if err != nil {
panic(err)
}
// fmt.Println(string(k))
utils.WriteAllText("assets/api3.json", string(k))
}