♻️ 重构Yatta插件请求逻辑,完善错误处理

This commit is contained in:
BTMuli
2026-04-08 19:18:55 +08:00
parent 6d05f00dc7
commit 5af4b64174
2 changed files with 16 additions and 14 deletions

View File

@@ -171,6 +171,7 @@ import { onMounted, ref, shallowRef, watch } from "vue";
import { useRouter } from "vue-router";
import { AppCalendarData } from "@/data/index.js";
import TGHttps from "@utils/TGHttps.js";
const router = useRouter();
const hutaoStore = useHutaoStore();
@@ -398,7 +399,7 @@ async function handleHutaoDownload(uids: Array<string>): Promise<void> {
await showLoading.end();
showSnackbar.success("成功下载,即将刷新页面");
await new Promise<void>((resolve) => setTimeout(resolve, 1000));
window.location.reload();
// window.location.reload();
}
async function handleHutaoDelete(uids: Array<string>): Promise<void> {
@@ -598,10 +599,13 @@ async function loadYatta(): Promise<void> {
try {
yattaData.value = await fetchYattaJson();
} catch (e) {
console.error(e);
showSnackbar.warn(`获取 Yatta 元数据失败`);
await TGLogger.Error(`[UserGacha][onMounted]获取 Yatta 元数据失败`);
await TGLogger.Error(`${e}`);
let errMsg = String(e);
if (TGHttps.isHttpErr(e)) {
errMsg = e.status ? `[${e.status}] ${e.statusText}` : e.message;
}
showSnackbar.error(`获取Yatta数据失败${errMsg}`);
await TGLogger.Error(`[Gacha][loadYatta] 获取Yatta数据失败`);
await TGLogger.Error(`[Gacha][loadYatta] ${e}`);
}
}

View File

@@ -1,20 +1,19 @@
/**
* Yatta 插件入口
* @since Beta v0.9.6
* @since Beta v0.10.0
*/
import TGHttp from "@utils/TGHttp.js";
import TGHttps from "@utils/TGHttps.js";
const YATTA_API = "https://gi.yatta.moe/api/v2/";
/**
* 请求角色数据
* @since Beta v0.9.6
* @since Beta v0.10.0
* @returns 角色数据
*/
async function fetchAvatar(): Promise<TGApp.Plugins.Yatta.AvatarResp> {
return await TGHttp<TGApp.Plugins.Yatta.AvatarResp>(`${YATTA_API}chs/avatar`, {
method: "GET",
});
const resp = await TGHttps.get<TGApp.Plugins.Yatta.AvatarResp>(`${YATTA_API}chs/avatar`);
return resp.data;
}
/**
@@ -23,9 +22,8 @@ async function fetchAvatar(): Promise<TGApp.Plugins.Yatta.AvatarResp> {
* @returns 武器数据
*/
async function fetchWeapon(): Promise<TGApp.Plugins.Yatta.WeaponResp> {
return await TGHttp<TGApp.Plugins.Yatta.WeaponResp>(`${YATTA_API}chs/weapon`, {
method: "GET",
});
const resp = await TGHttps.get<TGApp.Plugins.Yatta.WeaponResp>(`${YATTA_API}chs/weapon`);
return resp.data;
}
/**