diff --git a/src/pages/User/Abyss.vue b/src/pages/User/Abyss.vue index 59cd140d..e12731c3 100644 --- a/src/pages/User/Abyss.vue +++ b/src/pages/User/Abyss.vue @@ -270,7 +270,7 @@ async function uploadAbyss(): Promise { 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 ?? "上传深渊数据成功" }); diff --git a/src/pages/WIKI/Abyss.vue b/src/pages/WIKI/Abyss.vue index 092c388b..f81d5f6f 100644 --- a/src/pages/WIKI/Abyss.vue +++ b/src/pages/WIKI/Abyss.vue @@ -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 = >await getData("use"); @@ -142,20 +142,20 @@ async function getData(type: AbyssTab): Promise> { 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), }; } } diff --git a/src/plugins/Hutao/api/abyss.ts b/src/plugins/Hutao/api/abyss.ts deleted file mode 100644 index 52172cfc..00000000 --- a/src/plugins/Hutao/api/abyss.ts +++ /dev/null @@ -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`; diff --git a/src/plugins/Hutao/api/index.ts b/src/plugins/Hutao/api/index.ts deleted file mode 100644 index b53eef82..00000000 --- a/src/plugins/Hutao/api/index.ts +++ /dev/null @@ -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; diff --git a/src/plugins/Hutao/index.ts b/src/plugins/Hutao/index.ts index 3b6cd031..5be4c643 100644 --- a/src/plugins/Hutao/index.ts +++ b/src/plugins/Hutao/index.ts @@ -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; diff --git a/src/plugins/Hutao/request/abyssReq.ts b/src/plugins/Hutao/request/abyssReq.ts new file mode 100644 index 00000000..0093c257 --- /dev/null +++ b/src/plugins/Hutao/request/abyssReq.ts @@ -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} + */ +export async function getAbyssOverview( + isLast: boolean = false, +): Promise { + const url = `${AbyssUrl}Overview`; + const resp = await TGHttp(url, { + method: "GET", + query: { Last: isLast }, + }); + return resp.data; +} + +/** + * @description 获取角色搭配数据 + * @since Beta v0.6.2 + * @param {boolean} isLast 是否获取上期数据 + * @return {Promise} + */ +export async function getAvatarCollect( + isLast: boolean = false, +): Promise { + const url = `${AbyssUrl}Avatar/AvatarCollocation`; + const resp = await TGHttp(url, { + method: "GET", + query: { Last: isLast }, + }); + return resp.data; +} + +/** + * @description 获取角色持有率数据 + * @since Beta v0.6.2 + * @param {boolean} isLast 是否获取上期数据 + * @returns {Promise} + */ +export async function getAvatarHoldRate( + isLast: boolean = false, +): Promise { + const url = `${AbyssUrl}Avatar/HoldingRate`; + const resp = await TGHttp(url, { + method: "GET", + query: { Last: isLast }, + }); + return resp.data; +} + +/** + * @description 获取角色上场率数据 + * @since Beta v0.6.2 + * @param {boolean} isLast 是否获取上期数据 + * @return {Promise} + */ +export async function getAvatarUpRate( + isLast: boolean = false, +): Promise { + const url = `${AbyssUrl}Avatar/AttendanceRate`; + const resp = await TGHttp(url, { + method: "GET", + query: { Last: isLast }, + }); + return resp.data; +} + +/** + * @description 获取角色使用率 + * @since Beta v0.6.2 + * @param {boolean} isLast 是否获取上期数据 + * @return {Promise} + */ +export async function getAvatarUseRate( + isLast: boolean = false, +): Promise { + const url = `${AbyssUrl}Avatar/UtilizationRate`; + const resp = await TGHttp(url, { + method: "GET", + query: { Last: isLast }, + }); + return resp.data; +} + +/** + * @description 获取队伍搭配数据 + * @since Beta v0.6.2 + * @param {boolean} isLast 是否获取上期数据 + * @return {Promise} + */ +export async function getTeamCollect( + isLast: boolean = false, +): Promise { + const url = `${AbyssUrl}Team/Combination`; + const resp = await TGHttp(url, { + method: "GET", + query: { Last: isLast }, + }); + return resp.data; +} + +/** + * @description 上传用户数据 + * @since Beta v0.5.0 + * @param {TGApp.Plugins.Hutao.Abyss.RecordUpload} data 用户数据 + * @returns {Promise} 上传结果 + */ +export async function uploadAbyssData( + data: TGApp.Plugins.Hutao.Abyss.RecordUpload, +): Promise { + const url = "https://homa.snapgenshin.com/Record/Upload"; + return await TGHttp(url, { + method: "POST", + body: JSON.stringify(data), + query: { returningRank: false }, + headers: { "Content-Type": "application/json" }, + }); +} diff --git a/src/plugins/Hutao/request/combatReq.ts b/src/plugins/Hutao/request/combatReq.ts new file mode 100644 index 00000000..1fe16bf7 --- /dev/null +++ b/src/plugins/Hutao/request/combatReq.ts @@ -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} + */ +export async function getCombatStatistic( + isLast: boolean = false, +): Promise { + const url = `${CombatUrl}Statistics`; + const resp = await TGHttp(url, { + method: "GET", + query: { Last: isLast }, + }); + return resp.data; +} + +/** + * @description 上传数据 + * @since Beta v0.6.2 + * @param {TGApp.Plugins.Hutao.Combat.UploadData} data + * @returns {Promise} + */ +export async function uploadCombatData( + data: TGApp.Plugins.Hutao.Combat.UploadData, +): Promise { + const url = `${CombatUrl}Upload`; + return await TGHttp(url, { + method: "POST", + body: JSON.stringify(data), + headers: { "Content-Type": "application/json" }, + }); +} diff --git a/src/plugins/Hutao/request/getAvatarCollect.ts b/src/plugins/Hutao/request/getAvatarCollect.ts deleted file mode 100644 index 788cef92..00000000 --- a/src/plugins/Hutao/request/getAvatarCollect.ts +++ /dev/null @@ -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} - */ -async function getAvatarCollect( - isLast: boolean = false, -): Promise { - const url = HutaoApi.Abyss.avatar.collect; - const resp = await TGHttp(url, { - method: "GET", - query: { Last: isLast }, - }); - return resp.data; -} - -export default getAvatarCollect; diff --git a/src/plugins/Hutao/request/getAvatarHoldRate.ts b/src/plugins/Hutao/request/getAvatarHoldRate.ts deleted file mode 100644 index 4ab8c310..00000000 --- a/src/plugins/Hutao/request/getAvatarHoldRate.ts +++ /dev/null @@ -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} - */ -async function getAvatarHoldRate( - isLast: boolean = false, -): Promise { - const url = HutaoApi.Abyss.avatar.holdRate; - const resp = await TGHttp(url, { - method: "GET", - query: { Last: isLast }, - }); - return resp.data; -} - -export default getAvatarHoldRate; diff --git a/src/plugins/Hutao/request/getAvatarUpRate.ts b/src/plugins/Hutao/request/getAvatarUpRate.ts deleted file mode 100644 index 58e2419c..00000000 --- a/src/plugins/Hutao/request/getAvatarUpRate.ts +++ /dev/null @@ -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} - */ -async function getAvatarUpRate( - isLast: boolean = false, -): Promise { - const url = HutaoApi.Abyss.avatar.upRate; - const resp = await TGHttp(url, { - method: "GET", - query: { Last: isLast }, - }); - return resp.data; -} - -export default getAvatarUpRate; diff --git a/src/plugins/Hutao/request/getAvatarUseRate.ts b/src/plugins/Hutao/request/getAvatarUseRate.ts deleted file mode 100644 index b7ca26e8..00000000 --- a/src/plugins/Hutao/request/getAvatarUseRate.ts +++ /dev/null @@ -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} - */ -async function getAvatarUseRate( - isLast: boolean = false, -): Promise { - const url = HutaoApi.Abyss.avatar.useRate; - const resp = await TGHttp(url, { - method: "GET", - query: { Last: isLast }, - }); - return resp.data; -} - -export default getAvatarUseRate; diff --git a/src/plugins/Hutao/request/getOverview.ts b/src/plugins/Hutao/request/getOverview.ts deleted file mode 100644 index 3f60fd49..00000000 --- a/src/plugins/Hutao/request/getOverview.ts +++ /dev/null @@ -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} - */ -async function getOverview( - isLast: boolean = false, -): Promise { - const url = HutaoApi.Abyss.overview; - const resp = await TGHttp(url, { - method: "GET", - query: { Last: isLast }, - }); - return resp.data; -} - -export default getOverview; diff --git a/src/plugins/Hutao/request/getTeamCollect.ts b/src/plugins/Hutao/request/getTeamCollect.ts deleted file mode 100644 index a8c1e66d..00000000 --- a/src/plugins/Hutao/request/getTeamCollect.ts +++ /dev/null @@ -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} - */ -async function getTeamCollect( - isLast: boolean = false, -): Promise { - const url = HutaoApi.Abyss.team; - const resp = await TGHttp(url, { - method: "GET", - query: { Last: isLast }, - }); - return resp.data; -} - -export default getTeamCollect; diff --git a/src/plugins/Hutao/request/uploadData.ts b/src/plugins/Hutao/request/uploadData.ts deleted file mode 100644 index e3c231d4..00000000 --- a/src/plugins/Hutao/request/uploadData.ts +++ /dev/null @@ -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} 上传结果 - */ -async function uploadData( - data: TGApp.Plugins.Hutao.Abyss.RecordUpload, -): Promise { - const url = HutaoApi.Abyss.upload; - return await TGHttp(url, { - method: "POST", - body: JSON.stringify(data), - headers: { "Content-Type": "application/json" }, - }); -} - -export default uploadData; diff --git a/src/plugins/Hutao/types/Abyss.d.ts b/src/plugins/Hutao/types/Abyss.d.ts index bdff9cdd..0ea0bde1 100644 --- a/src/plugins/Hutao/types/Abyss.d.ts +++ b/src/plugins/Hutao/types/Abyss.d.ts @@ -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} Ranks - 角色上场率 * @return AvatarUp */ interface AvatarUp { Floor: number; - Ranks: Array<{ - Item: number; - Rate: number; - }>; + Ranks: Array; } /** @@ -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} Ranks 角色使用率 * @return AvatarUse */ interface AvatarUse { Floor: number; - Ranks: Array<{ - Item: number; - Rate: number; - }>; + Ranks: Array; } /** @@ -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} Constellations - 持有率 * @property {number} AvatarId - 角色ID * @return AvatarHold */ interface AvatarHold { HoldingRate: number; - Constellations: Array<{ - Item: number; - Rate: number; - }>; + Constellations: Array; 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} Avatars - 角色搭配率 + * @property {Array>} Reliquaries - 圣遗物套装搭配率 + * @property {Array} 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; + Reliquaries: Array>; + Weapons: Array; } /** @@ -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} Avatars - 角色搭配率 * @return WeaponCollocation */ interface WeaponCollocation { WeaponId: number; - Avatars: Array<{ - Item: number; - Rate: number; - }>; + Avatars: Array; } /** @@ -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>} Up - 统计次数 + * @property {Array>} Down - 统计次数 * @return TeamCombination */ interface TeamCombination { Floor: number; - Up: Array<{ - Item: string; - Rate: number; - }>; - Down: Array<{ - Item: string; - Rate: number; - }>; + Up: Array>; + Down: Array>; } } diff --git a/src/plugins/Hutao/types/Base.d.ts b/src/plugins/Hutao/types/Base.d.ts index a650e895..3f990a7b 100644 --- a/src/plugins/Hutao/types/Base.d.ts +++ b/src/plugins/Hutao/types/Base.d.ts @@ -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 { + Item: T; + Rate: number; + } + /** * @description 武器类型枚举,英文-中文对照 * @since Beta v0.3.8 diff --git a/src/plugins/Hutao/types/Combat.d.ts b/src/plugins/Hutao/types/Combat.d.ts new file mode 100644 index 00000000..f7f01a7f --- /dev/null +++ b/src/plugins/Hutao/types/Combat.d.ts @@ -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; + 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} BackupAvatarRates 使用率 + * @return Data + */ + interface Data { + RecordTotal: number; + BackupAvatarRates: Array; + } +} diff --git a/src/plugins/Hutao/utils/transLocal.ts b/src/plugins/Hutao/utils/abyssUtil.ts similarity index 91% rename from src/plugins/Hutao/utils/transLocal.ts rename to src/plugins/Hutao/utils/abyssUtil.ts index f3154f84..3e047fb0 100644 --- a/src/plugins/Hutao/utils/transLocal.ts +++ b/src/plugins/Hutao/utils/abyssUtil.ts @@ -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) => { diff --git a/src/plugins/Hutao/utils/combatUtil.ts b/src/plugins/Hutao/utils/combatUtil.ts new file mode 100644 index 00000000..08b1bd4f --- /dev/null +++ b/src/plugins/Hutao/utils/combatUtil.ts @@ -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, + }; +}