mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2026-03-26 05:39:45 +08:00
✨ 添加getRegionRoleInfo事件处理
This commit is contained in:
@@ -1,27 +1,26 @@
|
||||
/**
|
||||
* @file utils/TGBbs.ts
|
||||
* @description 关于 BBS 的工具函数
|
||||
* @since Beta v0.8.0
|
||||
* 关于 BBS 的工具函数
|
||||
* @since Beta v0.8.4
|
||||
*/
|
||||
|
||||
/**
|
||||
* @description salt 类型
|
||||
* @since Beta v0.7.3
|
||||
* salt 类型
|
||||
* @since Beta v0.8.4
|
||||
*/
|
||||
export type SaltKey = "K2" | "LK2" | "X4" | "X6" | "PROD";
|
||||
|
||||
const BBS_VERSION: Readonly<string> = "2.93.0";
|
||||
const BBS_VERSION: Readonly<string> = "2.95.1";
|
||||
const BBS_UA_MOBILE: Readonly<string> = `Mozilla/5.0 (Linux; Android 12) Mobile miHoYoBBS/${BBS_VERSION}`;
|
||||
const BBS_UA_PC: Readonly<string> = `Mozilla/5.0 (Windows NT 10.0; Win64; x64) miHoYoBBS/${BBS_VERSION}`;
|
||||
|
||||
/**
|
||||
* @description salt 值
|
||||
* @version 2.93.0
|
||||
* @since Beta v0.8.0
|
||||
* salt 值
|
||||
* @version 2.95.1
|
||||
* @since Beta v0.8.4
|
||||
*/
|
||||
const BBS_SALT: Readonly<Record<SaltKey, string>> = {
|
||||
K2: "idMMaGYmVgPzh3wxmWudUXKUPGidO7GM",
|
||||
LK2: "G1ktdwFL4IyGkHuuWSmz0wUe9Db9scyK",
|
||||
K2: "sfYPEgpxkOe1I3XVMLdwp1Lyt9ORgZsq",
|
||||
LK2: "sidQFEglajEz7FA0Aj7HQPV88zpf17SO",
|
||||
X4: "xV8v4Qu54lUKrEYFZkJhB8cuOh9Asafs",
|
||||
X6: "t0qEgfub6cvueAPgR5m9aQWWVciEer7v",
|
||||
PROD: "t0qEgfub6cvueAPgR5m9aQWWVciEer7v",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/**
|
||||
* @file utils/TGClient.ts
|
||||
* @desc 负责米游社客户端的 callback 处理
|
||||
* 负责米游社客户端的 callback 处理
|
||||
* @since Beta v0.8.3
|
||||
*/
|
||||
|
||||
@@ -23,9 +22,6 @@ import TGLogger from "./TGLogger.js";
|
||||
import { createPost } from "./TGWindow.js";
|
||||
import { getDeviceInfo } from "./toolFunc.js";
|
||||
|
||||
// invoke 参数
|
||||
type InvokeArg = { func: string };
|
||||
|
||||
class Client {
|
||||
private listener: UnlistenFn | undefined;
|
||||
private route: string[] = [];
|
||||
@@ -43,10 +39,9 @@ class Client {
|
||||
}
|
||||
|
||||
/**
|
||||
* @func run
|
||||
* 运行米游社客户端
|
||||
* @since Beta v0.3.4
|
||||
* @desc 运行米游社客户端
|
||||
* @returns {void} - 无返回值
|
||||
* @returns Promise<void>
|
||||
*/
|
||||
async run(): Promise<void> {
|
||||
if (this.listener === undefined) {
|
||||
@@ -58,15 +53,12 @@ class Client {
|
||||
}
|
||||
}
|
||||
|
||||
/* 内置函数 */
|
||||
|
||||
/**
|
||||
* @func callback
|
||||
* 回调函数
|
||||
* @since Beta v0.5.0
|
||||
* @desc 回调函数
|
||||
* @param {string} callback - 回调函数名
|
||||
* @param {object} data - 回调数据
|
||||
* @returns {void} - 无返回值
|
||||
* @returns Promise<void>
|
||||
*/
|
||||
async callback(callback: string, data: object): Promise<void> {
|
||||
const response = { retcode: 0, message: "success", data: data ?? {} };
|
||||
@@ -76,12 +68,11 @@ class Client {
|
||||
}
|
||||
|
||||
/**
|
||||
* @func getSaveImgJS
|
||||
* 获取保存图片的 JS
|
||||
* @since Beta v0.5.1
|
||||
* @desc 获取保存图片的 JS
|
||||
* @param {string} url - 图片链接
|
||||
* @param {string} format - 图片格式
|
||||
* @returns {string} - JS
|
||||
* @returns JS代码字符串
|
||||
*/
|
||||
getSaveImgJS(url: string, format: string): string {
|
||||
return `javascript:(async function() {
|
||||
@@ -104,9 +95,8 @@ class Client {
|
||||
}
|
||||
|
||||
/**
|
||||
* @func getUrl
|
||||
* 获取 url
|
||||
* @since Beta v0.5.0
|
||||
* @desc 获取 url
|
||||
* @param {string} func - 方法名
|
||||
* @returns {string} - url
|
||||
*/
|
||||
@@ -130,9 +120,8 @@ class Client {
|
||||
}
|
||||
|
||||
/**
|
||||
* @func handleCallback
|
||||
* 处理米游社客户端的 callback
|
||||
* @since Beta v0.6.1
|
||||
* @desc 处理米游社客户端的 callback
|
||||
* @param {Event<string>} arg - 事件参数
|
||||
* @returns {Promise<void>} - 返回值
|
||||
*/
|
||||
@@ -162,14 +151,16 @@ class Client {
|
||||
<TGApp.Plugins.JSBridge.Arg<TGApp.Plugins.JSBridge.EventTrackPayload>>argParse,
|
||||
);
|
||||
break;
|
||||
case "getStatusBarHeight":
|
||||
await this.getStatusBarHeight(<TGApp.Plugins.JSBridge.NullArg>argParse);
|
||||
break;
|
||||
case "genAuthKey":
|
||||
await this.genAuthKey(
|
||||
<TGApp.Plugins.JSBridge.Arg<TGApp.Plugins.JSBridge.GenAuthkeyPayload>>argParse,
|
||||
);
|
||||
break;
|
||||
case "getActionTicket":
|
||||
await this.getActionTicket(
|
||||
<TGApp.Plugins.JSBridge.Arg<TGApp.Plugins.JSBridge.GetActionTicketPayload>>argParse,
|
||||
);
|
||||
break;
|
||||
case "getCookieInfo":
|
||||
await this.getCookieInfo(<TGApp.Plugins.JSBridge.NullArg>argParse);
|
||||
break;
|
||||
@@ -178,14 +169,6 @@ class Client {
|
||||
<TGApp.Plugins.JSBridge.Arg<TGApp.Plugins.JSBridge.GetCookieTokenPayload>>argParse,
|
||||
);
|
||||
break;
|
||||
case "getActionTicket":
|
||||
await this.getActionTicket(
|
||||
<TGApp.Plugins.JSBridge.Arg<TGApp.Plugins.JSBridge.GetActionTicketPayload>>argParse,
|
||||
);
|
||||
break;
|
||||
case "getHTTPRequestHeaders":
|
||||
await this.getHTTPRequestHeaders(<TGApp.Plugins.JSBridge.NullArg>argParse);
|
||||
break;
|
||||
case "getDS":
|
||||
await this.getDS(<TGApp.Plugins.JSBridge.NullArg>argParse);
|
||||
break;
|
||||
@@ -194,6 +177,17 @@ class Client {
|
||||
<TGApp.Plugins.JSBridge.Arg<TGApp.Plugins.JSBridge.GetDS2Payload>>argParse,
|
||||
);
|
||||
break;
|
||||
case "getHTTPRequestHeaders":
|
||||
await this.getHTTPRequestHeaders(<TGApp.Plugins.JSBridge.NullArg>argParse);
|
||||
break;
|
||||
case "getRegionRoleInfo":
|
||||
await this.getRegionRoleInfo(
|
||||
<TGApp.Plugins.JSBridge.Arg<TGApp.Plugins.JSBridge.GetRegionRoleInfoPayload>>argParse,
|
||||
);
|
||||
break;
|
||||
case "getStatusBarHeight":
|
||||
await this.getStatusBarHeight(<TGApp.Plugins.JSBridge.NullArg>argParse);
|
||||
break;
|
||||
case "getUserInfo":
|
||||
await this.getUserInfo(<TGApp.Plugins.JSBridge.NullArg>argParse);
|
||||
break;
|
||||
@@ -437,7 +431,7 @@ class Client {
|
||||
await TGLogger.Error(`[TGClient][open] ${e}`);
|
||||
}
|
||||
}
|
||||
await core.invoke<InvokeArg>("create_mhy_client", { func, url });
|
||||
await core.invoke("create_mhy_client", { func, url });
|
||||
await this.loadJSBridge();
|
||||
}
|
||||
|
||||
@@ -657,6 +651,26 @@ class Client {
|
||||
await this.callback(arg.callback, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取对应区服的角色信息
|
||||
* @since Beta v0.8.4
|
||||
* @param {TGApp.Plugins.JSBridge.Arg<TGApp.Plugins.JSBridge.GetRegionRoleInfoPayload>} arg - 方法参数
|
||||
* @returns {Promise<void>} - 无返回值
|
||||
*/
|
||||
async getRegionRoleInfo(
|
||||
arg: TGApp.Plugins.JSBridge.Arg<TGApp.Plugins.JSBridge.GetRegionRoleInfoPayload>,
|
||||
): Promise<void> {
|
||||
const user = useUserStore();
|
||||
const data = {
|
||||
region: user.account.region,
|
||||
game_uid: user.account.gameUid,
|
||||
nickname: user.account.nickname,
|
||||
user_label: user.account.nickname,
|
||||
region_name: user.account.regionName,
|
||||
};
|
||||
await this.callback(arg.callback, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @func getUserInfo
|
||||
* @since Beta v0.3.9
|
||||
|
||||
Reference in New Issue
Block a user