🎨 根据实际情况修改

This commit is contained in:
BTMuli
2023-05-31 21:26:14 +08:00
parent 12257bda66
commit 8fbac6112d
4 changed files with 128 additions and 4 deletions

View File

@@ -12,7 +12,7 @@ import initDataSql from "./sql/initData";
import initTableSql from "./sql/initTable";
import { importUIAFData } from "./sql/updateData";
import { getUiafStatus } from "../../utils/UIAF";
import { insertAppData, insertGameAccountData } from "./sql/insertData";
import { insertAbyssData, insertAppData, insertGameAccountData } from "./sql/insertData";
class Sqlite {
/**
@@ -81,7 +81,7 @@ class Sqlite {
* @param {TGApp.User.Account.Game[]} accounts
* @returns {Promise<void>}
*/
public async insertAccount (accounts: TGApp.User.Account.Game[]): Promise<void> {
public async saveAccount (accounts: TGApp.User.Account.Game[]): Promise<void> {
const db = await Database.load(this.dbPath);
for (const a of accounts) {
const sql = insertGameAccountData(a);
@@ -297,6 +297,32 @@ class Sqlite {
}
return achievements;
}
/**
* @description 保存深渊数据
* @since Alpha v0.2.0
* @param {TGApp.Game.Abyss.FullData} data 深渊数据
* @returns {Promise<void>}
*/
public async saveAbyss (data: TGApp.Game.Abyss.FullData): Promise<void> {
const db = await Database.load(this.dbPath);
const sql = insertAbyssData(data);
await db.execute(sql);
await db.close();
}
/**
* @description 获取深渊数据
* @since Alpha v0.2.0
* @returns {Promise<TGApp.Game.Abyss.FullData>}
*/
public async getAbyss (): Promise<TGApp.Sqlite.Abyss.SingleTable[]> {
const db = await Database.load(this.dbPath);
const sql = "SELECT * FROM SpiralAbyss";
const res: TGApp.Sqlite.Abyss.SingleTable[] = await db.select(sql);
await db.close();
return res;
}
}
const TGSqlite = new Sqlite();

View File

@@ -0,0 +1,72 @@
/**
* @file plugins Sqlite utils transCharacter.ts
* @description Sqlite 数据转换
* @author BTMuli <bt-muli@outlook.com>
* @since Alpha v0.2.0
*/
import { timeToSecond } from "./transTime";
/**
* @description 将通过 api 获取到的深渊数据转换为数据库中的数据
* @since Alpha v0.2.0
* @param {TGApp.Game.Abyss.CharacterData[]} data 深渊数据
* @returns {string} 转换后的深渊数据
*/
export function transCharacterData (data: TGApp.Game.Abyss.CharacterData[]): string {
const res = data.map((item) => {
return {
id: item.avatar_id,
value: item.value,
star: item.rarity,
};
}) as TGApp.Sqlite.Abyss.Character[];
console.log(JSON.stringify(res));
return JSON.stringify(res);
}
/**
* @description 将通过 api 获取到的深渊数据转换为数据库中的数据
* @since Alpha v0.2.0
* @param {TGApp.Game.Abyss.Floor} data 深渊数据
* @returns {string} 转换后的深渊数据
*/
export function transFloorData (data: TGApp.Game.Abyss.Floor[]): string {
const floor = data.map((item) => {
return {
id: item.index,
winStar: item.star,
maxStar: item.max_star,
isUnlock: item.is_unlock ? 1 : 0,
levels: item.levels.map((level) => {
return {
id: level.index,
winStar: level.star,
maxStar: level.max_star,
upBattle: transBattleData(level.battles.find((l) => l.index === 1) as TGApp.Game.Abyss.Battle),
downBattle: transBattleData(level.battles.find((l) => l.index === 2) as TGApp.Game.Abyss.Battle),
};
}),
};
}) as TGApp.Sqlite.Abyss.Floor[];
return JSON.stringify(floor);
}
/**
* @description 将通过 api 获取到的深渊数据转换为数据库中的数据
* @since Alpha v0.2.0
* @param {TGApp.Game.Abyss.Battle} data 深渊数据
* @returns {TGApp.Sqlite.Abyss.Battle} 转换后的深渊数据
*/
function transBattleData (data: TGApp.Game.Abyss.Battle): TGApp.Sqlite.Abyss.Battle {
return {
time: timeToSecond(data.timestamp),
characters: data.avatars.map((item) => {
return {
id: item.id,
level: item.level,
star: item.rarity,
};
}),
};
}

View File

@@ -0,0 +1,23 @@
/**
* @file plugins Sqlite utils transTime.ts
* @description Sqlite 时间转换工具类
* @author BTMuli <bt-muli@outlook.com>
* @since Alpha v0.2.0
*/
/**
* @description 将时间戳转换为时间字符串
* @since Alpha v0.2.0
* @param {string} timestamp 时间戳 (秒)
* @returns {string} 时间字符串,格式为 YYYY-MM-DD HH:mm:ss
*/
export function timeToSecond (timestamp: string): string {
const date = new Date(Number(timestamp) * 1000);
const year = date.getFullYear();
const month = date.getMonth() + 1;
const day = date.getDate();
const hour = String(date.getHours()).padStart(2, "0");
const minute = String(date.getMinutes()).padStart(2, "0");
const second = String(date.getSeconds()).padStart(2, "0");
return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
}

View File

@@ -117,11 +117,14 @@ declare namespace TGApp.Sqlite.Abyss {
* @description 数据库-深境螺旋表-角色数据
* @since Alpha v0.2.0
* @interface CharacterInfo
* @extends Character
* @property {number} id - 角色 ID
* @property {number} star - 星级
* @property {number} level - 等级
* @return CharacterInfo
*/
export interface CharacterInfo extends Character {
export interface CharacterInfo {
id: number
level: number
star: number
}
}