From 0061dfa988157dd5abab2b93e7d4626235dab2eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9B=AE=E6=A3=83?= Date: Wed, 26 Jun 2024 22:28:05 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=8F=EF=B8=8F=20=E7=BB=A7=E7=BB=AD?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20import?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/Bili/request/getNav.ts | 3 +- src/plugins/Bili/request/getVideoUrl.ts | 7 ++-- src/plugins/Bili/request/getVideoView.ts | 7 ++-- src/plugins/Bili/utils/getWrid.ts | 2 +- src/plugins/Hutao/index.ts | 18 +++++----- src/plugins/Hutao/request/getAvatarCollect.ts | 9 +++-- .../Hutao/request/getAvatarHoldRate.ts | 9 +++-- src/plugins/Hutao/request/getAvatarUpRate.ts | 9 +++-- src/plugins/Hutao/request/getAvatarUseRate.ts | 9 +++-- src/plugins/Hutao/request/getOverview.ts | 9 +++-- src/plugins/Hutao/request/getTeamCollect.ts | 9 +++-- src/plugins/Hutao/request/getWeaponCollect.ts | 10 +++--- src/plugins/Hutao/request/uploadData.ts | 10 +++--- src/plugins/Hutao/utils/transLocal.ts | 4 +-- src/plugins/Mys/request/getVoteData.ts | 31 ++++++---------- src/plugins/Mys/utils/getGachaCard.ts | 4 +-- src/plugins/Mys/utils/getPositionCard.ts | 16 ++++----- src/plugins/Sqlite/modules/userAchi.ts | 28 ++++++++------- src/plugins/Sqlite/modules/userCollect.ts | 2 +- src/plugins/Sqlite/sql/updateData.ts | 4 +-- src/router/index.ts | 2 +- src/router/routes.ts | 10 +++--- src/store/modules/app.ts | 4 +-- src/utils/TGClient.ts | 24 ++++++------- src/utils/TGShare.ts | 8 ++--- src/utils/TGWindow.ts | 8 ++--- src/utils/UIAF.ts | 2 ++ src/utils/UIGF.ts | 3 +- src/utils/linkParser.ts | 8 ++--- src/utils/toolFunc.ts | 2 +- src/views/t-anno-json.vue | 4 +-- src/views/t-anno.vue | 14 ++++---- src/views/t-post-json.vue | 2 +- src/views/t-post.vue | 10 +++--- src/vite-env.d.ts | 1 - src/web/api/TGApi.ts | 8 ++--- src/web/constant/TGConstant.ts | 6 ++-- src/web/request/TGRequest.ts | 36 +++++++++---------- src/web/request/getTokens.ts | 23 +++++------- src/web/request/getUserInfo.ts | 13 +++---- src/web/request/verifyLToken.ts | 20 ++++------- src/web/utils/TGUtils.ts | 8 ++--- src/web/utils/getRequestHeader.ts | 6 ++-- src/web/utils/parseAnno.ts | 6 ++-- 44 files changed, 198 insertions(+), 230 deletions(-) diff --git a/src/plugins/Bili/request/getNav.ts b/src/plugins/Bili/request/getNav.ts index 42d0758e..a390af99 100644 --- a/src/plugins/Bili/request/getNav.ts +++ b/src/plugins/Bili/request/getNav.ts @@ -5,6 +5,7 @@ */ import { http } from "@tauri-apps/api"; +import { Response } from "@tauri-apps/api/http"; /** * @description Bili 插件导航请求 @@ -13,7 +14,7 @@ import { http } from "@tauri-apps/api"; */ async function getNav(): Promise { const url = "https://api.bilibili.com/x/web-interface/nav"; - return await http.fetch(url).then((res) => { + return await http.fetch(url).then((res: Response) => { return res.data.data; }); } diff --git a/src/plugins/Bili/request/getVideoUrl.ts b/src/plugins/Bili/request/getVideoUrl.ts index 934185ae..49599ba8 100644 --- a/src/plugins/Bili/request/getVideoUrl.ts +++ b/src/plugins/Bili/request/getVideoUrl.ts @@ -5,8 +5,9 @@ */ import { http } from "@tauri-apps/api"; +import { Response } from "@tauri-apps/api/http"; -import getWrid from "../utils/getWrid"; +import getWrid from "../utils/getWrid.js"; /** * @description 获取视频播放地址 @@ -31,14 +32,14 @@ async function getVideoUrl(cid: number, bvid: string): Promise(url, { + .fetch(url, { method: "GET", query: params, headers: { referer: "https://www.bilibili.com/", }, }) - .then((res) => { + .then((res: Response) => { return res.data.data; }); } diff --git a/src/plugins/Bili/request/getVideoView.ts b/src/plugins/Bili/request/getVideoView.ts index 7aed98e7..f85d8274 100644 --- a/src/plugins/Bili/request/getVideoView.ts +++ b/src/plugins/Bili/request/getVideoView.ts @@ -5,6 +5,7 @@ */ import { http } from "@tauri-apps/api"; +import type { Response } from "@tauri-apps/api/http"; /** * @description 获取视频基本信息 @@ -26,10 +27,8 @@ async function getVideoView( throw new Error("参数错误"); } return await http - .fetch(url, { - method: "GET", - }) - .then((res) => { + .fetch(url, { method: "GET" }) + .then((res: Response) => { return res.data.data; }); } diff --git a/src/plugins/Bili/utils/getWrid.ts b/src/plugins/Bili/utils/getWrid.ts index 905e090c..2c8d2922 100644 --- a/src/plugins/Bili/utils/getWrid.ts +++ b/src/plugins/Bili/utils/getWrid.ts @@ -6,7 +6,7 @@ import md5 from "js-md5"; -import getNav from "../request/getNav"; +import getNav from "../request/getNav.js"; /** * @description 获取 key 值 diff --git a/src/plugins/Hutao/index.ts b/src/plugins/Hutao/index.ts index e499d385..7d531f00 100644 --- a/src/plugins/Hutao/index.ts +++ b/src/plugins/Hutao/index.ts @@ -5,15 +5,15 @@ * @since Beta v0.3.0 */ -import getAvatarCollect from "./request/getAvatarCollect"; -import getAvatarHoldRate from "./request/getAvatarHoldRate"; -import getAvatarUpRate from "./request/getAvatarUpRate"; -import getAvatarUseRate from "./request/getAvatarUseRate"; -import getOverview from "./request/getOverview"; -import getTeamCollect from "./request/getTeamCollect"; -import getWeaponCollect from "./request/getWeaponCollect"; -import uploadData from "./request/uploadData"; -import { transAvatars, transLocal } from "./utils/transLocal"; +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 getWeaponCollect from "./request/getWeaponCollect.js"; +import uploadData from "./request/uploadData.js"; +import { transAvatars, transLocal } from "./utils/transLocal.js"; const Hutao = { Abyss: { diff --git a/src/plugins/Hutao/request/getAvatarCollect.ts b/src/plugins/Hutao/request/getAvatarCollect.ts index 0cd7ffbc..10643c94 100644 --- a/src/plugins/Hutao/request/getAvatarCollect.ts +++ b/src/plugins/Hutao/request/getAvatarCollect.ts @@ -5,8 +5,9 @@ */ import { http } from "@tauri-apps/api"; +import { Response } from "@tauri-apps/api/http"; -import HutaoApi from "../api"; +import HutaoApi from "../api/index.js"; /** * @description 获取角色搭配数据 @@ -16,10 +17,8 @@ import HutaoApi from "../api"; async function getAvatarCollect(): Promise { const url = HutaoApi.Abyss.avatar.collect; return await http - .fetch(url, { - method: "GET", - }) - .then((res) => { + .fetch(url, { method: "GET" }) + .then((res: Response) => { return res.data.data; }); } diff --git a/src/plugins/Hutao/request/getAvatarHoldRate.ts b/src/plugins/Hutao/request/getAvatarHoldRate.ts index b6e8a50b..e9175f8e 100644 --- a/src/plugins/Hutao/request/getAvatarHoldRate.ts +++ b/src/plugins/Hutao/request/getAvatarHoldRate.ts @@ -5,8 +5,9 @@ */ import { http } from "@tauri-apps/api"; +import { Response } from "@tauri-apps/api/http"; -import HutaoApi from "../api"; +import HutaoApi from "../api/index.js"; /** * @description 获取角色持有率数据 @@ -16,10 +17,8 @@ import HutaoApi from "../api"; async function getAvatarHoldRate(): Promise { const url = HutaoApi.Abyss.avatar.holdRate; return await http - .fetch(url, { - method: "GET", - }) - .then((res) => { + .fetch(url, { method: "GET" }) + .then((res: Response) => { return res.data.data; }); } diff --git a/src/plugins/Hutao/request/getAvatarUpRate.ts b/src/plugins/Hutao/request/getAvatarUpRate.ts index 1f180742..54d50aee 100644 --- a/src/plugins/Hutao/request/getAvatarUpRate.ts +++ b/src/plugins/Hutao/request/getAvatarUpRate.ts @@ -5,8 +5,9 @@ */ import { http } from "@tauri-apps/api"; +import { Response } from "@tauri-apps/api/http"; -import HutaoApi from "../api"; +import HutaoApi from "../api/index.js"; /** * @description 获取角色上场率数据 @@ -16,10 +17,8 @@ import HutaoApi from "../api"; async function getAvatarUpRate(): Promise { const url = HutaoApi.Abyss.avatar.upRate; return await http - .fetch(url, { - method: "GET", - }) - .then((res) => { + .fetch(url, { method: "GET" }) + .then((res: Response) => { return res.data.data; }); } diff --git a/src/plugins/Hutao/request/getAvatarUseRate.ts b/src/plugins/Hutao/request/getAvatarUseRate.ts index 46d79a61..7d7db8b3 100644 --- a/src/plugins/Hutao/request/getAvatarUseRate.ts +++ b/src/plugins/Hutao/request/getAvatarUseRate.ts @@ -5,8 +5,9 @@ */ import { http } from "@tauri-apps/api"; +import { Response } from "@tauri-apps/api/http"; -import HutaoApi from "../api"; +import HutaoApi from "../api/index.js"; /** * @description 获取角色使用率 @@ -16,10 +17,8 @@ import HutaoApi from "../api"; async function getAvatarUseRate(): Promise { const url = HutaoApi.Abyss.avatar.useRate; return await http - .fetch(url, { - method: "GET", - }) - .then((res) => { + .fetch(url, { method: "GET" }) + .then((res: Response) => { return res.data.data; }); } diff --git a/src/plugins/Hutao/request/getOverview.ts b/src/plugins/Hutao/request/getOverview.ts index a0af281b..27a9dfaa 100644 --- a/src/plugins/Hutao/request/getOverview.ts +++ b/src/plugins/Hutao/request/getOverview.ts @@ -5,8 +5,9 @@ */ import { http } from "@tauri-apps/api"; +import { Response } from "@tauri-apps/api/http"; -import HutaoApi from "../api"; +import HutaoApi from "../api/index.js"; /** * @description 获取深渊概览数据 @@ -16,10 +17,8 @@ import HutaoApi from "../api"; async function getOverview(): Promise { const url = HutaoApi.Abyss.overview; return await http - .fetch(url, { - method: "GET", - }) - .then((res) => { + .fetch(url, { method: "GET" }) + .then((res: Response) => { return res.data.data; }); } diff --git a/src/plugins/Hutao/request/getTeamCollect.ts b/src/plugins/Hutao/request/getTeamCollect.ts index 38e1cc2b..d053c0b1 100644 --- a/src/plugins/Hutao/request/getTeamCollect.ts +++ b/src/plugins/Hutao/request/getTeamCollect.ts @@ -5,8 +5,9 @@ */ import { http } from "@tauri-apps/api"; +import type { Response } from "@tauri-apps/api/http"; -import HutaoApi from "../api"; +import HutaoApi from "../api/index.js"; /** * @description 获取队伍搭配数据 @@ -16,10 +17,8 @@ import HutaoApi from "../api"; async function getTeamCollect(): Promise { const url = HutaoApi.Abyss.team; return await http - .fetch(url, { - method: "GET", - }) - .then((res) => { + .fetch(url, { method: "GET" }) + .then((res: Response) => { return res.data.data; }); } diff --git a/src/plugins/Hutao/request/getWeaponCollect.ts b/src/plugins/Hutao/request/getWeaponCollect.ts index 9ab6ad8c..adbe600b 100644 --- a/src/plugins/Hutao/request/getWeaponCollect.ts +++ b/src/plugins/Hutao/request/getWeaponCollect.ts @@ -1,13 +1,13 @@ /** * @file plugins Hutao request getWeaponCollect.ts * @description 获取武器搭配 - * @author BTMuli * @since Alpha v0.2.0 */ import { http } from "@tauri-apps/api"; +import type { Response } from "@tauri-apps/api/http"; -import HutaoApi from "../api"; +import HutaoApi from "../api/index.js"; /** * @description 获取武器搭配 @@ -17,10 +17,8 @@ import HutaoApi from "../api"; async function getWeaponCollect(): Promise { const url = HutaoApi.Abyss.weapon; return await http - .fetch(url, { - method: "GET", - }) - .then((res) => { + .fetch(url, { method: "GET" }) + .then((res: Response) => { return res.data.data; }); } diff --git a/src/plugins/Hutao/request/uploadData.ts b/src/plugins/Hutao/request/uploadData.ts index 9e7da89c..16fde5e9 100644 --- a/src/plugins/Hutao/request/uploadData.ts +++ b/src/plugins/Hutao/request/uploadData.ts @@ -5,8 +5,9 @@ */ import { http } from "@tauri-apps/api"; +import type { Response } from "@tauri-apps/api/http"; -import HutaoApi from "../api"; +import HutaoApi from "../api/index.js"; /** * @description 上传用户数据 @@ -19,11 +20,8 @@ async function uploadData( ): Promise { const url = HutaoApi.Abyss.upload; return await http - .fetch(url, { - method: "POST", - body: http.Body.json(data), - }) - .then((res) => res.data); + .fetch(url, { method: "POST", body: http.Body.json(data) }) + .then((res: Response) => res.data); } export default uploadData; diff --git a/src/plugins/Hutao/utils/transLocal.ts b/src/plugins/Hutao/utils/transLocal.ts index 671511f4..74558511 100644 --- a/src/plugins/Hutao/utils/transLocal.ts +++ b/src/plugins/Hutao/utils/transLocal.ts @@ -86,11 +86,11 @@ function transLevel(data: TGApp.Sqlite.Abyss.Level): TGApp.Plugins.Hutao.Abyss.L const battles: Array<{ Index: number; Avatars: number[] }> = []; battles.push({ Index: 1, - Avatars: data.upBattle.characters.map((character) => character.id), + Avatars: data.upBattle!.characters.map((character) => character.id), }); battles.push({ Index: 2, - Avatars: data.downBattle.characters.map((character) => character.id), + Avatars: data.downBattle!.characters.map((character) => character.id), }); return { Index: data.id, diff --git a/src/plugins/Mys/request/getVoteData.ts b/src/plugins/Mys/request/getVoteData.ts index 9dc699fb..26590669 100644 --- a/src/plugins/Mys/request/getVoteData.ts +++ b/src/plugins/Mys/request/getVoteData.ts @@ -5,8 +5,9 @@ */ import { http } from "@tauri-apps/api"; +import type { Response } from "@tauri-apps/api/http"; -import MysApi from "../api"; +import MysApi from "../api/index.js"; /** * @description 获取投票信息 @@ -17,20 +18,14 @@ import MysApi from "../api"; */ export async function getVoteInfo(id: string, uid: string): Promise { const url = "https://bbs-api.miyoushe.com/apihub/api/getVotes"; - const params = { - owner_uid: uid, - vote_ids: id, - }; + const params = { owner_uid: uid, vote_ids: id }; return await http - .fetch(url, { + .fetch(url, { method: "GET", - headers: { - "Content-Type": "application/json", - Referer: MysApi.PostReferer, - }, + headers: { "Content-Type": "application/json", Referer: MysApi.PostReferer }, query: params, }) - .then((res) => { + .then((res: Response) => { return res.data.data.data[0]; }); } @@ -47,20 +42,14 @@ export async function getVoteResult( uid: string, ): Promise { const url = "https://bbs-api.miyoushe.com/apihub/api/getVotesResult"; - const params = { - owner_uid: uid, - vote_ids: id, - }; + const params = { owner_uid: uid, vote_ids: id }; return await http - .fetch(url, { + .fetch(url, { method: "GET", - headers: { - "Content-Type": "application/json", - Referer: MysApi.PostReferer, - }, + headers: { "Content-Type": "application/json", Referer: MysApi.PostReferer }, query: params, }) - .then((res) => { + .then((res: Response) => { return res.data.data.data[0]; }); } diff --git a/src/plugins/Mys/utils/getGachaCard.ts b/src/plugins/Mys/utils/getGachaCard.ts index b7a8d979..64fba5ee 100644 --- a/src/plugins/Mys/utils/getGachaCard.ts +++ b/src/plugins/Mys/utils/getGachaCard.ts @@ -4,8 +4,8 @@ * @since Beta v0.4.4 */ -import { AppCharacterData } from "../../../data"; -import getPostData from "../request/getPostData"; +import { AppCharacterData } from "../../../data/index.js"; +import getPostData from "../request/getPostData.js"; /** * @description 根据单个卡池信息转为渲染用的卡池信息 diff --git a/src/plugins/Mys/utils/getPositionCard.ts b/src/plugins/Mys/utils/getPositionCard.ts index 259849a8..77418dac 100644 --- a/src/plugins/Mys/utils/getPositionCard.ts +++ b/src/plugins/Mys/utils/getPositionCard.ts @@ -1,13 +1,12 @@ /** - * @file plugins Mys utils getPositionCard.ts + * @file plugins/Mys/utils/getPositionCard.ts * @description Mys 插件热点追踪工具 - * @author BTMuli - * @since Alpha v0.2.1 + * @since Beta v0.4.10 */ /** * @description 根据热点追踪信息转为渲染用的数据 - * @since Alpha v0.1.5 + * @since Beta v0.4.10 * @param {TGApp.Plugins.Mys.Position.Data[]} positionData 列表 * @returns {TGApp.Plugins.Mys.Position.RenderCard[]} 返回列表 */ @@ -15,14 +14,14 @@ function getPositionCard( positionData: TGApp.Plugins.Mys.Position.Data[], ): TGApp.Plugins.Mys.Position.RenderCard[] { const res: TGApp.Plugins.Mys.Position.RenderCard[] = []; - positionData.map((position) => { + for (const position of positionData) { let endStr: string; if (position.end_time === "0") { endStr = ""; } else { endStr = new Date(Number(position.end_time)).toLocaleDateString().replace(/\//g, "-"); } - return res.push({ + const card: TGApp.Plugins.Mys.Position.RenderCard = { title: position.title, postId: Number(position.url.split("/").pop()), icon: position.icon, @@ -33,8 +32,9 @@ function getPositionCard( end: endStr, endStamp: Number(position.end_time), }, - }); - }); + }; + res.push(card); + } return res; } diff --git a/src/plugins/Sqlite/modules/userAchi.ts b/src/plugins/Sqlite/modules/userAchi.ts index 1b9e3589..9565fde2 100644 --- a/src/plugins/Sqlite/modules/userAchi.ts +++ b/src/plugins/Sqlite/modules/userAchi.ts @@ -5,8 +5,8 @@ */ import { getUiafStatus } from "../../../utils/UIAF.js"; -import TGSqlite from "../index"; -import { importUIAFData } from "../sql/updateData"; +import TGSqlite from "../index.js"; +import { importUIAFData } from "../sql/updateData.js"; /** * @description 获取成就概况 @@ -15,7 +15,7 @@ import { importUIAFData } from "../sql/updateData"; */ async function getOverview(): Promise { const db = await TGSqlite.getDB(); - const res = await db.select( + const res = await db.select( "SELECT SUM(totalCount) as total,SUM(finCount) AS fin From AchievementSeries", ); return res[0]; @@ -29,7 +29,7 @@ async function getOverview(): Promise { async function getLatestAchiVersion(): Promise { const db = await TGSqlite.getDB(); type resType = { version: string }; - const res = await db.select( + const res = await db.select( "SELECT version FROM Achievements ORDER BY version DESC LIMIT 1;", ); return res[0].version; @@ -45,11 +45,11 @@ async function getSeries(id?: number): Promise( + res = await db.select( "SELECT * FROM AchievementSeries ORDER BY `order`;", ); } else { - res = await db.select( + res = await db.select( "SELECT * FROM AchievementSeries WHERE id = ?;", [id], ); @@ -67,11 +67,11 @@ async function getAchievements(id?: string): Promise( + res = await db.select( "SELECT * FROM Achievements ORDER BY isCompleted,`order`;", ); } else { - res = await db.select( + res = await db.select( "SELECT * FROM Achievements WHERE series = ? ORDER BY isCompleted,`order`;", [id], ); @@ -88,7 +88,7 @@ async function getAchievements(id?: string): Promise { const db = await TGSqlite.getDB(); type resType = { nameCard: string }; - const res = await db.select("SELECT nameCard FROM AchievementSeries WHERE id = ?;", [ + const res = await db.select("SELECT nameCard FROM AchievementSeries WHERE id = ?;", [ id, ]); return res[0].nameCard; @@ -108,12 +108,12 @@ async function searchAchievements( const versionReg = /^v\d+(\.\d+)?$/; if (versionReg.test(keyword)) { const version = keyword.replace("v", ""); - return await db.select( + return await db.select( "SELECT * FROM Achievements WHERE version LIKE ? ORDER BY isCompleted,`order`;", [`%${version}%`], ); } - return await db.select( + return await db.select( "SELECT * FROM Achievements WHERE name LIKE ? OR description LIKE ? ORDER BY isCompleted,`order`;", [`%${keyword}%`, `%${keyword}%`], ); @@ -160,9 +160,11 @@ function transDb2Uiaf(data: TGApp.Sqlite.Achievement.SingleTable): TGApp.Plugins */ async function getUIAF(): Promise { const db = await TGSqlite.getDB(); - const data = await db.select("SELECT * FROM Achievements;"); + const data = await db.select( + "SELECT * FROM Achievements;", + ); const res: TGApp.Plugins.UIAF.Achievement[] = []; - for (const item: TGApp.Sqlite.Achievement.SingleTable of data) { + for (const item of data) { res.push(transDb2Uiaf(item)); } return res; diff --git a/src/plugins/Sqlite/modules/userCollect.ts b/src/plugins/Sqlite/modules/userCollect.ts index e5da7be1..192a7f35 100644 --- a/src/plugins/Sqlite/modules/userCollect.ts +++ b/src/plugins/Sqlite/modules/userCollect.ts @@ -4,7 +4,7 @@ * @since Beta v0.4.5 */ -import TGSqlite from "../index"; +import TGSqlite from "../index.js"; /** * @description 获取单个帖子的收藏信息 diff --git a/src/plugins/Sqlite/sql/updateData.ts b/src/plugins/Sqlite/sql/updateData.ts index a4bf47b9..19eeca59 100644 --- a/src/plugins/Sqlite/sql/updateData.ts +++ b/src/plugins/Sqlite/sql/updateData.ts @@ -4,7 +4,7 @@ * @since Beta v0.4.9 */ -import minifySql from "../../../utils/minifySql"; +import minifySql from "../../../utils/minifySql.js"; /** * @description 导入UIAF数据-单项 @@ -12,7 +12,7 @@ import minifySql from "../../../utils/minifySql"; * @param {TGApp.Plugins.UIAF.Achievement} data * @returns {string} sql */ -export function importUIAFData(data: TGApp.Plugins.UIAF.Achievement): string[] { +export function importUIAFData(data: TGApp.Plugins.UIAF.Achievement): string { let sql; const isCompleted = data.status === 2 || data.status === 3; if (isCompleted) { diff --git a/src/router/index.ts b/src/router/index.ts index 84e9ce9c..29f49e0f 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -6,7 +6,7 @@ import { createRouter, createWebHistory } from "vue-router"; -import routes from "./routes"; +import routes from "./routes.js"; const router = createRouter({ history: createWebHistory(), diff --git a/src/router/routes.ts b/src/router/routes.ts index 4515f731..2b0ac3f5 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -4,11 +4,11 @@ * @since Beta v0.4.4 */ -import archiveRoutes from "./modules/archive"; -import mainRoutes from "./modules/main"; -import subRoutes from "./modules/sub"; -import userRoutes from "./modules/user"; -import wikiRoutes from "./modules/wiki"; +import archiveRoutes from "./modules/archive.js"; +import mainRoutes from "./modules/main.js"; +import subRoutes from "./modules/sub.js"; +import userRoutes from "./modules/user.js"; +import wikiRoutes from "./modules/wiki.js"; // 合并路由 const routes = [...mainRoutes, ...subRoutes, ...archiveRoutes, ...wikiRoutes, ...userRoutes]; diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts index 53554e75..5bb88112 100644 --- a/src/store/modules/app.ts +++ b/src/store/modules/app.ts @@ -8,8 +8,8 @@ import { path } from "@tauri-apps/api"; import { defineStore } from "pinia"; import { reactive, ref } from "vue"; -import { getInitDeviceInfo } from "../../utils/toolFunc"; -import { type AnnoLang, AnnoServer } from "../../web/request/getAnno"; +import { getInitDeviceInfo } from "../../utils/toolFunc.js"; +import { type AnnoLang, AnnoServer } from "../../web/request/getAnno.js"; // 用于存储用户数据的路径 const userDataDir = `${await path.appLocalDataDir()}userData`; diff --git a/src/utils/TGClient.ts b/src/utils/TGClient.ts index 6b7f58f2..d11ac61b 100644 --- a/src/utils/TGClient.ts +++ b/src/utils/TGClient.ts @@ -9,19 +9,19 @@ import type { Event } from "@tauri-apps/api/event"; import type { UnlistenFn } from "@tauri-apps/api/helpers/event"; import { appWindow, WebviewWindow } from "@tauri-apps/api/window"; -import showSnackbar from "../components/func/snackbar"; -import TGSqlite from "../plugins/Sqlite"; -import { useAppStore } from "../store/modules/app"; -import { useUserStore } from "../store/modules/user"; -import TGConstant from "../web/constant/TGConstant"; -import { getCookieTokenBySToken } from "../web/request/getCookieToken"; -import TGRequest from "../web/request/TGRequest"; -import { getDS4JS } from "../web/utils/getRequestHeader"; +import showSnackbar from "../components/func/snackbar.js"; +import TGSqlite from "../plugins/Sqlite/index.js"; +import { useAppStore } from "../store/modules/app.js"; +import { useUserStore } from "../store/modules/user.js"; +import TGConstant from "../web/constant/TGConstant.js"; +import { getCookieTokenBySToken } from "../web/request/getCookieToken.js"; +import TGRequest from "../web/request/TGRequest.js"; +import { getDS4JS } from "../web/utils/getRequestHeader.js"; -import { parseLink } from "./linkParser"; -import TGLogger from "./TGLogger"; -import { createPost } from "./TGWindow"; -import { getDeviceInfo } from "./toolFunc"; +import { parseLink } from "./linkParser.js"; +import TGLogger from "./TGLogger.js"; +import { createPost } from "./TGWindow.js"; +import { getDeviceInfo } from "./toolFunc.js"; // invoke 参数 interface InvokeArg { diff --git a/src/utils/TGShare.ts b/src/utils/TGShare.ts index f57bea27..b0d65f59 100644 --- a/src/utils/TGShare.ts +++ b/src/utils/TGShare.ts @@ -7,11 +7,11 @@ import { dialog, fs, http, path } from "@tauri-apps/api"; import html2canvas from "html2canvas"; -import showConfirm from "../components/func/confirm"; -import showSnackbar from "../components/func/snackbar"; +import showConfirm from "../components/func/confirm.js"; +import showSnackbar from "../components/func/snackbar.js"; -import TGLogger from "./TGLogger"; -import { bytesToSize } from "./toolFunc"; +import TGLogger from "./TGLogger.js"; +import { bytesToSize } from "./toolFunc.js"; /** * @description 保存图片-canvas diff --git a/src/utils/TGWindow.ts b/src/utils/TGWindow.ts index cdbb9e8e..cea11f07 100644 --- a/src/utils/TGWindow.ts +++ b/src/utils/TGWindow.ts @@ -7,7 +7,7 @@ import { invoke, window as TauriWindow } from "@tauri-apps/api"; import type { WindowOptions } from "@tauri-apps/api/window"; -import TGLogger from "./TGLogger"; +import TGLogger from "./TGLogger.js"; /** * @description 创建TG窗口 @@ -50,7 +50,7 @@ export function createTGWindow( .then(() => { createTGWindow(url, label, title, width, height, resizable, visible); }) - .catch((err) => { + .catch((err: unknown) => { console.error(err); }); } else { @@ -61,11 +61,11 @@ export function createTGWindow( .then(() => { console.log(`[createTGWindow][${label}] ${title} created.`); }) - .catch((err) => { + .catch((err: unknown) => { console.error(err); }); }) - .catch((err) => { + .catch((err: unknown) => { console.error(err); }); } diff --git a/src/utils/UIAF.ts b/src/utils/UIAF.ts index 18e73f54..4d4304fa 100644 --- a/src/utils/UIAF.ts +++ b/src/utils/UIAF.ts @@ -59,6 +59,7 @@ export async function verifyUiafData(path: string): Promise { try { const fileJson = JSON.parse(fileData); if (!validate(fileJson)) { + if (validate.errors === undefined || validate.errors === null) return false; const error: ErrorObject = validate.errors[0]; showSnackbar({ text: `${error.instancePath || error.schemaPath} ${error.message}`, @@ -89,6 +90,7 @@ export async function verifyUiafDataClipboard(): Promise { try { const fileJson = JSON.parse(data); if (!validate(fileJson)) { + if (validate.errors === undefined || validate.errors === null) return false; const error: ErrorObject = validate.errors[0]; showSnackbar({ text: `${error.instancePath || error.schemaPath} ${error.message}`, diff --git a/src/utils/UIGF.ts b/src/utils/UIGF.ts index 9950a4ed..7a0df639 100644 --- a/src/utils/UIGF.ts +++ b/src/utils/UIGF.ts @@ -12,7 +12,7 @@ import showSnackbar from "../components/func/snackbar.js"; import { UigfSchema } from "../data/index.js"; import TGLogger from "./TGLogger.js"; -import { timestampToDate } from "./toolFunc"; +import { timestampToDate } from "./toolFunc.js"; /** * @description 获取 UIGF 时区 @@ -83,6 +83,7 @@ export async function verifyUigfData(path: string): Promise { try { const fileJson = JSON.parse(fileData); if (!validate(fileJson)) { + if (!validate.errors || validate.errors.length === 0) return false; const error: ErrorObject = validate.errors[0]; showSnackbar({ text: `${error.instancePath || error.schemaPath} ${error.message}`, diff --git a/src/utils/linkParser.ts b/src/utils/linkParser.ts index 553cbb81..e82b5f39 100644 --- a/src/utils/linkParser.ts +++ b/src/utils/linkParser.ts @@ -6,11 +6,11 @@ import { emit } from "@tauri-apps/api/event"; -import showConfirm from "../components/func/confirm"; -import showSnackbar from "../components/func/snackbar"; +import showConfirm from "../components/func/confirm.js"; +import showSnackbar from "../components/func/snackbar.js"; -import TGClient from "./TGClient"; -import { createPost } from "./TGWindow"; +import TGClient from "./TGClient.js"; +import { createPost } from "./TGWindow.js"; /** * @function parsePost diff --git a/src/utils/toolFunc.ts b/src/utils/toolFunc.ts index d76ac216..1577a1fd 100644 --- a/src/utils/toolFunc.ts +++ b/src/utils/toolFunc.ts @@ -6,7 +6,7 @@ import { os, path } from "@tauri-apps/api"; import colorConvert from "color-convert"; -import type { KEYWORD } from "color-convert/conversions"; +import type { KEYWORD } from "color-convert/conversions.js"; import { v4 } from "uuid"; import { score } from "wcag-color"; diff --git a/src/views/t-anno-json.vue b/src/views/t-anno-json.vue index 214a4496..6f8237d5 100644 --- a/src/views/t-anno-json.vue +++ b/src/views/t-anno-json.vue @@ -16,8 +16,8 @@ import { useRoute } from "vue-router"; import TSwitchTheme from "../components/app/t-switchTheme.vue"; import ToLoading from "../components/overlay/to-loading.vue"; -import { AnnoLang, AnnoServer } from "../web/request/getAnno"; -import TGRequest from "../web/request/TGRequest"; +import { AnnoLang, AnnoServer } from "../web/request/getAnno.js"; +import TGRequest from "../web/request/TGRequest.js"; // loading const loading = ref(true); diff --git a/src/views/t-anno.vue b/src/views/t-anno.vue index a763add9..d2a2c917 100644 --- a/src/views/t-anno.vue +++ b/src/views/t-anno.vue @@ -30,13 +30,13 @@ import { useRoute } from "vue-router"; import TSwitchTheme from "../components/app/t-switchTheme.vue"; import TShareBtn from "../components/main/t-shareBtn.vue"; import ToLoading from "../components/overlay/to-loading.vue"; -import { useAppStore } from "../store/modules/app"; -import TGLogger from "../utils/TGLogger"; -import { saveImgLocal } from "../utils/TGShare"; -import { createTGWindow } from "../utils/TGWindow"; -import { AnnoLang, AnnoServer } from "../web/request/getAnno"; -import TGRequest from "../web/request/TGRequest"; -import TGUtils from "../web/utils/TGUtils"; +import { useAppStore } from "../store/modules/app.js"; +import TGLogger from "../utils/TGLogger.js"; +import { saveImgLocal } from "../utils/TGShare.js"; +import { createTGWindow } from "../utils/TGWindow.js"; +import { AnnoLang, AnnoServer } from "../web/request/getAnno.js"; +import TGRequest from "../web/request/TGRequest.js"; +import TGUtils from "../web/utils/TGUtils.js"; // loading const loading = ref(true); diff --git a/src/views/t-post-json.vue b/src/views/t-post-json.vue index 98123f58..babdd977 100644 --- a/src/views/t-post-json.vue +++ b/src/views/t-post-json.vue @@ -16,7 +16,7 @@ import { useRoute } from "vue-router"; import TSwitchTheme from "../components/app/t-switchTheme.vue"; import ToLoading from "../components/overlay/to-loading.vue"; -import Mys from "../plugins/Mys"; +import Mys from "../plugins/Mys/index.js"; // loading const loading = ref(true); diff --git a/src/views/t-post.vue b/src/views/t-post.vue index f31c91e4..4b0ca2cb 100644 --- a/src/views/t-post.vue +++ b/src/views/t-post.vue @@ -93,11 +93,11 @@ import TbCollect from "../components/post/tb-collect.vue"; import TpAvatar from "../components/post/tp-avatar.vue"; import TpParser from "../components/post/tp-parser.vue"; import TpoCollection from "../components/post/tpo-collection.vue"; -import Mys from "../plugins/Mys"; -import { useAppStore } from "../store/modules/app"; -import TGClient from "../utils/TGClient"; -import TGLogger from "../utils/TGLogger"; -import { createTGWindow } from "../utils/TGWindow"; +import Mys from "../plugins/Mys/index.js"; +import { useAppStore } from "../store/modules/app.js"; +import TGClient from "../utils/TGClient.js"; +import TGLogger from "../utils/TGLogger.js"; +import { createTGWindow } from "../utils/TGWindow.js"; // loading const loading = ref(true); diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 9efe5c33..bf3b255b 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -47,5 +47,4 @@ interface ImportMetaEnv { declare interface ImportMeta { readonly env: ImportMetaEnv; - readonly glob: (path: string) => Record Promise>; } diff --git a/src/web/api/TGApi.ts b/src/web/api/TGApi.ts index dc42a82a..19736283 100644 --- a/src/web/api/TGApi.ts +++ b/src/web/api/TGApi.ts @@ -5,9 +5,9 @@ * @since Beta v0.3.2 */ -import { BBSUserInfoApi } from "./BBS"; -import { ENKA_API } from "./ENKA"; -import { PassportTokenApi, PassportCookieTokenApi, PassportVerifyApi } from "./Passport"; +import { BBSUserInfoApi } from "./BBS.js"; +import { ENKA_API } from "./ENKA.js"; +import { PassportTokenApi, PassportCookieTokenApi, PassportVerifyApi } from "./Passport.js"; import { TakumiTokensApi, TakumiRecordCardApi, @@ -19,7 +19,7 @@ import { TakumiCookieBindingRolesApi, TakumiCalculateSyncAvatarListApi, TakumiCalculateSyncAvatarDetailApi, -} from "./Takumi"; +} from "./Takumi.js"; // 应用 API const TGApi = { diff --git a/src/web/constant/TGConstant.ts b/src/web/constant/TGConstant.ts index 02122b95..7f2a6abe 100644 --- a/src/web/constant/TGConstant.ts +++ b/src/web/constant/TGConstant.ts @@ -4,9 +4,9 @@ * @since Beta v0.3.6 */ -import { BBS_APP_ID, BBS_SALT, BBS_UA_MOBILE, BBS_UA_PC, BBS_VERSION } from "./bbs"; -import SERVER from "./server"; -import { GAME_BIZ } from "./utils"; +import { BBS_APP_ID, BBS_SALT, BBS_UA_MOBILE, BBS_UA_PC, BBS_VERSION } from "./bbs.js"; +import SERVER from "./server.js"; +import { GAME_BIZ } from "./utils.js"; const TGConstant = { BBS: { diff --git a/src/web/request/TGRequest.ts b/src/web/request/TGRequest.ts index dce7903b..51e9c612 100644 --- a/src/web/request/TGRequest.ts +++ b/src/web/request/TGRequest.ts @@ -4,25 +4,25 @@ * @since Beta v0.4.5 */ -import { genAuthkey, genAuthkey2 } from "./genAuthkey"; -import { getAbyss } from "./getAbyss"; -import { getActionTicketBySToken } from "./getActionTicket"; -import { getAnnoContent, getAnnoList } from "./getAnno"; -import { getCookieTokenByGameToken, getCookieTokenBySToken } from "./getCookieToken"; -import { getDeviceFp } from "./getDeviceFp"; +import { genAuthkey, genAuthkey2 } from "./genAuthkey.js"; +import { getAbyss } from "./getAbyss.js"; +import { getActionTicketBySToken } from "./getActionTicket.js"; +import { getAnnoContent, getAnnoList } from "./getAnno.js"; +import { getCookieTokenByGameToken, getCookieTokenBySToken } from "./getCookieToken.js"; +import { getDeviceFp } from "./getDeviceFp.js"; // import * from "./getEnkaData.ts"; -import { getGachaLog } from "./getGachaLog"; -import { getGameAccountsByCookie, getGameAccountsBySToken } from "./getGameAccounts"; -import { getGameRecord } from "./getGameRecord"; -import { getLTokenBySToken } from "./getLToken"; -import { getGameRoleListByLToken } from "./getRoleList"; -import { getStokenByGameToken, getTokenBySToken } from "./getStoken"; -import getSyncAvatarDetail from "./getSyncAvatarDetail"; -import getSyncAvatarListAll from "./getSyncAvatarListAll"; -import { getTokensByLoginTicket } from "./getTokens"; -import { getUserCollect } from "./getUserCollect"; -import { getUserInfoByCookie } from "./getUserInfo"; -import { verifyLToken } from "./verifyLToken"; +import { getGachaLog } from "./getGachaLog.js"; +import { getGameAccountsByCookie, getGameAccountsBySToken } from "./getGameAccounts.js"; +import { getGameRecord } from "./getGameRecord.js"; +import { getLTokenBySToken } from "./getLToken.js"; +import { getGameRoleListByLToken } from "./getRoleList.js"; +import { getStokenByGameToken, getTokenBySToken } from "./getStoken.js"; +import getSyncAvatarDetail from "./getSyncAvatarDetail.js"; +import getSyncAvatarListAll from "./getSyncAvatarListAll.js"; +import { getTokensByLoginTicket } from "./getTokens.js"; +import { getUserCollect } from "./getUserCollect.js"; +import { getUserInfoByCookie } from "./getUserInfo.js"; +import { verifyLToken } from "./verifyLToken.js"; const TGRequest = { Anno: { diff --git a/src/web/request/getTokens.ts b/src/web/request/getTokens.ts index 2ae3a122..8eec179c 100644 --- a/src/web/request/getTokens.ts +++ b/src/web/request/getTokens.ts @@ -5,12 +5,13 @@ */ import { http } from "@tauri-apps/api"; +import { Response } from "@tauri-apps/api/http"; -import TGApi from "../api/TGApi"; -import TGUtils from "../utils/TGUtils"; +import TGApi from "../api/TGApi.js"; +import TGUtils from "../utils/TGUtils.js"; /** - * @description 根据 login_ticket 获取游戏 Token,包括 stoken 和 ltoken + * @description 根据 login_ticket 获取游戏 Token,包括 sToken 和 lToken * @since Beta v0.4.3 * @param {string} ticket 登录票证 * @param {string} uid 登录用户 uid @@ -20,23 +21,15 @@ export async function getTokensByLoginTicket( ticket: string, uid: string, ): Promise { - const cookie = { - login_ticket: ticket, - login_uid: uid, - }; + const cookie = { login_ticket: ticket, login_uid: uid }; const url = TGApi.GameTokens.getTokens; - const params = { login_ticket: ticket, token_types: "3", uid }; const header = TGUtils.User.getHeader(cookie, "GET", params, "common"); return await http - .fetch(url, { - method: "GET", - headers: header, - query: params, - }) - .then((res) => { + .fetch(url, { method: "GET", headers: header, query: params }) + .then((res: Response) => { console.log(res); - if (res.data.retcode !== 0) return res.data; + if (res.data.retcode !== 0) return res.data; return res.data.data.list; }); } diff --git a/src/web/request/getUserInfo.ts b/src/web/request/getUserInfo.ts index 98c6e905..b008f77e 100644 --- a/src/web/request/getUserInfo.ts +++ b/src/web/request/getUserInfo.ts @@ -5,9 +5,10 @@ */ import { http } from "@tauri-apps/api"; +import type { Response } from "@tauri-apps/api/http"; -import TGApi from "../api/TGApi"; -import TGUtils from "../utils/TGUtils"; +import TGApi from "../api/TGApi.js"; +import TGUtils from "../utils/TGUtils.js"; /** * @description 根据 cookie 获取用户信息 @@ -28,12 +29,8 @@ export async function getUserInfoByCookie( const params = { gids: "2" }; const header = TGUtils.User.getHeader(cookie, "GET", params, "common", true); return await http - .fetch(url, { - method: "GET", - headers: header, - query: params, - }) - .then((res) => { + .fetch(url, { method: "GET", headers: header, query: params }) + .then((res: Response) => { if (res.data.retcode !== 0) return res.data; return res.data.data.user_info; }); diff --git a/src/web/request/verifyLToken.ts b/src/web/request/verifyLToken.ts index e0680b3d..a92f7bac 100644 --- a/src/web/request/verifyLToken.ts +++ b/src/web/request/verifyLToken.ts @@ -5,9 +5,10 @@ */ import { http } from "@tauri-apps/api"; +import type { Response } from "@tauri-apps/api/http"; -import TGApi from "../api/TGApi"; -import TGUtils from "../utils/TGUtils"; +import TGApi from "../api/TGApi.js"; +import TGUtils from "../utils/TGUtils.js"; /** * @description 验证 ltoken 有效性,返回 mid @@ -21,20 +22,13 @@ export async function verifyLToken( ltuid: string, ): Promise { const url = TGApi.GameTokens.verifyLToken; - const cookie = { - ltoken, - ltuid, - }; + const cookie = { ltoken, ltuid }; const data = { ltoken }; const header = TGUtils.User.getHeader(cookie, "POST", data, "common"); return await http - .fetch(url, { - method: "POST", - headers: header, - body: http.Body.json(data), - }) - .then((res) => { - if (res.data.retcode !== 0) return res.data; + .fetch(url, { method: "POST", headers: header, body: http.Body.json(data) }) + .then((res: Response) => { + if (res.data.retcode !== 0) return res.data; return res.data.data.user_info.mid; }); } diff --git a/src/web/utils/TGUtils.ts b/src/web/utils/TGUtils.ts index d48bf6d3..75926ef8 100644 --- a/src/web/utils/TGUtils.ts +++ b/src/web/utils/TGUtils.ts @@ -4,10 +4,10 @@ * @since Beta v0.3.4 */ -import { getAnnoCard } from "./getAnnoCard"; -import { getRequestHeader } from "./getRequestHeader"; -import { parseAnnoContent } from "./parseAnno"; -import { getServerByUid, transCookie } from "./tools"; +import { getAnnoCard } from "./getAnnoCard.js"; +import { getRequestHeader } from "./getRequestHeader.js"; +import { parseAnnoContent } from "./parseAnno.js"; +import { getServerByUid, transCookie } from "./tools.js"; const TGUtils = { Anno: { diff --git a/src/web/utils/getRequestHeader.ts b/src/web/utils/getRequestHeader.ts index 29f84d93..418e01f3 100644 --- a/src/web/utils/getRequestHeader.ts +++ b/src/web/utils/getRequestHeader.ts @@ -6,10 +6,10 @@ import Md5 from "js-md5"; -import { getDeviceInfo, getRandomString } from "../../utils/toolFunc"; -import TGConstant from "../constant/TGConstant"; +import { getDeviceInfo, getRandomString } from "../../utils/toolFunc.js"; +import TGConstant from "../constant/TGConstant.js"; -import { transCookie, transParams } from "./tools"; +import { transCookie, transParams } from "./tools.js"; /** * @description 获取 salt diff --git a/src/web/utils/parseAnno.ts b/src/web/utils/parseAnno.ts index 5b6b336d..80f6b472 100644 --- a/src/web/utils/parseAnno.ts +++ b/src/web/utils/parseAnno.ts @@ -4,10 +4,10 @@ * @since Beta v0.4.7 */ -import { saveImgLocal } from "../../utils/TGShare"; -import { isColorSimilar } from "../../utils/toolFunc"; +import { saveImgLocal } from "../../utils/TGShare.js"; +import { isColorSimilar } from "../../utils/toolFunc.js"; -import { decodeRegExp } from "./tools"; +import { decodeRegExp } from "./tools.js"; /** * @description 解析 a