mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2025-12-12 09:18:14 +08:00
🌱 重构胡桃请求,增加幻想真境剧诗请求
This commit is contained in:
@@ -270,7 +270,7 @@ async function uploadAbyss(): Promise<void> {
|
|||||||
loadingTitle.value = "正在转换角色数据";
|
loadingTitle.value = "正在转换角色数据";
|
||||||
transAbyss.Avatars = Hutao.Abyss.utils.transAvatars(roles);
|
transAbyss.Avatars = Hutao.Abyss.utils.transAvatars(roles);
|
||||||
loadingTitle.value = "正在上传深渊数据";
|
loadingTitle.value = "正在上传深渊数据";
|
||||||
const res = await Hutao.Abyss.postData(transAbyss);
|
const res = await Hutao.Abyss.upload(transAbyss);
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
if (res.retcode === 0) {
|
if (res.retcode === 0) {
|
||||||
showSnackbar({ text: res.message ?? "上传深渊数据成功" });
|
showSnackbar({ text: res.message ?? "上传深渊数据成功" });
|
||||||
|
|||||||
@@ -102,8 +102,8 @@ onMounted(async () => {
|
|||||||
loading.value = true;
|
loading.value = true;
|
||||||
loadT.value = "正在获取深渊概览";
|
loadT.value = "正在获取深渊概览";
|
||||||
overview.value = {
|
overview.value = {
|
||||||
cur: await Hutao.Abyss.getOverview(),
|
cur: await Hutao.Abyss.overview(),
|
||||||
last: await Hutao.Abyss.getOverview(true),
|
last: await Hutao.Abyss.overview(true),
|
||||||
};
|
};
|
||||||
loadT.value = "正在获取深渊数据";
|
loadT.value = "正在获取深渊数据";
|
||||||
const useData = <AbyssDataItem<TGApp.Plugins.Hutao.Abyss.AvatarUse[]>>await getData("use");
|
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) {
|
switch (type) {
|
||||||
case "use":
|
case "use":
|
||||||
return {
|
return {
|
||||||
cur: await Hutao.Abyss.avatar.getUseRate(),
|
cur: await Hutao.Abyss.avatar.use(),
|
||||||
last: await Hutao.Abyss.avatar.getUseRate(true),
|
last: await Hutao.Abyss.avatar.use(true),
|
||||||
};
|
};
|
||||||
case "up":
|
case "up":
|
||||||
return {
|
return {
|
||||||
cur: await Hutao.Abyss.avatar.getUpRate(),
|
cur: await Hutao.Abyss.avatar.up(),
|
||||||
last: await Hutao.Abyss.avatar.getUpRate(true),
|
last: await Hutao.Abyss.avatar.up(true),
|
||||||
};
|
};
|
||||||
case "team":
|
case "team":
|
||||||
return await Hutao.Abyss.getTeamCollect();
|
return await Hutao.Abyss.team();
|
||||||
case "hold":
|
case "hold":
|
||||||
return {
|
return {
|
||||||
cur: await Hutao.Abyss.avatar.getHoldRate(),
|
cur: await Hutao.Abyss.avatar.hold(),
|
||||||
last: await Hutao.Abyss.avatar.getHoldRate(true),
|
last: await Hutao.Abyss.avatar.hold(true),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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`;
|
|
||||||
@@ -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;
|
|
||||||
@@ -4,31 +4,40 @@
|
|||||||
* @since Beta v0.6.2
|
* @since Beta v0.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import getAvatarCollect from "./request/getAvatarCollect.js";
|
import {
|
||||||
import getAvatarHoldRate from "./request/getAvatarHoldRate.js";
|
getAbyssOverview,
|
||||||
import getAvatarUpRate from "./request/getAvatarUpRate.js";
|
getAvatarCollect,
|
||||||
import getAvatarUseRate from "./request/getAvatarUseRate.js";
|
getAvatarHoldRate,
|
||||||
import getOverview from "./request/getOverview.js";
|
getAvatarUpRate,
|
||||||
import getTeamCollect from "./request/getTeamCollect.js";
|
getAvatarUseRate,
|
||||||
import uploadData from "./request/uploadData.js";
|
getTeamCollect,
|
||||||
import { transAvatars, transLocal } from "./utils/transLocal.js";
|
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 = {
|
const Hutao = {
|
||||||
Abyss: {
|
Abyss: {
|
||||||
avatar: {
|
avatar: {
|
||||||
getCollect: getAvatarCollect,
|
collect: getAvatarCollect,
|
||||||
getHoldRate: getAvatarHoldRate,
|
hold: getAvatarHoldRate,
|
||||||
getUpRate: getAvatarUpRate,
|
up: getAvatarUpRate,
|
||||||
getUseRate: getAvatarUseRate,
|
use: getAvatarUseRate,
|
||||||
},
|
},
|
||||||
getOverview,
|
overview: getAbyssOverview,
|
||||||
getTeamCollect,
|
team: getTeamCollect,
|
||||||
postData: uploadData,
|
upload: uploadAbyssData,
|
||||||
utils: {
|
utils: {
|
||||||
transData: transLocal,
|
transData: transAbyssLocal,
|
||||||
transAvatars,
|
transAvatars: transAbyssAvatars,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Combat: {
|
||||||
|
upload: uploadCombatData,
|
||||||
|
data: getCombatStatistic,
|
||||||
|
trans: transCombatLocal,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Hutao;
|
export default Hutao;
|
||||||
|
|||||||
128
src/plugins/Hutao/request/abyssReq.ts
Normal file
128
src/plugins/Hutao/request/abyssReq.ts
Normal 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" },
|
||||||
|
});
|
||||||
|
}
|
||||||
42
src/plugins/Hutao/request/combatReq.ts
Normal file
42
src/plugins/Hutao/request/combatReq.ts
Normal 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" },
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -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;
|
|
||||||
@@ -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;
|
|
||||||
@@ -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;
|
|
||||||
@@ -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;
|
|
||||||
@@ -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;
|
|
||||||
@@ -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;
|
|
||||||
@@ -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;
|
|
||||||
72
src/plugins/Hutao/types/Abyss.d.ts
vendored
72
src/plugins/Hutao/types/Abyss.d.ts
vendored
@@ -199,16 +199,12 @@ declare namespace TGApp.Plugins.Hutao.Abyss {
|
|||||||
* @since Alpha v0.2.1
|
* @since Alpha v0.2.1
|
||||||
* @interface AvatarUp
|
* @interface AvatarUp
|
||||||
* @property {number} Floor - 楼层
|
* @property {number} Floor - 楼层
|
||||||
* @property {number} Ranks[].Item - 角色ID
|
* @property {Array<TGApp.Plugins.Hutao.Base.Rate>} Ranks - 角色上场率
|
||||||
* @property {number} Ranks[].Rate - 上场率
|
|
||||||
* @return AvatarUp
|
* @return AvatarUp
|
||||||
*/
|
*/
|
||||||
interface AvatarUp {
|
interface AvatarUp {
|
||||||
Floor: number;
|
Floor: number;
|
||||||
Ranks: Array<{
|
Ranks: Array<TGApp.Plugins.Hutao.Base.Rate>;
|
||||||
Item: number;
|
|
||||||
Rate: number;
|
|
||||||
}>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -229,16 +225,12 @@ declare namespace TGApp.Plugins.Hutao.Abyss {
|
|||||||
* @since Alpha v0.2.1
|
* @since Alpha v0.2.1
|
||||||
* @interface AvatarUse
|
* @interface AvatarUse
|
||||||
* @property {number} Floor - 楼层
|
* @property {number} Floor - 楼层
|
||||||
* @property {number} Ranks[].Item - 角色ID
|
* @property {Array<TGApp.Plugins.Hutao.Base.Rate>} Ranks 角色使用率
|
||||||
* @property {number} Ranks[].Rate - 使用率
|
|
||||||
* @return AvatarUse
|
* @return AvatarUse
|
||||||
*/
|
*/
|
||||||
interface AvatarUse {
|
interface AvatarUse {
|
||||||
Floor: number;
|
Floor: number;
|
||||||
Ranks: Array<{
|
Ranks: Array<TGApp.Plugins.Hutao.Base.Rate>;
|
||||||
Item: number;
|
|
||||||
Rate: number;
|
|
||||||
}>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -259,17 +251,13 @@ declare namespace TGApp.Plugins.Hutao.Abyss {
|
|||||||
* @since Alpha v0.2.1
|
* @since Alpha v0.2.1
|
||||||
* @interface AvatarHold
|
* @interface AvatarHold
|
||||||
* @property {number} HoldingRate - 持有率
|
* @property {number} HoldingRate - 持有率
|
||||||
* @property {number} Constellations[].Item - 命座ID
|
* @property {Array<TGApp.Plugins.Hutao.Base.Rate>} Constellations - 持有率
|
||||||
* @property {number} Constellations[].Rate - 持有率
|
|
||||||
* @property {number} AvatarId - 角色ID
|
* @property {number} AvatarId - 角色ID
|
||||||
* @return AvatarHold
|
* @return AvatarHold
|
||||||
*/
|
*/
|
||||||
interface AvatarHold {
|
interface AvatarHold {
|
||||||
HoldingRate: number;
|
HoldingRate: number;
|
||||||
Constellations: Array<{
|
Constellations: Array<TGApp.Plugins.Hutao.Base.Rate>;
|
||||||
Item: number;
|
|
||||||
Rate: number;
|
|
||||||
}>;
|
|
||||||
AvatarId: number;
|
AvatarId: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -291,28 +279,16 @@ declare namespace TGApp.Plugins.Hutao.Abyss {
|
|||||||
* @since Alpha v0.2.1
|
* @since Alpha v0.2.1
|
||||||
* @interface AvatarCollocation
|
* @interface AvatarCollocation
|
||||||
* @property {number} AvatarId - 角色ID
|
* @property {number} AvatarId - 角色ID
|
||||||
* @property {number} Avatars[].Item - 角色ID
|
* @property {Array<TGApp.Plugins.Hutao.Base.Rate>} Avatars - 角色搭配率
|
||||||
* @property {number} Avatars[].Rate - 角色搭配率
|
* @property {Array<TGApp.Plugins.Hutao.Base.Rate<string>>} Reliquaries - 圣遗物套装搭配率
|
||||||
* @property {string} Reliquaries[].Item - 圣遗物套装ID // id-num,id-num
|
* @property {Array<TGApp.Plugins.Hutao.Base.Rate>} Weapons - 武器搭配率
|
||||||
* @property {number} Reliquaries[].Rate - 圣遗物套装搭配率
|
|
||||||
* @property {number} Weapons[].Item - 武器ID
|
|
||||||
* @property {number} Weapons[].Rate - 武器搭配率
|
|
||||||
* @return AvatarCollocation
|
* @return AvatarCollocation
|
||||||
*/
|
*/
|
||||||
interface AvatarCollocation {
|
interface AvatarCollocation {
|
||||||
AvatarId: number;
|
AvatarId: number;
|
||||||
Avatars: Array<{
|
Avatars: Array<TGApp.Plugins.Hutao.Base.Rate>;
|
||||||
Item: number;
|
Reliquaries: Array<TGApp.Plugins.Hutao.Base.Rate<string>>;
|
||||||
Rate: number;
|
Weapons: Array<TGApp.Plugins.Hutao.Base.Rate>;
|
||||||
}>;
|
|
||||||
Reliquaries: Array<{
|
|
||||||
Item: string;
|
|
||||||
Rate: number;
|
|
||||||
}>;
|
|
||||||
Weapons: Array<{
|
|
||||||
Item: number;
|
|
||||||
Rate: number;
|
|
||||||
}>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -332,16 +308,12 @@ declare namespace TGApp.Plugins.Hutao.Abyss {
|
|||||||
* @since Alpha v0.2.1
|
* @since Alpha v0.2.1
|
||||||
* @interface WeaponCollocation
|
* @interface WeaponCollocation
|
||||||
* @property {number} WeaponId - 武器ID
|
* @property {number} WeaponId - 武器ID
|
||||||
* @property {number} Avatars[].Item - 角色ID
|
* @property {Array<TGApp.Plugins.Hutao.Base.Rate>} Avatars - 角色搭配率
|
||||||
* @property {number} Avatars[].Rate - 角色搭配率
|
|
||||||
* @return WeaponCollocation
|
* @return WeaponCollocation
|
||||||
*/
|
*/
|
||||||
interface WeaponCollocation {
|
interface WeaponCollocation {
|
||||||
WeaponId: number;
|
WeaponId: number;
|
||||||
Avatars: Array<{
|
Avatars: Array<TGApp.Plugins.Hutao.Base.Rate>;
|
||||||
Item: number;
|
|
||||||
Rate: number;
|
|
||||||
}>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -362,21 +334,13 @@ declare namespace TGApp.Plugins.Hutao.Abyss {
|
|||||||
* @since Alpha v0.2.1
|
* @since Alpha v0.2.1
|
||||||
* @interface TeamCombination
|
* @interface TeamCombination
|
||||||
* @property {number} Floor - 楼层
|
* @property {number} Floor - 楼层
|
||||||
* @property {string} Up[].Item - 角色ID // id,id,id,id
|
* @property {Array<TGApp.Plugins.Hutao.Base.Rate<string>>} Up - 统计次数
|
||||||
* @property {number} Up[].Rate - 统计次数
|
* @property {Array<TGApp.Plugins.Hutao.Base.Rate<string>>} Down - 统计次数
|
||||||
* @property {string} Down[].Item - 角色ID // id,id,id,id
|
|
||||||
* @property {number} Down[].Rate - 统计次数
|
|
||||||
* @return TeamCombination
|
* @return TeamCombination
|
||||||
*/
|
*/
|
||||||
interface TeamCombination {
|
interface TeamCombination {
|
||||||
Floor: number;
|
Floor: number;
|
||||||
Up: Array<{
|
Up: Array<TGApp.Plugins.Hutao.Base.Rate<string>>;
|
||||||
Item: string;
|
Down: Array<TGApp.Plugins.Hutao.Base.Rate<string>>;
|
||||||
Rate: number;
|
|
||||||
}>;
|
|
||||||
Down: Array<{
|
|
||||||
Item: string;
|
|
||||||
Rate: number;
|
|
||||||
}>;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
21
src/plugins/Hutao/types/Base.d.ts
vendored
21
src/plugins/Hutao/types/Base.d.ts
vendored
@@ -1,15 +1,9 @@
|
|||||||
/**
|
/**
|
||||||
* @file src/plugins/Hutao/types/Base.d.ts
|
* @file src/plugins/Hutao/types/Base.d.ts
|
||||||
* @description Hutao 插件基础类型定义文件
|
* @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 {
|
declare namespace TGApp.Plugins.Hutao.Base {
|
||||||
/**
|
/**
|
||||||
* @description Hutao Response 统一接口
|
* @description Hutao Response 统一接口
|
||||||
@@ -26,6 +20,19 @@ declare namespace TGApp.Plugins.Hutao.Base {
|
|||||||
data?: any;
|
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 武器类型枚举,英文-中文对照
|
* @description 武器类型枚举,英文-中文对照
|
||||||
* @since Beta v0.3.8
|
* @since Beta v0.3.8
|
||||||
|
|||||||
60
src/plugins/Hutao/types/Combat.d.ts
vendored
Normal file
60
src/plugins/Hutao/types/Combat.d.ts
vendored
Normal 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>;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
/**
|
/**
|
||||||
* @file plugins/Hutao/utils/transLocal.ts
|
* @file plugins/Hutao/utils/abyssUtil.ts
|
||||||
* @description 将本地数据转为上传用的数据
|
* @description 将本地数据转为上传用的数据
|
||||||
* @since Beta v0.5.5
|
* @since Beta v0.6.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 将本地数据转为上传用的数据
|
* @description 将本地数据转为上传用的数据
|
||||||
* @since Beta v0.3.4
|
* @since Beta v0.6.2
|
||||||
* @param {TGApp.Sqlite.Abyss.SingleTable} data 本地数据
|
* @param {TGApp.Sqlite.Abyss.SingleTable} data 本地数据
|
||||||
* @returns {TGApp.Plugins.Hutao.Abyss.RecordUpload} 上传用的数据
|
* @returns {TGApp.Plugins.Hutao.Abyss.RecordUpload} 上传用的数据
|
||||||
*/
|
*/
|
||||||
export function transLocal(
|
export function transAbyssLocal(
|
||||||
data: TGApp.Sqlite.Abyss.SingleTable,
|
data: TGApp.Sqlite.Abyss.SingleTable,
|
||||||
): TGApp.Plugins.Hutao.Abyss.RecordUpload {
|
): TGApp.Plugins.Hutao.Abyss.RecordUpload {
|
||||||
return {
|
return {
|
||||||
Uid: data.uid,
|
Uid: data.uid,
|
||||||
Identity: "TeyvatGuide",
|
Identity: "TeyvatGuide",
|
||||||
SpiralAbyss: transAbyss(data),
|
SpiralAbyss: transAbyssData(data),
|
||||||
Avatars: [],
|
Avatars: [],
|
||||||
ReservedUserName: "",
|
ReservedUserName: "",
|
||||||
};
|
};
|
||||||
@@ -28,7 +28,9 @@ export function transLocal(
|
|||||||
* @param {TGApp.Sqlite.Abyss.SingleTable} data 本地数据
|
* @param {TGApp.Sqlite.Abyss.SingleTable} data 本地数据
|
||||||
* @returns {TGApp.Plugins.Hutao.Abyss.RecordData} 上传用的数据
|
* @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 defeat: TGApp.Sqlite.Abyss.Character = JSON.parse(data.defeatRank)[0];
|
||||||
const energySkill: TGApp.Sqlite.Abyss.Character = JSON.parse(data.energySkillRank)[0];
|
const energySkill: TGApp.Sqlite.Abyss.Character = JSON.parse(data.energySkillRank)[0];
|
||||||
const normalSkill: TGApp.Sqlite.Abyss.Character = JSON.parse(data.normalSkillRank)[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 角色数据
|
* @param {TGApp.Sqlite.Character.UserRole[]} avatars 角色数据
|
||||||
* @returns {TGApp.Plugins.Hutao.Abyss.Avatar[]} 上传用的数据
|
* @returns {TGApp.Plugins.Hutao.Abyss.Avatar[]} 上传用的数据
|
||||||
*/
|
*/
|
||||||
export function transAvatars(
|
export function transAbyssAvatars(
|
||||||
avatars: TGApp.Sqlite.Character.UserRole[],
|
avatars: TGApp.Sqlite.Character.UserRole[],
|
||||||
): TGApp.Plugins.Hutao.Abyss.Avatar[] {
|
): TGApp.Plugins.Hutao.Abyss.Avatar[] {
|
||||||
return avatars.map((avatar) => {
|
return avatars.map((avatar) => {
|
||||||
27
src/plugins/Hutao/utils/combatUtil.ts
Normal file
27
src/plugins/Hutao/utils/combatUtil.ts
Normal 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,
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user