mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2025-12-11 09:08:14 +08:00
🎨 根据实际情况修改
This commit is contained in:
@@ -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();
|
||||
|
||||
72
src/plugins/Sqlite/utils/transAbyssData.ts
Normal file
72
src/plugins/Sqlite/utils/transAbyssData.ts
Normal 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,
|
||||
};
|
||||
}),
|
||||
};
|
||||
}
|
||||
23
src/plugins/Sqlite/utils/transTime.ts
Normal file
23
src/plugins/Sqlite/utils/transTime.ts
Normal 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}`;
|
||||
}
|
||||
7
src/types/Sqlite/Abyss.d.ts
vendored
7
src/types/Sqlite/Abyss.d.ts
vendored
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user