From 5b390d3ad14a6f5612d76cfa86ddc1bad54d5c1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9B=AE=E6=A3=83?= Date: Mon, 24 Feb 2025 17:56:49 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=B1=20=E6=96=B0=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/source/UI/toolbox.webp | Bin 0 -> 5080 bytes src/components/app/t-sidebar.vue | 8 +++++++- src/pages/User/Scripts.vue | 5 +++++ src/router/modules/user.ts | 7 ++++++- src/views/t-post.vue | 32 ++++++++++++++++++++++++------- src/web/request/apiHubReq.ts | 29 ++++++++++++++++++++++++++++ 6 files changed, 72 insertions(+), 9 deletions(-) create mode 100644 public/source/UI/toolbox.webp create mode 100644 src/pages/User/Scripts.vue diff --git a/public/source/UI/toolbox.webp b/public/source/UI/toolbox.webp new file mode 100644 index 0000000000000000000000000000000000000000..e0747e308f3b3dae0fb55e34c746e58af1bd0f5d GIT binary patch literal 5080 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 literal 0 HcmV?d00001 diff --git a/src/components/app/t-sidebar.vue b/src/components/app/t-sidebar.vue index 2c1c9cec..d9c8346e 100644 --- a/src/components/app/t-sidebar.vue +++ b/src/components/app/t-sidebar.vue @@ -56,12 +56,18 @@ abyss - + + + + + +
+ + + diff --git a/src/router/modules/user.ts b/src/router/modules/user.ts index de6feb13..142ebfb6 100644 --- a/src/router/modules/user.ts +++ b/src/router/modules/user.ts @@ -1,7 +1,7 @@ /** * @file router modules user.ts * @description user 路由模块 - * @since Beta v0.6.3 + * @since Beta v0.6.10/v0.7.0 */ import type { RouteRecordRaw } from "vue-router"; @@ -31,6 +31,11 @@ const userRoutes = ([ name: "原神战绩", component: async () => await import("@/pages/User/Record.vue"), }, + { + path: "/user/scripts", + name: "实用脚本", + component: async () => await import("@/pages/User/Scripts.vue"), + }, ]) satisfies Array; export default userRoutes; diff --git a/src/views/t-post.vue b/src/views/t-post.vue index 5e91c4a0..d1e426a6 100644 --- a/src/views/t-post.vue +++ b/src/views/t-post.vue @@ -36,7 +36,7 @@ mdi-thumb-up {{ postData?.stat?.like_num }} -
+
mdi-share-variant {{ postData?.stat?.forward_num }}
@@ -109,6 +109,7 @@ import { useRoute } from "vue-router"; import { useAppStore } from "@/store/modules/app.js"; import { useUserStore } from "@/store/modules/user.js"; import TGBbs from "@/utils/TGBbs.js"; +import TGClient from "@/utils/TGClient.js"; import TGLogger from "@/utils/TGLogger.js"; import { createTGWindow } from "@/utils/TGWindow.js"; import apiHubReq from "@/web/request/apiHubReq.js"; @@ -275,13 +276,30 @@ async function tryLike(): Promise { showSnackbar.success(isLike.value ? "点赞成功" : "取消点赞成功"); } -function toPost(): void { - const channel = TGBbs.channels.find((item) => item.gid === postData.value?.post.game_id); - if (channel) { - window.open(`https://miyoushe.com/${channel.mini}/#/article/${postId}`); - } else { - window.open(`https://miyoushe.com/ys/#/article/${postId}`); +async function tryShare(): Promise { + if (!cookie.value) { + showSnackbar.error("请先登录"); + return; } + if (!postData.value) { + showSnackbar.error("数据未加载"); + return; + } + const ck = { stoken: cookie.value.stoken, stuid: cookie.value.stuid, mid: cookie.value.mid }; + const resp = await apiHubReq.post.share(postData.value.post.post_id, ck); + if (resp.retcode !== 0) { + showSnackbar.error(`[${resp.retcode}] ${resp.message}`); + return; + } + console.log("share success", resp); +} + +async function toPost(): Promise { + const channel = TGBbs.channels.find((item) => item.gid === postData.value?.post.game_id); + const link = channel + ? `https://m.miyoushe.com/${channel.mini}/#/article/${postId}` + : `https://m.miyoushe.com/ys/#/article/${postId}`; + await TGClient.open("web_thin", link); } async function toTopic(topic: TGApp.Plugins.Mys.Topic.Info): Promise { diff --git a/src/web/request/apiHubReq.ts b/src/web/request/apiHubReq.ts index 80c26b6d..5f1c1d83 100644 --- a/src/web/request/apiHubReq.ts +++ b/src/web/request/apiHubReq.ts @@ -56,6 +56,7 @@ async function getMissions(cookie: Record): Promise} cookie 用户 Cookie * @return {Promise} @@ -126,6 +127,33 @@ async function homeNew(gid: number = 2): Promise} cookie 用户 Cookie + * @param {string} gid + * @return {Promise} + */ +async function signIn( + cookie: Record, + gid: number = 2, +): Promise { + const data = { gids: gid.toString() }; + const header = { + ...getRequestHeader(cookie, "POST", JSON.stringify(data), "X6"), + "x-rpc-client_type": "2", + referer: "https://app.mihoyo.com", + }; + if ("x-requested-with" in header) delete header["x-requested-with"]; + console.log(header); + return await TGHttp(`${Mahbu}app/api/signIn`, { + method: "POST", + headers: header, + body: JSON.stringify(data), + }); +} + /** * @description 点赞 * @since Beta v0.6.10/v0.7.0 @@ -157,6 +185,7 @@ const apiHubReq = { forum: getAllGamesForums, game: getGameList, mission: getMissions, + sign: signIn, post: { like: upVotePost, share: getShareConf }, };