♻️ Hutao 类型重构,优化目录结构

This commit is contained in:
BTMuli
2023-06-27 14:53:36 +08:00
parent c7c1b2a0a2
commit dc51257e6b
15 changed files with 204 additions and 173 deletions

View File

@@ -16,7 +16,7 @@ import getWeaponCollect from "./request/getWeaponCollect";
import uploadData from "./request/uploadData";
import { transAvatars, transLocal } from "./utils/transLocal";
const HutaoRequest = {
const Hutao = {
Abyss: {
avatar: {
getCollect: getAvatarCollect,
@@ -39,4 +39,4 @@ const HutaoRequest = {
},
};
export default HutaoRequest;
export default Hutao;

View File

@@ -13,12 +13,12 @@ import HutaoApi from "../api";
/**
* @description 获取角色搭配数据
* @since Alpha v0.2.0
* @return {Promise<TGApp.Plugins.Hutao.AbyssAvatarCollocation[]>}
* @return {Promise<TGApp.Plugins.Hutao.Abyss.AvatarCollocation[]>}
*/
async function getAvatarCollect(): Promise<TGApp.Plugins.Hutao.AbyssAvatarCollocation[]> {
async function getAvatarCollect(): Promise<TGApp.Plugins.Hutao.Abyss.AvatarCollocation[]> {
const url = HutaoApi.Abyss.avatar.collect;
return await http
.fetch<TGApp.Plugins.Hutao.AbyssAvatarCollocationResponse>(url, {
.fetch<TGApp.Plugins.Hutao.Abyss.AvatarCollocationResponse>(url, {
method: "GET",
})
.then((res) => {

View File

@@ -13,12 +13,12 @@ import HutaoApi from "../api";
/**
* @description 获取角色持有率数据
* @since Alpha v0.2.0
* @returns {Promise<TGApp.Plugins.Hutao.AbyssAvatarHoldRate[]>}
* @returns {Promise<TGApp.Plugins.Hutao.Abyss.AvatarHold[]>}
*/
async function getAvatarHoldRate(): Promise<TGApp.Plugins.Hutao.AbyssAvatarHoldRate[]> {
async function getAvatarHoldRate(): Promise<TGApp.Plugins.Hutao.Abyss.AvatarHold[]> {
const url = HutaoApi.Abyss.avatar.holdRate;
return await http
.fetch<TGApp.Plugins.Hutao.AbyssAvatarHoldRateResponse>(url, {
.fetch<TGApp.Plugins.Hutao.Abyss.AvatarHoldResponse>(url, {
method: "GET",
})
.then((res) => {

View File

@@ -13,12 +13,12 @@ import HutaoApi from "../api";
/**
* @description 获取角色上场率数据
* @since Alpha v0.2.0
* @return {Promise<TGApp.Plugins.Hutao.AbyssAvatarUpRate[]>}
* @return {Promise<TGApp.Plugins.Hutao.Abyss.AvatarUp[]>}
*/
async function getAvatarUpRate(): Promise<TGApp.Plugins.Hutao.AbyssAvatarUpRate[]> {
async function getAvatarUpRate(): Promise<TGApp.Plugins.Hutao.Abyss.AvatarUp[]> {
const url = HutaoApi.Abyss.avatar.upRate;
return await http
.fetch<TGApp.Plugins.Hutao.AbyssAvatarUpRateResponse>(url, {
.fetch<TGApp.Plugins.Hutao.Abyss.AvatarUpResponse>(url, {
method: "GET",
})
.then((res) => {

View File

@@ -13,12 +13,12 @@ import HutaoApi from "../api";
/**
* @description 获取角色使用率
* @since Alpha v0.2.0
* @return {Promise<TGApp.Plugins.Hutao.AbyssAvatarUseRate[]>}
* @return {Promise<TGApp.Plugins.Hutao.Abyss.AvatarUse[]>}
*/
async function getAvatarUseRate(): Promise<TGApp.Plugins.Hutao.AbyssAvatarUseRate[]> {
async function getAvatarUseRate(): Promise<TGApp.Plugins.Hutao.Abyss.AvatarUse[]> {
const url = HutaoApi.Abyss.avatar.useRate;
return await http
.fetch<TGApp.Plugins.Hutao.AbyssAvatarUseRateResponse>(url, {
.fetch<TGApp.Plugins.Hutao.Abyss.AvatarUseResponse>(url, {
method: "GET",
})
.then((res) => {

View File

@@ -13,12 +13,12 @@ import HutaoApi from "../api";
/**
* @description 获取深渊概览数据
* @since Alpha v0.2.0
* @return {Promise<TGApp.Plugins.Hutao.AbyssOverview>}
* @return {Promise<TGApp.Plugins.Hutao.Abyss.OverviewData>}
*/
async function getOverview(): Promise<TGApp.Plugins.Hutao.AbyssOverview> {
async function getOverview(): Promise<TGApp.Plugins.Hutao.Abyss.OverviewData> {
const url = HutaoApi.Abyss.overview;
return await http
.fetch<TGApp.Plugins.Hutao.AbyssOverviewResponse>(url, {
.fetch<TGApp.Plugins.Hutao.Abyss.OverviewResponse>(url, {
method: "GET",
})
.then((res) => {

View File

@@ -13,12 +13,12 @@ import HutaoApi from "../api";
/**
* @description 获取队伍搭配数据
* @since Alpha v0.2.0
* @return {Promise<TGApp.Plugins.Hutao.AbyssTeamCombination[]>}
* @return {Promise<TGApp.Plugins.Hutao.Abyss.TeamCombination[]>}
*/
async function getTeamCollect(): Promise<TGApp.Plugins.Hutao.AbyssTeamCombination[]> {
async function getTeamCollect(): Promise<TGApp.Plugins.Hutao.Abyss.TeamCombination[]> {
const url = HutaoApi.Abyss.team;
return await http
.fetch<TGApp.Plugins.Hutao.AbyssTeamCombinationResponse>(url, {
.fetch<TGApp.Plugins.Hutao.Abyss.TeamCombinationResponse>(url, {
method: "GET",
})
.then((res) => {

View File

@@ -20,7 +20,7 @@ import HutaoApi from "../api";
export async function checkUid(uid: string): Promise<boolean> {
const url = HutaoApi.Abyss.user.check.replace("{uid}", uid);
return await http
.fetch<TGApp.Plugins.Hutao.AbyssRecordExistResponse>(url, {
.fetch<TGApp.Plugins.Hutao.Abyss.ExistResponse>(url, {
method: "GET",
})
.then((res) => {
@@ -33,12 +33,12 @@ export async function checkUid(uid: string): Promise<boolean> {
* @since Alpha v0.2.0
* @todo 未完成
* @param {string} uid
* @return {Promise<TGApp.Plugins.Hutao.AbyssRecordRank>}
* @return {Promise<TGApp.Plugins.Hutao.Abyss.RankData>}
*/
export async function getUserData(uid: string): Promise<TGApp.Plugins.Hutao.AbyssRecordRank> {
export async function getUserData(uid: string): Promise<TGApp.Plugins.Hutao.Abyss.RankData> {
const url = HutaoApi.Abyss.user.rank.replace("{uid}", uid);
return await http
.fetch<TGApp.Plugins.Hutao.AbyssRecordRankResponse>(url, {
.fetch<TGApp.Plugins.Hutao.Abyss.RecordRankResponse>(url, {
method: "GET",
})
.then((res) => {

View File

@@ -13,12 +13,12 @@ import HutaoApi from "../api";
/**
* @description 获取武器搭配
* @since Alpha v0.2.0
* @return {Promise<TGApp.Plugins.Hutao.AbyssWeaponCollocation[]>}
* @return {Promise<TGApp.Plugins.Hutao.Abyss.WeaponCollocation[]>}
*/
async function getWeaponCollect(): Promise<TGApp.Plugins.Hutao.AbyssWeaponCollocation[]> {
async function getWeaponCollect(): Promise<TGApp.Plugins.Hutao.Abyss.WeaponCollocation[]> {
const url = HutaoApi.Abyss.weapon;
return await http
.fetch<TGApp.Plugins.Hutao.AbyssWeaponCollocationResponse>(url, {
.fetch<TGApp.Plugins.Hutao.Abyss.WeaponCollocationResponse>(url, {
method: "GET",
})
.then((res) => {

View File

@@ -13,15 +13,15 @@ import HutaoApi from "../api";
/**
* @description 上传用户数据
* @since Alpha v0.2.1
* @param {TGApp.Plugins.Hutao.AbyssRecordUpload} data 用户数据
* @returns {Promise<TGApp.Plugins.Hutao.HutaoResponse>} 上传结果
* @param {TGApp.Plugins.Hutao.Abyss.RecordUpload} data 用户数据
* @returns {Promise<TGApp.Plugins.Hutao.Abyss.UploadResponse>} 上传结果
*/
async function uploadData(
data: TGApp.Plugins.Hutao.AbyssRecordUpload,
): Promise<TGApp.Plugins.Hutao.HutaoResponse> {
data: TGApp.Plugins.Hutao.Abyss.RecordUpload,
): Promise<TGApp.Plugins.Hutao.Abyss.UploadResponse> {
const url = HutaoApi.Abyss.upload;
return await http
.fetch<TGApp.Plugins.Hutao.HutaoResponse>(url, {
.fetch<TGApp.Plugins.Hutao.Abyss.UploadResponse>(url, {
method: "POST",
body: http.Body.json(data),
})

403
src/plugins/Hutao/types/Abyss.d.ts vendored Normal file
View File

@@ -0,0 +1,403 @@
/**
* @file src plugins Hutao types Abyss.d.ts
* @description Hutao 插件深渊类型定义文件
* @author BTMuli <bt-muli@outlook.com>
* @since Alpha v0.2.1
*/
/**
* @description Hutao 深渊类型定义
* @since Alpha v0.2.1
* @namespace Abyss
* @exports TGApp.Plugins.Hutao.Abyss
* @return Abyss
*/
declare namespace TGApp.Plugins.Hutao.Abyss {
/**
* @description 深渊记录上传数据
* @since Alpha v0.2.1
* @see HutaoRequest.Abyss.postData
* @interface RecordUpload
* @property {string} uid - UID
* @property {string} identity - 身份标识
* @property {RecordData} spiralAbyss - 深渊记录
* @property {Avatar[]} avatars - 角色信息
* @property {string} reservedUserName - 保留用户名
* @return RecordUpload
*/
export interface RecordUpload {
uid: string;
identity: string;
spiralAbyss: RecordData;
avatars: Avatar[];
reservedUserName: string;
}
/**
* @description 深渊记录
* @since Alpha v0.2.0
* @interface RecordData
* @property {number} scheduleId - 深渊期数
* @property {number} totalBattleTimes - 总战斗次数
* @property {number} totalWinTimes - 总胜利次数
* @property {number} damage.avatarId - 最大伤害角色ID
* @property {number} damage.value - 最大伤害
* @property {number} takeDamage.avatarId - 最大承伤角色ID
* @property {number} takeDamage.value - 最大承伤
* @property {Floor[]} floors - 楼层信息
* @return RecordData
*/
export interface RecordData {
scheduleId: number;
totalBattleTimes: number;
totalWinTimes: number;
damage: {
avatarId: number;
value: number;
};
takeDamage: {
avatarId: number;
value: number;
};
floors: Floor[];
}
/**
* @description 深渊楼层信息
* @since Alpha v0.2.0
* @interface Floor
* @property {number} index - 楼层索引
* @property {number} star - 楼层星数
* @property {Level[]} levels - 楼层关卡信息
* @return Floor
*/
export interface Floor {
index: number;
star: number;
levels: Level[];
}
/**
* @description 深渊房间信息
* @since Alpha v0.2.0
* @interface Level
* @property {number} index - 关卡索引
* @property {number} star - 关卡星数
* @property {number} battles[].index - 战斗索引
* @property {number[]} battles[].avatars - 战斗角色ID
* @return Level
*/
export interface Level {
index: number;
star: number;
battles: Array<{
index: number;
avatars: number[];
}>;
}
/**
* @description 角色信息
* @since Alpha v0.2.1
* @interface Avatar
* @property {number} avatarId - 角色ID
* @property {number} weaponId - 武器ID
* @property {number[]} reliquarySetIds - 圣遗物套装ID
* @property {number} activedConstellationNumber - 已激活命座数量
* @return Avatar
*/
export interface Avatar {
avatarId: number;
weaponId: number;
reliquarySetIds: number[];
activedConstellationNumber: number;
}
/**
* @description 深渊记录上传返回
* @since Alpha v0.2.1
* @see HutaoRequest.Abyss.postData
* @interface UploadResponse
* @extends TGApp.Plugins.Hutao.Base.Response
* @return UploadResponse
*/
export interface UploadResponse extends TGApp.Plugins.Hutao.Base.Response {}
/**
* @description 是否存在深渊记录返回
* @since Alpha v0.2.1
* @see HutaoRequest.Abyss.user.checkExist
* @interface ExistResponse
* @extends TGApp.Plugins.Hutao.Base.Response
* @property {boolean} data - 是否存在深渊记录
* @return ExistResponse
*/
export interface ExistResponse extends TGApp.Plugins.Hutao.Base.Response {
data: boolean;
}
/**
* @description 获取深渊记录返回
* @since Alpha v0.2.1
* @see HutaoRequest.Abyss.user.getRecord
* @interface RecordRankResponse
* @extends TGApp.Plugins.Hutao.Base.Response
* @property {RankData} data - 深渊记录
* @return RecordRankResponse
*/
export interface RecordRankResponse extends TGApp.Plugins.Hutao.Base.Response {
data: RankData;
}
/**
* @description 深渊记录
* @since Alpha v0.2.1
* @interface RankData
* @todo 暂时缺乏数据
* @return RankData
*/
export interface RankData {
// todo
}
/**
* @description 获取深渊总览数据返回
* @since Alpha v0.2.0
* @see HutaoRequest.Abyss.getOverview
* @interface OverviewResponse
* @extends TGApp.Plugins.Hutao.Base.Response
* @property {OverviewData} data - 深渊总览数据
* @return OverviewResponse
*/
export interface OverviewResponse extends TGApp.Plugins.Hutao.Base.Response {
data: OverviewData;
}
/**
* @description 深渊总览数据
* @since Alpha v0.2.0
* @interface OverviewData
* @property {number} scheduleId - 深渊期数
* @property {number} recordTotal - 总记录数
* @property {number} spiralAbyssTotal - 总计深渊记录
* @property {number} spiralAbyssFullStar - 满星深渊记录数
* @property {number} spiralAbyssPassed - 通关深渊记录数
* @property {number} spiralAbyssStarTotal - 总星数
* @property {number} spiralAbyssBattleTotal - 总战斗次数
* @property {number} timestamp - 时间戳
* @property {number} timeTotal - 总耗时
* @property {number} timeAverage - 平均耗时
* @return OverviewData
*/
export interface OverviewData {
scheduleId: number;
recordTotal: number;
spiralAbyssTotal: number;
spiralAbyssFullStar: number;
spiralAbyssPassed: number;
spiralAbyssStarTotal: number;
spiralAbyssBattleTotal: number;
timestamp: number;
timeTotal: number;
timeAverage: number;
}
/**
* @description 获取角色深渊上场率返回
* @since Alpha v0.2.0
* @see HutaoRequest.Abyss.avatar.getUpRate
* @interface AvatarUpResponse
* @extends TGApp.Plugins.Hutao.Base.Response
* @property {AvatarUp[]} data - 角色深渊上场率
* @return AvatarUpResponse
*/
export interface AvatarUpResponse extends TGApp.Plugins.Hutao.Base.Response {
data: AvatarUp[];
}
/**
* @description 角色深渊上场率
* @since Alpha v0.2.0
* @interface AvatarUp
* @property {number} floor - 楼层
* @property {number} ranks[].item - 角色ID
* @property {number} ranks[].rate - 上场率
* @return AvatarUp
*/
export interface AvatarUp {
floor: number;
ranks: {
item: number;
rate: number;
};
}
/**
* @description 获取角色深渊使用率返回
* @since Alpha v0.2.0
* @see HutaoRequest.Abyss.avatar.getUseRate
* @interface AvatarUseResponse
* @extends TGApp.Plugins.Hutao.Base.Response
* @property {AvatarUse[]} data - 角色深渊使用率
* @return AvatarUseResponse
*/
export interface AvatarUseResponse extends TGApp.Plugins.Hutao.Base.Response {
data: AvatarUse[];
}
/**
* @description 角色深渊使用率
* @since Alpha v0.2.0
* @interface AvatarUse
* @property {number} floor - 楼层
* @property {number} ranks[].item - 角色ID
* @property {number} ranks[].rate - 使用率
* @return AvatarUse
*/
export interface AvatarUse {
floor: number;
ranks: Array<{
item: number;
rate: number;
}>;
}
/**
* @description 获取角色深渊持有率返回
* @since Alpha v0.2.0
* @see HutaoRequest.Abyss.avatar.getHoldRate
* @interface AvatarHoldResponse
* @extends TGApp.Plugins.Hutao.Base.Response
* @property {AvatarHold[]} data - 角色深渊持有率
* @return AvatarHoldResponse
*/
export interface AvatarHoldResponse extends TGApp.Plugins.Hutao.Base.Response {
data: AvatarHold[];
}
/**
* @description 角色深渊持有率
* @since Alpha v0.2.0
* @interface AvatarHold
* @property {number} holdingRate - 持有率
* @property {number} constellations[].item - 命座ID
* @property {number} constellations[].rate - 持有率
* @property {number} avatarId - 角色ID
* @return AvatarHold
*/
export interface AvatarHold {
holdingRate: number;
constellations: Array<{
item: number;
rate: number;
}>;
avatarId: number;
}
/**
* @description 获取角色的圣遗物、武器搭配
* @since Alpha v0.2.0
* @see HutaoRequest.Abyss.avatar.getCollect
* @interface AvatarCollocationResponse
* @extends TGApp.Plugins.Hutao.Base.Response
* @property {AvatarCollocation[]} data - 角色搭配
* @return AvatarCollocationResponse
*/
export interface AvatarCollocationResponse extends TGApp.Plugins.Hutao.Base.Response {
data: AvatarCollocation[];
}
/**
* @description 角色搭配
* @since Alpha v0.2.0
* @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 - 武器搭配率
* @return AvatarCollocation
*/
export interface AvatarCollocation {
avatarId: number;
avatars: Array<{
item: number;
rate: number;
}>;
reliquaries: Array<{
item: string;
rate: number;
}>;
weapons: Array<{
item: number;
rate: number;
}>;
}
/**
* @description 获取武器搭配角色返回
* @since Alpha v0.2.0
* @see HutaoRequest.Abyss.weapon.getCollect
* @interface WeaponCollocationResponse
* @extends TGApp.Plugins.Hutao.Base.Response
* @property {WeaponCollocation[]} data - 武器搭配角色
*/
export interface WeaponCollocationResponse extends TGApp.Plugins.Hutao.Base.Response {
data: WeaponCollocation[];
}
/**
* @description 武器搭配角色
* @since Alpha v0.2.0
* @interface WeaponCollocation
* @property {number} weaponId - 武器ID
* @property {number} avatars[].item - 角色ID
* @property {number} avatars[].rate - 角色搭配率
* @return WeaponCollocation
*/
export interface WeaponCollocation {
weaponId: number;
avatars: Array<{
item: number;
rate: number;
}>;
}
/**
* @description 获取队伍搭配返回
* @since Alpha v0.2.0
* @see HutaoRequest.Abyss.getTeamCollect
* @interface TeamCombinationResponse
* @extends TGApp.Plugins.Hutao.Base.Response
* @property {TeamCombination[]} data - 队伍搭配
* @return TeamCombinationResponse
*/
export interface TeamCombinationResponse extends TGApp.Plugins.Hutao.Base.Response {
data: TeamCombination[];
}
/**
* @description 队伍搭配
* @since Alpha v0.2.0
* @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 - 统计次数
* @return TeamCombination
*/
export interface TeamCombination {
floor: number;
up: Array<{
item: string;
rate: number;
}>;
down: Array<{
item: string;
rate: number;
}>;
}
}

30
src/plugins/Hutao/types/Base.d.ts vendored Normal file
View File

@@ -0,0 +1,30 @@
/**
* @file src plugins Hutao types Base.d.ts
* @description Hutao 插件基础类型定义文件
* @author BTMuli <bt-muli@outlook.com>
* @since Alpha v0.2.1
*/
/**
* @description Hutao 插件基础类型
* @since Alpha v0.2.1
* @namespace Base
* @exports TGApp.plugins.Hutao.Base
* @return Base
*/
declare namespace TGApp.Plugins.Hutao.Base {
/**
* @description Hutao Response 统一接口
* @since Alpha v0.2.1
* @interface Response
* @property {number} retcode 状态码
* @property {string} message 状态信息
* @property {any} data 数据
* @return Response
*/
export interface Response {
retcode?: number;
message?: string;
data?: any;
}
}

View File

@@ -9,11 +9,11 @@
* @description 将本地数据转为上传用的数据
* @since Alpha v0.2.1
* @param {TGApp.Sqlite.Abyss.SingleTable} data 本地数据
* @returns {TGApp.Plugins.Hutao.AbyssRecordUpload} 上传用的数据
* @returns {TGApp.Plugins.Hutao.Abyss.RecordUpload} 上传用的数据
*/
export function transLocal(
data: TGApp.Sqlite.Abyss.SingleTable,
): TGApp.Plugins.Hutao.AbyssRecordUpload {
): TGApp.Plugins.Hutao.Abyss.RecordUpload {
return {
uid: data.uid,
identity: "Tauri.Genshin",
@@ -27,9 +27,9 @@ export function transLocal(
* @description 转换深渊数据
* @since Alpha v0.2.1
* @param {TGApp.Sqlite.Abyss.SingleTable} data 本地数据
* @returns {TGApp.Plugins.Hutao.AbyssRecord} 上传用的数据
* @returns {TGApp.Plugins.Hutao.Abyss.RecordData} 上传用的数据
*/
function transAbyss(data: TGApp.Sqlite.Abyss.SingleTable): TGApp.Plugins.Hutao.AbyssRecord {
function transAbyss(data: TGApp.Sqlite.Abyss.SingleTable): TGApp.Plugins.Hutao.Abyss.RecordData {
const damage: TGApp.Sqlite.Abyss.Character = JSON.parse(data.damageRank)[0];
const takeDamage: TGApp.Sqlite.Abyss.Character = JSON.parse(data.takeDamageRank)[0];
return {
@@ -52,9 +52,9 @@ function transAbyss(data: TGApp.Sqlite.Abyss.SingleTable): TGApp.Plugins.Hutao.A
* @description 转换层数数据
* @since Alpha v0.2.1
* @param {TGApp.Sqlite.Abyss.Floor} data 本地数据
* @returns {TGApp.Plugins.Hutao.AbyssFloor} 上传用的数据
* @returns {TGApp.Plugins.Hutao.Abyss.Floor} 上传用的数据
*/
function transFloor(data: TGApp.Sqlite.Abyss.Floor): TGApp.Plugins.Hutao.AbyssFloor {
function transFloor(data: TGApp.Sqlite.Abyss.Floor): TGApp.Plugins.Hutao.Abyss.Floor {
return {
index: data.id,
star: data.winStar,
@@ -66,9 +66,9 @@ function transFloor(data: TGApp.Sqlite.Abyss.Floor): TGApp.Plugins.Hutao.AbyssFl
* @description 转换层-关卡数据
* @since Alpha v0.2.1
* @param {TGApp.Sqlite.Abyss.Level} data 本地数据
* @returns {TGApp.Plugins.Hutao.AbyssLevel} 上传用的数据
* @returns {TGApp.Plugins.Hutao.Abyss.Level} 上传用的数据
*/
function transLevel(data: TGApp.Sqlite.Abyss.Level): TGApp.Plugins.Hutao.AbyssLevel {
function transLevel(data: TGApp.Sqlite.Abyss.Level): TGApp.Plugins.Hutao.Abyss.Level {
const battles: Array<{ index: number; avatars: number[] }> = [];
battles.push({
index: 1,
@@ -89,11 +89,11 @@ function transLevel(data: TGApp.Sqlite.Abyss.Level): TGApp.Plugins.Hutao.AbyssLe
* @description 转换角色数据
* @since Alpha v0.2.1
* @param {TGApp.Sqlite.Character.UserRole[]} avatars 角色数据
* @returns {TGApp.Plugins.Hutao.AbyssAvatar[]} 上传用的数据
* @returns {TGApp.Plugins.Hutao.Abyss.Avatar[]} 上传用的数据
*/
export function transAvatars(
avatars: TGApp.Sqlite.Character.UserRole[],
): TGApp.Plugins.Hutao.AbyssAvatar[] {
): TGApp.Plugins.Hutao.Abyss.Avatar[] {
return avatars.map((avatar) => {
const weapon: TGApp.Sqlite.Character.RoleWeapon = JSON.parse(avatar.weapon);
let relics: number[];