diff --git a/src/core/request/TGRequest.ts b/src/core/request/TGRequest.ts index bc867218..87743feb 100644 --- a/src/core/request/TGRequest.ts +++ b/src/core/request/TGRequest.ts @@ -2,16 +2,20 @@ * @file core request TGRequest.ts * @description 应用用到的请求函数 * @author BTMuli - * @since Alpha v0.1.2 + * @since Alpha v0.2.0 */ import { getAnnoList, getAnnoContent } from "./getAnno"; +import { getTokens } from "./getTokens"; const TGRequest = { Anno: { getList: getAnnoList, getContent: getAnnoContent, }, + User: { + getTokens, + }, }; export default TGRequest; diff --git a/src/core/request/getTokens.ts b/src/core/request/getTokens.ts index a6daa2ec..8de2c1ee 100644 --- a/src/core/request/getTokens.ts +++ b/src/core/request/getTokens.ts @@ -2,21 +2,24 @@ * @file core request getTokens.ts * @description 获取游戏 Token * @author BTMuli - * @since Alpha v0.1.3 + * @since Alpha v0.2.0 */ +// tauri import { http } from "@tauri-apps/api"; +// api import TGApi from "../api/TGApi"; +// utils import { getRequestHeader } from "../utils/getRequestHeader"; -export async function getTokens (cookie: Record): Promise { +export async function getTokens (cookie: BTMuli.User.Base.Cookie): Promise { const url = `${TGApi.GameTokens}?login_ticket=${cookie.login_ticket}&token_types=3&uid=${cookie.login_uid}`; const header = getRequestHeader(cookie); - return await http.fetch(url, { + return await http.fetch(url, { method: "GET", headers: header, }).then((res) => { - console.log(res.data); - return res.data; + if (res.data.retcode !== 0) return res.data; + return res.data.data.list; }); } diff --git a/src/core/utils/getRequestHeader.ts b/src/core/utils/getRequestHeader.ts index 8bf3d87a..71999c3b 100644 --- a/src/core/utils/getRequestHeader.ts +++ b/src/core/utils/getRequestHeader.ts @@ -2,10 +2,10 @@ * @file core utils getRequestHeader.ts * @description 获取请求头 * @author BTMuli - * @since Alpha v0.1.3 + * @since Alpha v0.2.0 */ -export function getRequestHeader (cookie: Record): Record { +export function getRequestHeader (cookie: BTMuli.User.Base.Cookie): Record { const header = { "User-Agent": "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.34 Tauri.Genshin/0.1.2", "x-rpc-app_version": "2.0.0", diff --git a/src/pages/User.vue b/src/pages/User.vue index b2bfefdc..71ab6174 100644 --- a/src/pages/User.vue +++ b/src/pages/User.vue @@ -1,6 +1,65 @@ - + diff --git a/src/types/UserRequest.d.ts b/src/types/UserRequest.d.ts new file mode 100644 index 00000000..57bedcf6 --- /dev/null +++ b/src/types/UserRequest.d.ts @@ -0,0 +1,66 @@ +/** + * @file types UserRequest.d.ts + * @description 用户请求相关类型定义文件 + * @author BTMuli + * @since Alpha v0.2.0 + */ + +declare namespace BTMuli.User.Base { + /** + * @description 用户 cookie 类型 + * @since Alpha v0.2.0 + * @description 这边只写了需要的,其他的可以自行添加 + * @interface Cookie + * @property {string} login_ticket 登录凭证 + * @property {string} login_uid 登录 UID + * @property {string} DEVICEFP 设备指纹 + * @returns Cookie + */ + export interface Cookie { + login_ticket: string + login_uid: string + DEVICEFP: string + } + + /** + * @description 游戏 Token + * @since Alpha v0.2.0 + * @interface TokenItem + * @property {TokenType} name 游戏 Token 名称 + * @property {string} token 游戏 Token + * @returns TokenItem + */ + export interface TokenItem { + name: TokenType + token: string + } + + /** + * @description 游戏 Token 类型 + * @since Alpha v0.2.0 + * @enum {string} + * @property {string} ltoken longTime Token + * @property {string} stoken shortTime Token + * @returns string + */ + export enum TokenType { + LToken = "ltoken", + SToken = "stoken", + } +} + +declare namespace BTMuli.User.Response { + /** + * @description 获取 ltoken 跟 stoken 的响应 + * @since Alpha v0.2.0 + * @interface Token + * @extends {BTMuli.Genshin.Base.Response} + * @property {TokenItem[]} data.list 游戏 Token + * @returns {Token} + */ + export interface Token extends BTMuli.Genshin.Base.Response { + data: { + list: TokenItem[] + } + } +} diff --git a/src/utils/TGSqlite.ts b/src/utils/TGSqlite.ts index 19c7927c..a33d4079 100644 --- a/src/utils/TGSqlite.ts +++ b/src/utils/TGSqlite.ts @@ -98,6 +98,24 @@ class TGSqlite { return res[0].value; } + /** + * @description 保存 appData + * @memberof TGSqlite + * @since Alpha v0.2.0 + * @param {string} key + * @param {string} value + * @returns {Promise} + */ + public async saveAppData (key: string, value: string): Promise { + const db = await Database.load(this.dbPath); + const sql = ` + INSERT INTO AppData (key, value, updated) + VALUES ('${key}', '${value}', datetime('now', 'localtime')) + ON CONFLICT(key) DO UPDATE SET value = '${value}', updated = datetime('now', 'localtime');`; + await db.execute(sql); + await db.close(); + } + /** * @description 已有数据表跟触发器不变的情况下,更新数据库数据 * @memberof TGSqlite