mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2025-12-13 09:28:14 +08:00
♻️ 调整目录结构
This commit is contained in:
@@ -1,17 +1,17 @@
|
||||
/**
|
||||
* @file plugins/Hutao/utils/abyssUtil.ts
|
||||
* @description 将本地数据转为上传用的数据
|
||||
* @since Beta v0.6.2
|
||||
* @since Beta v0.6.3
|
||||
*/
|
||||
|
||||
/**
|
||||
* @description 将本地数据转为上传用的数据
|
||||
* @since Beta v0.6.3
|
||||
* @param {TGApp.Sqlite.Abyss.SingleTable} data 本地数据
|
||||
* @param {TGApp.Sqlite.Abyss.TableRaw} data 本地数据
|
||||
* @returns {TGApp.Plugins.Hutao.Abyss.RecordUpload} 上传用的数据
|
||||
*/
|
||||
export function transAbyssLocal(
|
||||
data: TGApp.Sqlite.Abyss.SingleTable,
|
||||
data: TGApp.Sqlite.Abyss.TableData,
|
||||
): TGApp.Plugins.Hutao.Abyss.RecordUpload {
|
||||
return {
|
||||
Uid: data.uid,
|
||||
@@ -24,43 +24,36 @@ export function transAbyssLocal(
|
||||
|
||||
/**
|
||||
* @description 转换深渊数据
|
||||
* @since Alpha v0.2.2
|
||||
* @param {TGApp.Sqlite.Abyss.SingleTable} data 本地数据
|
||||
* @since Beta v0.6.3
|
||||
* @param {TGApp.Sqlite.Abyss.TableRaw} data 本地数据
|
||||
* @returns {TGApp.Plugins.Hutao.Abyss.RecordData} 上传用的数据
|
||||
*/
|
||||
function transAbyssData(
|
||||
data: TGApp.Sqlite.Abyss.SingleTable,
|
||||
): TGApp.Plugins.Hutao.Abyss.RecordData {
|
||||
const defeat: TGApp.Sqlite.Abyss.Character = JSON.parse(data.defeatRank)[0];
|
||||
const energySkill: TGApp.Sqlite.Abyss.Character = JSON.parse(data.energySkillRank)[0];
|
||||
const normalSkill: TGApp.Sqlite.Abyss.Character = JSON.parse(data.normalSkillRank)[0];
|
||||
const damage: TGApp.Sqlite.Abyss.Character = JSON.parse(data.damageRank)[0];
|
||||
const takeDamage: TGApp.Sqlite.Abyss.Character = JSON.parse(data.takeDamageRank)[0];
|
||||
function transAbyssData(data: TGApp.Sqlite.Abyss.TableData): TGApp.Plugins.Hutao.Abyss.RecordData {
|
||||
return {
|
||||
ScheduleId: data.id,
|
||||
TotalBattleTimes: data.totalBattleTimes,
|
||||
TotalWinTimes: data.totalWinTimes,
|
||||
Defeat: {
|
||||
AvatarId: defeat.id,
|
||||
Value: defeat.value,
|
||||
AvatarId: data.defeatRank[0].id,
|
||||
Value: data.defeatRank[0].value,
|
||||
},
|
||||
EnergySkill: {
|
||||
AvatarId: energySkill.id,
|
||||
Value: energySkill.value,
|
||||
AvatarId: data.energySkillRank[0].id,
|
||||
Value: data.energySkillRank[0].value,
|
||||
},
|
||||
NormalSkill: {
|
||||
AvatarId: normalSkill.id,
|
||||
Value: normalSkill.value,
|
||||
AvatarId: data.normalSkillRank[0].id,
|
||||
Value: data.normalSkillRank[0].value,
|
||||
},
|
||||
Damage: {
|
||||
AvatarId: damage.id,
|
||||
Value: damage.value,
|
||||
AvatarId: data.damageRank[0].id,
|
||||
Value: data.damageRank[0].value,
|
||||
},
|
||||
TakeDamage: {
|
||||
AvatarId: takeDamage.id,
|
||||
Value: takeDamage.value,
|
||||
AvatarId: data.takeDamageRank[0].id,
|
||||
Value: data.takeDamageRank[0].value,
|
||||
},
|
||||
Floors: JSON.parse(data.floors).map((floor: TGApp.Sqlite.Abyss.Floor) => transFloor(floor)),
|
||||
Floors: data.floors.map((floor: TGApp.Sqlite.Abyss.Floor) => transFloor(floor)),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -15,10 +15,10 @@ import { transCharacterData, transFloorData } from "../utils/transAbyssData.js";
|
||||
/**
|
||||
* @description 直接插入数据
|
||||
* @since Beta v0.6.0
|
||||
* @param {TGApp.Sqlite.Abyss.SingleTable} data - 数据
|
||||
* @param {TGApp.Sqlite.Abyss.TableRaw} data - 数据
|
||||
* @returns {string}
|
||||
*/
|
||||
function getRestoreSql(data: TGApp.Sqlite.Abyss.SingleTable): string {
|
||||
function getRestoreSql(data: TGApp.Sqlite.Abyss.TableRaw): string {
|
||||
const timeNow = timestampToDate(new Date().getTime());
|
||||
return `
|
||||
INSERT INTO SpiralAbyss (uid, id, startTime, endTime, totalBattleTimes, totalWinTimes,
|
||||
@@ -96,6 +96,35 @@ function getInsertSql(uid: string, data: TGApp.Game.Abyss.FullData): string {
|
||||
`;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 原始数据转table数据
|
||||
* @since Beta v0.6.1
|
||||
* @param {TGApp.Sqlite.Abyss.TableRaw} data - 原始数据
|
||||
* @returns {TGApp.Sqlite.Abyss.TableData}
|
||||
*/
|
||||
function raw2Data(data: TGApp.Sqlite.Abyss.TableRaw): TGApp.Sqlite.Abyss.TableData {
|
||||
return {
|
||||
uid: data.uid,
|
||||
id: data.id,
|
||||
startTime: data.startTime,
|
||||
endTime: data.endTime,
|
||||
totalBattleTimes: data.totalBattleTimes,
|
||||
totalWinTimes: data.totalWinTimes,
|
||||
maxFloor: data.maxFloor,
|
||||
totalStar: data.totalStar,
|
||||
isUnlock: data.isUnlock,
|
||||
revealRank: JSON.parse(data.revealRank),
|
||||
defeatRank: JSON.parse(data.defeatRank),
|
||||
damageRank: JSON.parse(data.damageRank),
|
||||
takeDamageRank: JSON.parse(data.takeDamageRank),
|
||||
normalSkillRank: JSON.parse(data.normalSkillRank),
|
||||
energySkillRank: JSON.parse(data.energySkillRank),
|
||||
floors: JSON.parse(data.floors),
|
||||
skippedFloor: data.skippedFloor,
|
||||
updated: data.updated,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 获取所有有数据的UID
|
||||
* @since Beta v0.6.0
|
||||
@@ -110,21 +139,24 @@ async function getAllUid(): Promise<Array<string>> {
|
||||
|
||||
/**
|
||||
* @description 获取深渊数据
|
||||
* @since Beta v0.6.0
|
||||
* @since Beta v0.6.3
|
||||
* @param {string} uid - 游戏UID
|
||||
* @returns {Promise<TGApp.Sqlite.Abyss.SingleTable[]>}
|
||||
* @returns {Promise<TGApp.Sqlite.Abyss.TableRaw[]>}
|
||||
*/
|
||||
async function getAbyss(uid?: string): Promise<TGApp.Sqlite.Abyss.SingleTable[]> {
|
||||
async function getAbyss(uid?: string): Promise<TGApp.Sqlite.Abyss.TableData[]> {
|
||||
const db = await TGSqlite.getDB();
|
||||
let res: TGApp.Sqlite.Abyss.TableRaw[];
|
||||
if (uid === undefined) {
|
||||
return await db.select<TGApp.Sqlite.Abyss.SingleTable[]>(
|
||||
res = await db.select<TGApp.Sqlite.Abyss.TableRaw[]>(
|
||||
"SELECT * FROM SpiralAbyss order by id DESC;",
|
||||
);
|
||||
} else {
|
||||
res = await db.select<TGApp.Sqlite.Abyss.TableRaw[]>(
|
||||
"SELECT * FROM SpiralAbyss WHERE uid = ? order by id DESC;",
|
||||
[uid],
|
||||
);
|
||||
}
|
||||
return await db.select<TGApp.Sqlite.Abyss.SingleTable[]>(
|
||||
"SELECT * FROM SpiralAbyss WHERE uid = ? order by id DESC;",
|
||||
[uid],
|
||||
);
|
||||
return res.map((i) => raw2Data(i));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -175,7 +207,7 @@ async function restoreAbyss(dir: string): Promise<boolean> {
|
||||
const filePath = `${dir}${path.sep()}abyss.json`;
|
||||
if (!(await exists(filePath))) return false;
|
||||
try {
|
||||
const data: TGApp.Sqlite.Abyss.SingleTable[] = JSON.parse(await readTextFile(filePath));
|
||||
const data: TGApp.Sqlite.Abyss.TableRaw[] = JSON.parse(await readTextFile(filePath));
|
||||
const db = await TGSqlite.getDB();
|
||||
for (const abyss of data) {
|
||||
await db.execute(getRestoreSql(abyss));
|
||||
|
||||
@@ -71,7 +71,7 @@ async function getAllUid(): Promise<Array<string>> {
|
||||
* @description 获取剧诗数据
|
||||
* @since Beta v0.6.3
|
||||
* @param {string} uid - 游戏UID
|
||||
* @returns {Promise<TGApp.Sqlite.Abyss.SingleTable[]>}
|
||||
* @returns {Promise<TGApp.Sqlite.Abyss.TableRaw[]>}
|
||||
*/
|
||||
async function getCombat(uid?: string): Promise<TGApp.Sqlite.Combat.SingleTable[]> {
|
||||
const db = await TGSqlite.getDB();
|
||||
|
||||
Reference in New Issue
Block a user