🌱 重构胡桃请求,增加幻想真境剧诗请求

This commit is contained in:
目棃
2024-11-11 11:46:34 +08:00
parent 6b8cbe0e57
commit a2ce468e2f
19 changed files with 334 additions and 334 deletions

View File

@@ -270,7 +270,7 @@ async function uploadAbyss(): Promise<void> {
loadingTitle.value = "正在转换角色数据";
transAbyss.Avatars = Hutao.Abyss.utils.transAvatars(roles);
loadingTitle.value = "正在上传深渊数据";
const res = await Hutao.Abyss.postData(transAbyss);
const res = await Hutao.Abyss.upload(transAbyss);
loading.value = false;
if (res.retcode === 0) {
showSnackbar({ text: res.message ?? "上传深渊数据成功" });

View File

@@ -102,8 +102,8 @@ onMounted(async () => {
loading.value = true;
loadT.value = "正在获取深渊概览";
overview.value = {
cur: await Hutao.Abyss.getOverview(),
last: await Hutao.Abyss.getOverview(true),
cur: await Hutao.Abyss.overview(),
last: await Hutao.Abyss.overview(true),
};
loadT.value = "正在获取深渊数据";
const useData = <AbyssDataItem<TGApp.Plugins.Hutao.Abyss.AvatarUse[]>>await getData("use");
@@ -142,20 +142,20 @@ async function getData(type: AbyssTab): Promise<AbyssDataItemType<AbyssTab>> {
switch (type) {
case "use":
return {
cur: await Hutao.Abyss.avatar.getUseRate(),
last: await Hutao.Abyss.avatar.getUseRate(true),
cur: await Hutao.Abyss.avatar.use(),
last: await Hutao.Abyss.avatar.use(true),
};
case "up":
return {
cur: await Hutao.Abyss.avatar.getUpRate(),
last: await Hutao.Abyss.avatar.getUpRate(true),
cur: await Hutao.Abyss.avatar.up(),
last: await Hutao.Abyss.avatar.up(true),
};
case "team":
return await Hutao.Abyss.getTeamCollect();
return await Hutao.Abyss.team();
case "hold":
return {
cur: await Hutao.Abyss.avatar.getHoldRate(),
last: await Hutao.Abyss.avatar.getHoldRate(true),
cur: await Hutao.Abyss.avatar.hold(),
last: await Hutao.Abyss.avatar.hold(true),
};
}
}

View File

@@ -1,17 +0,0 @@
/**
* @file plugins/Hutao/api/abyss.ts
* @description Hutao API 深渊相关
* @since Beta v0.6.2
*/
const BaseUrl = "https://homa.snapgenshin.com/";
const AbyssUrl = `${BaseUrl}Statistics/`;
export const DataUploadApi = `${BaseUrl}Record/Upload?returningRank=false`;
export const OverviewApi = `${AbyssUrl}Overview`;
export const AvatarUpRateApi = `${AbyssUrl}Avatar/AttendanceRate`;
export const AvatarUseRateApi = `${AbyssUrl}Avatar/UtilizationRate`;
export const AvatarHoldRateApi = `${AbyssUrl}Avatar/HoldingRate`;
export const AvatarCollocationApi = `${AbyssUrl}Avatar/AvatarCollocation`;
export const WeaponCollocationApi = `${AbyssUrl}Weapon/WeaponCollocation`;
export const TeamCombinationApi = `${AbyssUrl}Team/Combination`;

View File

@@ -1,33 +0,0 @@
/**
* @file plugins/Hutao/api/index.ts
* @description Hutao API
* @since Alpha v0.2.0
*/
import {
AvatarCollocationApi,
AvatarHoldRateApi,
AvatarUpRateApi,
AvatarUseRateApi,
DataUploadApi,
OverviewApi,
TeamCombinationApi,
WeaponCollocationApi,
} from "./abyss.js";
const HutaoApi = {
Abyss: {
upload: DataUploadApi,
overview: OverviewApi,
avatar: {
upRate: AvatarUpRateApi,
useRate: AvatarUseRateApi,
holdRate: AvatarHoldRateApi,
collect: AvatarCollocationApi,
},
weapon: WeaponCollocationApi,
team: TeamCombinationApi,
},
};
export default HutaoApi;

View File

@@ -4,31 +4,40 @@
* @since Beta v0.6.2
*/
import getAvatarCollect from "./request/getAvatarCollect.js";
import getAvatarHoldRate from "./request/getAvatarHoldRate.js";
import getAvatarUpRate from "./request/getAvatarUpRate.js";
import getAvatarUseRate from "./request/getAvatarUseRate.js";
import getOverview from "./request/getOverview.js";
import getTeamCollect from "./request/getTeamCollect.js";
import uploadData from "./request/uploadData.js";
import { transAvatars, transLocal } from "./utils/transLocal.js";
import {
getAbyssOverview,
getAvatarCollect,
getAvatarHoldRate,
getAvatarUpRate,
getAvatarUseRate,
getTeamCollect,
uploadAbyssData,
} from "./request/abyssReq.js";
import { getCombatStatistic, uploadCombatData } from "./request/combatReq.js";
import { transAbyssAvatars, transAbyssLocal } from "./utils/abyssUtil.js";
import { transCombatLocal } from "./utils/combatUtil.js";
const Hutao = {
Abyss: {
avatar: {
getCollect: getAvatarCollect,
getHoldRate: getAvatarHoldRate,
getUpRate: getAvatarUpRate,
getUseRate: getAvatarUseRate,
collect: getAvatarCollect,
hold: getAvatarHoldRate,
up: getAvatarUpRate,
use: getAvatarUseRate,
},
getOverview,
getTeamCollect,
postData: uploadData,
overview: getAbyssOverview,
team: getTeamCollect,
upload: uploadAbyssData,
utils: {
transData: transLocal,
transAvatars,
transData: transAbyssLocal,
transAvatars: transAbyssAvatars,
},
},
Combat: {
upload: uploadCombatData,
data: getCombatStatistic,
trans: transCombatLocal,
},
};
export default Hutao;

View File

@@ -0,0 +1,128 @@
/**
* @file plugins/Hutao/request/abyssReq.ts
* @description 深渊相关请求
* @since Beta v0.6.2
*/
import TGHttp from "../../../utils/TGHttp.js";
const AbyssUrl = `https://homa.snapgenshin.com/Statistics/`;
/**
* @description 获取深渊概览数据
* @since Beta v0.6.2
* @param {boolean} isLast 是否获取上期数据
* @return {Promise<TGApp.Plugins.Hutao.Abyss.OverviewData>}
*/
export async function getAbyssOverview(
isLast: boolean = false,
): Promise<TGApp.Plugins.Hutao.Abyss.OverviewData> {
const url = `${AbyssUrl}Overview`;
const resp = await TGHttp<TGApp.Plugins.Hutao.Abyss.OverviewResponse>(url, {
method: "GET",
query: { Last: isLast },
});
return resp.data;
}
/**
* @description 获取角色搭配数据
* @since Beta v0.6.2
* @param {boolean} isLast 是否获取上期数据
* @return {Promise<TGApp.Plugins.Hutao.Abyss.AvatarCollocation[]>}
*/
export async function getAvatarCollect(
isLast: boolean = false,
): Promise<TGApp.Plugins.Hutao.Abyss.AvatarCollocation[]> {
const url = `${AbyssUrl}Avatar/AvatarCollocation`;
const resp = await TGHttp<TGApp.Plugins.Hutao.Abyss.AvatarCollocationResponse>(url, {
method: "GET",
query: { Last: isLast },
});
return resp.data;
}
/**
* @description 获取角色持有率数据
* @since Beta v0.6.2
* @param {boolean} isLast 是否获取上期数据
* @returns {Promise<TGApp.Plugins.Hutao.Abyss.AvatarHold[]>}
*/
export async function getAvatarHoldRate(
isLast: boolean = false,
): Promise<TGApp.Plugins.Hutao.Abyss.AvatarHold[]> {
const url = `${AbyssUrl}Avatar/HoldingRate`;
const resp = await TGHttp<TGApp.Plugins.Hutao.Abyss.AvatarHoldResponse>(url, {
method: "GET",
query: { Last: isLast },
});
return resp.data;
}
/**
* @description 获取角色上场率数据
* @since Beta v0.6.2
* @param {boolean} isLast 是否获取上期数据
* @return {Promise<TGApp.Plugins.Hutao.Abyss.AvatarUp[]>}
*/
export async function getAvatarUpRate(
isLast: boolean = false,
): Promise<TGApp.Plugins.Hutao.Abyss.AvatarUp[]> {
const url = `${AbyssUrl}Avatar/AttendanceRate`;
const resp = await TGHttp<TGApp.Plugins.Hutao.Abyss.AvatarUpResponse>(url, {
method: "GET",
query: { Last: isLast },
});
return resp.data;
}
/**
* @description 获取角色使用率
* @since Beta v0.6.2
* @param {boolean} isLast 是否获取上期数据
* @return {Promise<TGApp.Plugins.Hutao.Abyss.AvatarUse[]>}
*/
export async function getAvatarUseRate(
isLast: boolean = false,
): Promise<TGApp.Plugins.Hutao.Abyss.AvatarUse[]> {
const url = `${AbyssUrl}Avatar/UtilizationRate`;
const resp = await TGHttp<TGApp.Plugins.Hutao.Abyss.AvatarUseResponse>(url, {
method: "GET",
query: { Last: isLast },
});
return resp.data;
}
/**
* @description 获取队伍搭配数据
* @since Beta v0.6.2
* @param {boolean} isLast 是否获取上期数据
* @return {Promise<TGApp.Plugins.Hutao.Abyss.TeamCombination[]>}
*/
export async function getTeamCollect(
isLast: boolean = false,
): Promise<TGApp.Plugins.Hutao.Abyss.TeamCombination[]> {
const url = `${AbyssUrl}Team/Combination`;
const resp = await TGHttp<TGApp.Plugins.Hutao.Abyss.TeamCombinationResponse>(url, {
method: "GET",
query: { Last: isLast },
});
return resp.data;
}
/**
* @description 上传用户数据
* @since Beta v0.5.0
* @param {TGApp.Plugins.Hutao.Abyss.RecordUpload} data 用户数据
* @returns {Promise<TGApp.Plugins.Hutao.Abyss.UploadResponse>} 上传结果
*/
export async function uploadAbyssData(
data: TGApp.Plugins.Hutao.Abyss.RecordUpload,
): Promise<TGApp.Plugins.Hutao.Abyss.UploadResponse> {
const url = "https://homa.snapgenshin.com/Record/Upload";
return await TGHttp<TGApp.Plugins.Hutao.Abyss.UploadResponse>(url, {
method: "POST",
body: JSON.stringify(data),
query: { returningRank: false },
headers: { "Content-Type": "application/json" },
});
}

View File

@@ -0,0 +1,42 @@
/**
* @file plugins/Hutao/request/combatReq.ts
* @description 幻想真境剧诗相关请求
* @since Beta v0.6.2
*/
import TGHttp from "../../../utils/TGHttp.js";
const CombatUrl = "https://homa.snapgenshin.com/RoleCombat/";
/**
* @description 获取数据
* @since Beta v0.6.2
* @param {boolean} isLast
* @return {Promise<TGApp.Plugins.Hutao.Combat.Data>}
*/
export async function getCombatStatistic(
isLast: boolean = false,
): Promise<TGApp.Plugins.Hutao.Combat.Data> {
const url = `${CombatUrl}Statistics`;
const resp = await TGHttp<TGApp.Plugins.Hutao.Combat.Response>(url, {
method: "GET",
query: { Last: isLast },
});
return resp.data;
}
/**
* @description 上传数据
* @since Beta v0.6.2
* @param {TGApp.Plugins.Hutao.Combat.UploadData} data
* @returns {Promise<TGApp.Plugins.Hutao.Combat.UploadResponse>}
*/
export async function uploadCombatData(
data: TGApp.Plugins.Hutao.Combat.UploadData,
): Promise<TGApp.Plugins.Hutao.Combat.UploadResponse> {
const url = `${CombatUrl}Upload`;
return await TGHttp<TGApp.Plugins.Hutao.Combat.UploadResponse>(url, {
method: "POST",
body: JSON.stringify(data),
headers: { "Content-Type": "application/json" },
});
}

View File

@@ -1,27 +0,0 @@
/**
* @file plugins/Hutao/request/getAvatarCollect.ts
* @description 获取角色搭配数据
* @since Beta v0.6.2
*/
import TGHttp from "../../../utils/TGHttp.js";
import HutaoApi from "../api/index.js";
/**
* @description 获取角色搭配数据
* @since Beta v0.6.2
* @param {boolean} isLast 是否获取上期数据
* @return {Promise<TGApp.Plugins.Hutao.Abyss.AvatarCollocation[]>}
*/
async function getAvatarCollect(
isLast: boolean = false,
): Promise<TGApp.Plugins.Hutao.Abyss.AvatarCollocation[]> {
const url = HutaoApi.Abyss.avatar.collect;
const resp = await TGHttp<TGApp.Plugins.Hutao.Abyss.AvatarCollocationResponse>(url, {
method: "GET",
query: { Last: isLast },
});
return resp.data;
}
export default getAvatarCollect;

View File

@@ -1,27 +0,0 @@
/**
* @file plugins/Hutao/request/getAvatarHoldRate.ts
* @description Hutao API 获取角色持有率数据请求方法
* @since Beta v0.6.2
*/
import TGHttp from "../../../utils/TGHttp.js";
import HutaoApi from "../api/index.js";
/**
* @description 获取角色持有率数据
* @since Beta v0.6.2
* @param {boolean} isLast 是否获取上期数据
* @returns {Promise<TGApp.Plugins.Hutao.Abyss.AvatarHold[]>}
*/
async function getAvatarHoldRate(
isLast: boolean = false,
): Promise<TGApp.Plugins.Hutao.Abyss.AvatarHold[]> {
const url = HutaoApi.Abyss.avatar.holdRate;
const resp = await TGHttp<TGApp.Plugins.Hutao.Abyss.AvatarHoldResponse>(url, {
method: "GET",
query: { Last: isLast },
});
return resp.data;
}
export default getAvatarHoldRate;

View File

@@ -1,27 +0,0 @@
/**
* @file plugins/Hutao/request/getAvatarUpRate.ts
* @description 获取角色上场率数据
* @since Beta v0.6.2
*/
import TGHttp from "../../../utils/TGHttp.js";
import HutaoApi from "../api/index.js";
/**
* @description 获取角色上场率数据
* @since Beta v0.6.2
* @param {boolean} isLast 是否获取上期数据
* @return {Promise<TGApp.Plugins.Hutao.Abyss.AvatarUp[]>}
*/
async function getAvatarUpRate(
isLast: boolean = false,
): Promise<TGApp.Plugins.Hutao.Abyss.AvatarUp[]> {
const url = HutaoApi.Abyss.avatar.upRate;
const resp = await TGHttp<TGApp.Plugins.Hutao.Abyss.AvatarUpResponse>(url, {
method: "GET",
query: { Last: isLast },
});
return resp.data;
}
export default getAvatarUpRate;

View File

@@ -1,27 +0,0 @@
/**
* @file plugins/Hutao/request/getAvatarUseRate.ts
* @description 获取角色使用率
* @since Beta v0.6.2
*/
import TGHttp from "../../../utils/TGHttp.js";
import HutaoApi from "../api/index.js";
/**
* @description 获取角色使用率
* @since Beta v0.6.2
* @param {boolean} isLast 是否获取上期数据
* @return {Promise<TGApp.Plugins.Hutao.Abyss.AvatarUse[]>}
*/
async function getAvatarUseRate(
isLast: boolean = false,
): Promise<TGApp.Plugins.Hutao.Abyss.AvatarUse[]> {
const url = HutaoApi.Abyss.avatar.useRate;
const resp = await TGHttp<TGApp.Plugins.Hutao.Abyss.AvatarUseResponse>(url, {
method: "GET",
query: { Last: isLast },
});
return resp.data;
}
export default getAvatarUseRate;

View File

@@ -1,27 +0,0 @@
/**
* @file plugins/Hutao/request/getOverview.ts
* @description 获取深渊概览数据
* @since Beta v0.6.2
*/
import TGHttp from "../../../utils/TGHttp.js";
import HutaoApi from "../api/index.js";
/**
* @description 获取深渊概览数据
* @since Beta v0.6.2
* @param {boolean} isLast 是否获取上期数据
* @return {Promise<TGApp.Plugins.Hutao.Abyss.OverviewData>}
*/
async function getOverview(
isLast: boolean = false,
): Promise<TGApp.Plugins.Hutao.Abyss.OverviewData> {
const url = HutaoApi.Abyss.overview;
const resp = await TGHttp<TGApp.Plugins.Hutao.Abyss.OverviewResponse>(url, {
method: "GET",
query: { Last: isLast },
});
return resp.data;
}
export default getOverview;

View File

@@ -1,27 +0,0 @@
/**
* @file plugins/Hutao/request/getTeamCollect.ts
* @description 获取队伍搭配数据
* @since Beta v0.6.2
*/
import TGHttp from "../../../utils/TGHttp.js";
import HutaoApi from "../api/index.js";
/**
* @description 获取队伍搭配数据
* @since Beta v0.6.2
* @param {boolean} isLast 是否获取上期数据
* @return {Promise<TGApp.Plugins.Hutao.Abyss.TeamCombination[]>}
*/
async function getTeamCollect(
isLast: boolean = false,
): Promise<TGApp.Plugins.Hutao.Abyss.TeamCombination[]> {
const url = HutaoApi.Abyss.team;
const resp = await TGHttp<TGApp.Plugins.Hutao.Abyss.TeamCombinationResponse>(url, {
method: "GET",
query: { Last: isLast },
});
return resp.data;
}
export default getTeamCollect;

View File

@@ -1,27 +0,0 @@
/**
* @file plugins/Hutao/request/uploadData.ts
* @description Hutao 数据上传请求函数集合
* @since Beta v0.5.0
*/
import TGHttp from "../../../utils/TGHttp.js";
import HutaoApi from "../api/index.js";
/**
* @description 上传用户数据
* @since Beta v0.5.0
* @param {TGApp.Plugins.Hutao.Abyss.RecordUpload} data 用户数据
* @returns {Promise<TGApp.Plugins.Hutao.Abyss.UploadResponse>} 上传结果
*/
async function uploadData(
data: TGApp.Plugins.Hutao.Abyss.RecordUpload,
): Promise<TGApp.Plugins.Hutao.Abyss.UploadResponse> {
const url = HutaoApi.Abyss.upload;
return await TGHttp<TGApp.Plugins.Hutao.Abyss.UploadResponse>(url, {
method: "POST",
body: JSON.stringify(data),
headers: { "Content-Type": "application/json" },
});
}
export default uploadData;

View File

@@ -199,16 +199,12 @@ declare namespace TGApp.Plugins.Hutao.Abyss {
* @since Alpha v0.2.1
* @interface AvatarUp
* @property {number} Floor - 楼层
* @property {number} Ranks[].Item - 角色ID
* @property {number} Ranks[].Rate - 上场率
* @property {Array<TGApp.Plugins.Hutao.Base.Rate>} Ranks - 角色上场率
* @return AvatarUp
*/
interface AvatarUp {
Floor: number;
Ranks: Array<{
Item: number;
Rate: number;
}>;
Ranks: Array<TGApp.Plugins.Hutao.Base.Rate>;
}
/**
@@ -229,16 +225,12 @@ declare namespace TGApp.Plugins.Hutao.Abyss {
* @since Alpha v0.2.1
* @interface AvatarUse
* @property {number} Floor - 楼层
* @property {number} Ranks[].Item - 角色ID
* @property {number} Ranks[].Rate - 使用率
* @property {Array<TGApp.Plugins.Hutao.Base.Rate>} Ranks 角色使用率
* @return AvatarUse
*/
interface AvatarUse {
Floor: number;
Ranks: Array<{
Item: number;
Rate: number;
}>;
Ranks: Array<TGApp.Plugins.Hutao.Base.Rate>;
}
/**
@@ -259,17 +251,13 @@ declare namespace TGApp.Plugins.Hutao.Abyss {
* @since Alpha v0.2.1
* @interface AvatarHold
* @property {number} HoldingRate - 持有率
* @property {number} Constellations[].Item - 命座ID
* @property {number} Constellations[].Rate - 持有率
* @property {Array<TGApp.Plugins.Hutao.Base.Rate>} Constellations - 持有率
* @property {number} AvatarId - 角色ID
* @return AvatarHold
*/
interface AvatarHold {
HoldingRate: number;
Constellations: Array<{
Item: number;
Rate: number;
}>;
Constellations: Array<TGApp.Plugins.Hutao.Base.Rate>;
AvatarId: number;
}
@@ -291,28 +279,16 @@ declare namespace TGApp.Plugins.Hutao.Abyss {
* @since Alpha v0.2.1
* @interface AvatarCollocation
* @property {number} AvatarId - 角色ID
* @property {number} Avatars[].Item - 角色ID
* @property {number} Avatars[].Rate - 角色搭配率
* @property {string} Reliquaries[].Item - 圣遗物套装ID // id-num,id-num
* @property {number} Reliquaries[].Rate - 圣遗物套装搭配率
* @property {number} Weapons[].Item - 武器ID
* @property {number} Weapons[].Rate - 武器搭配率
* @property {Array<TGApp.Plugins.Hutao.Base.Rate>} Avatars - 角色搭配率
* @property {Array<TGApp.Plugins.Hutao.Base.Rate<string>>} Reliquaries - 圣遗物套装搭配率
* @property {Array<TGApp.Plugins.Hutao.Base.Rate>} Weapons - 武器搭配率
* @return AvatarCollocation
*/
interface AvatarCollocation {
AvatarId: number;
Avatars: Array<{
Item: number;
Rate: number;
}>;
Reliquaries: Array<{
Item: string;
Rate: number;
}>;
Weapons: Array<{
Item: number;
Rate: number;
}>;
Avatars: Array<TGApp.Plugins.Hutao.Base.Rate>;
Reliquaries: Array<TGApp.Plugins.Hutao.Base.Rate<string>>;
Weapons: Array<TGApp.Plugins.Hutao.Base.Rate>;
}
/**
@@ -332,16 +308,12 @@ declare namespace TGApp.Plugins.Hutao.Abyss {
* @since Alpha v0.2.1
* @interface WeaponCollocation
* @property {number} WeaponId - 武器ID
* @property {number} Avatars[].Item - 角色ID
* @property {number} Avatars[].Rate - 角色搭配率
* @property {Array<TGApp.Plugins.Hutao.Base.Rate>} Avatars - 角色搭配率
* @return WeaponCollocation
*/
interface WeaponCollocation {
WeaponId: number;
Avatars: Array<{
Item: number;
Rate: number;
}>;
Avatars: Array<TGApp.Plugins.Hutao.Base.Rate>;
}
/**
@@ -362,21 +334,13 @@ declare namespace TGApp.Plugins.Hutao.Abyss {
* @since Alpha v0.2.1
* @interface TeamCombination
* @property {number} Floor - 楼层
* @property {string} Up[].Item - 角色ID // id,id,id,id
* @property {number} Up[].Rate - 统计次数
* @property {string} Down[].Item - 角色ID // id,id,id,id
* @property {number} Down[].Rate - 统计次数
* @property {Array<TGApp.Plugins.Hutao.Base.Rate<string>>} Up - 统计次数
* @property {Array<TGApp.Plugins.Hutao.Base.Rate<string>>} Down - 统计次数
* @return TeamCombination
*/
interface TeamCombination {
Floor: number;
Up: Array<{
Item: string;
Rate: number;
}>;
Down: Array<{
Item: string;
Rate: number;
}>;
Up: Array<TGApp.Plugins.Hutao.Base.Rate<string>>;
Down: Array<TGApp.Plugins.Hutao.Base.Rate<string>>;
}
}

View File

@@ -1,15 +1,9 @@
/**
* @file src/plugins/Hutao/types/Base.d.ts
* @description Hutao 插件基础类型定义文件
* @since Beta v0.3.8
* @since Beta v0.6.2
*/
/**
* @description Hutao 插件基础类型
* @since Beta v0.3.8
* @namespace Base
* @return Base
*/
declare namespace TGApp.Plugins.Hutao.Base {
/**
* @description Hutao Response 统一接口
@@ -26,6 +20,19 @@ declare namespace TGApp.Plugins.Hutao.Base {
data?: any;
}
/**
* @description 使用率
* @since Beta v0.6.2
* @interface Rate
* @property {number} Item id
* @property {number} Rate 使用率
* @return Rate
*/
interface Rate<T = number> {
Item: T;
Rate: number;
}
/**
* @description 武器类型枚举,英文-中文对照
* @since Beta v0.3.8

60
src/plugins/Hutao/types/Combat.d.ts vendored Normal file
View File

@@ -0,0 +1,60 @@
/**
* @file plugins/Hutao/types/Combat.d.ts
* @description 幻想真境剧诗
* @since Beta v0.6.2
*/
declare namespace TGApp.Plugins.Hutao.Combat {
/**
* @description 上传返回
* @since Beta v0.6.2
* @interface UploadResponse
* @extends TGApp.Plugins.Hutao.Base.Response
* @return UploadResponse
*/
type UploadResponse = TGApp.Plugins.Hutao.Base.Response;
/**
* @description 上传数据
* @since Beta v0.6.2
* @interface UploadData
* @property {number} Version
* @property {string} Uid
* @property {string} Identity
* @property {number[]} BackupAvatars
* @property {number} ScheduleId
* @return UploadData
*/
interface UploadData {
Version: number;
Uid: string;
Identity: string;
BackupAvatars: Array<number>;
ScheduleId: number;
}
/**
* @description 数据获取返回
* @since Beta v0.6.2
* @interface Response
* @extends TGApp.Plugins.Hutao.Base.Response
* @property {Data} data
* @return Response
*/
interface Response extends TGApp.Plugins.Hutao.Base.Response {
data: Data;
}
/**
* @description 数据
* @since Beta v0.6.2
* @interface Data
* @property {number} RecordTotal 总数
* @property {Array<TGApp.Plugins.Hutao.Base.Rate>} BackupAvatarRates 使用率
* @return Data
*/
interface Data {
RecordTotal: number;
BackupAvatarRates: Array<TGApp.Plugins.Hutao.Base.Rate>;
}
}

View File

@@ -1,22 +1,22 @@
/**
* @file plugins/Hutao/utils/transLocal.ts
* @file plugins/Hutao/utils/abyssUtil.ts
* @description
* @since Beta v0.5.5
* @since Beta v0.6.2
*/
/**
* @description
* @since Beta v0.3.4
* @since Beta v0.6.2
* @param {TGApp.Sqlite.Abyss.SingleTable} data
* @returns {TGApp.Plugins.Hutao.Abyss.RecordUpload}
*/
export function transLocal(
export function transAbyssLocal(
data: TGApp.Sqlite.Abyss.SingleTable,
): TGApp.Plugins.Hutao.Abyss.RecordUpload {
return {
Uid: data.uid,
Identity: "TeyvatGuide",
SpiralAbyss: transAbyss(data),
SpiralAbyss: transAbyssData(data),
Avatars: [],
ReservedUserName: "",
};
@@ -28,7 +28,9 @@ export function transLocal(
* @param {TGApp.Sqlite.Abyss.SingleTable} data
* @returns {TGApp.Plugins.Hutao.Abyss.RecordData}
*/
function transAbyss(data: TGApp.Sqlite.Abyss.SingleTable): 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];
@@ -105,7 +107,7 @@ function transLevel(data: TGApp.Sqlite.Abyss.Level): TGApp.Plugins.Hutao.Abyss.L
* @param {TGApp.Sqlite.Character.UserRole[]} avatars
* @returns {TGApp.Plugins.Hutao.Abyss.Avatar[]}
*/
export function transAvatars(
export function transAbyssAvatars(
avatars: TGApp.Sqlite.Character.UserRole[],
): TGApp.Plugins.Hutao.Abyss.Avatar[] {
return avatars.map((avatar) => {

View File

@@ -0,0 +1,27 @@
/**
* @file plugins/Hutao/utils/combatUtil.ts
* @description 将本地数据转为上传用的数据
* @since Beta v0.6.2
*/
/**
* @description 将本地数据转为上传用的数据
* @since Beta v0.6.2
* @param {number[]} avatars 角色
* @param {number} schedule 期数
* @param {number} uid UID
* @returns {TGApp.Plugins.Hutao.Combat.UploadData} 上传用的数据
*/
export function transCombatLocal(
avatars: number[],
schedule: number,
uid: string,
): TGApp.Plugins.Hutao.Combat.UploadData {
return {
Version: 1,
Uid: uid,
Identity: "TeyvatGuide",
BackupAvatars: avatars,
ScheduleId: schedule,
};
}