diff --git a/src/components/func/geetest.ts b/src/components/func/geetest.ts index 3cfa51d6..2cde7531 100644 --- a/src/components/func/geetest.ts +++ b/src/components/func/geetest.ts @@ -1,11 +1,11 @@ /** * @file component/func/geetest.ts * @description 封装自定义 geetest 组件,通过函数调用的方式,简化 geetest 的使用 - * @since Beta v0.6.6 + * @since Beta v0.7.1 */ -import { h, render } from "vue"; import type { ComponentInternalInstance, VNode } from "vue"; +import { h, render } from "vue"; import geetest from "./geetest.vue"; @@ -21,12 +21,12 @@ const geetestId = "tg-func-geetest"; interface GeetestInstance extends ComponentInternalInstance { exposeProxy: { displayBox: ( - props: TGApp.Plugins.Mys.Geetest.reqResp, - ) => Promise; + props: TGApp.BBS.Geetest.CreateRes, + ) => Promise; }; } -function renderBox(props: TGApp.Plugins.Mys.Geetest.reqResp): VNode { +function renderBox(props: TGApp.BBS.Geetest.CreateRes): VNode { const container = document.createElement("div"); container.id = geetestId; const boxVNode: VNode = h(geetest, props); @@ -39,14 +39,14 @@ let geetestInstance: VNode; /** * @function showGeetest - * @since Beta v0.5.1 + * @since Beta v0.7.1 * @description 弹出 geetest 验证 - * @param {TGApp.Plugins.Mys.Geetest.reqResp} props geetest 验证的参数 - * @return {Promise} 验证成功返回验证数据 + * @param {TGApp.BBS.Geetest.CreateRes} props geetest 验证的参数 + * @return {Promise} 验证成功返回验证数据 */ async function showGeetest( - props: TGApp.Plugins.Mys.Geetest.reqResp, -): Promise { + props: TGApp.BBS.Geetest.CreateRes, +): Promise { if (geetestInstance !== undefined) { const boxVue = geetestInstance.component; return boxVue.exposeProxy.displayBox(props); diff --git a/src/components/func/geetest.vue b/src/components/func/geetest.vue index 942c0b24..23725048 100644 --- a/src/components/func/geetest.vue +++ b/src/components/func/geetest.vue @@ -40,14 +40,14 @@ watch( ); declare function initGeetest( - params: TGApp.Plugins.Mys.Geetest.InitGeetestParams, - callback: (captchaObj: TGApp.Plugins.Mys.Geetest.GeetestCaptcha) => void, + params: TGApp.BBS.Geetest.InitGeetestParams, + callback: (captchaObj: TGApp.BBS.Geetest.GeetestCaptcha) => void, ): void; async function displayBox( - props: TGApp.Plugins.Mys.Geetest.reqResp, -): Promise { - return await new Promise((resolve) => { + props: TGApp.BBS.Geetest.CreateRes, +): Promise { + return await new Promise((resolve) => { initGeetest( { gt: props.gt, @@ -58,7 +58,7 @@ async function displayBox( area: "#verify", width: "250px", }, - (captchaObj: TGApp.Plugins.Mys.Geetest.GeetestCaptcha) => { + (captchaObj: TGApp.BBS.Geetest.GeetestCaptcha) => { if (geetestEl.value === null) return; geetestEl.value.innerHTML = ""; captchaObj.appendTo("#geetest"); diff --git a/src/components/userScripts/tus-mission.vue b/src/components/userScripts/tus-mission.vue index 77e06524..3a20e1af 100644 --- a/src/components/userScripts/tus-mission.vue +++ b/src/components/userScripts/tus-mission.vue @@ -37,6 +37,7 @@ import { ref, shallowRef } from "vue"; import { useUserStore } from "@/store/modules/user.js"; import TGLogger from "@/utils/TGLogger.js"; import apiHubReq from "@/web/request/apiHubReq.js"; +import miscReq from "@/web/request/miscReq.js"; import painterReq from "@/web/request/painterReq.js"; import postReq from "@/web/request/postReq.js"; @@ -259,7 +260,7 @@ async function refreshState(ck: Record): Promise { await TGLogger.Script("[米游币任务]任务数据合并完成"); } -async function autoSign(ck: Record): Promise { +async function autoSign(ck: Record, ch?: string): Promise { const signFind = parseMissions.value.find((i) => i.key === "continuous_sign"); if (!signFind) { await TGLogger.Script("[米游币任务]未找到打卡任务"); @@ -270,10 +271,20 @@ async function autoSign(ck: Record): Promise { return; } await TGLogger.Script("[米游币任务]正在执行打卡"); - const resp = await apiHubReq.sign(ck); + const resp = await apiHubReq.sign(ck, 2, ch); if (resp.retcode !== 0) { - await TGLogger.Script(`[米游币任务]打卡失败:${resp.retcode} ${resp.message}`); - showSnackbar.error(`[${resp.retcode}] ${resp.message}`); + if (resp.retcode !== 1034) { + await TGLogger.Script(`[米游币任务]打卡失败:${resp.retcode} ${resp.message}`); + showSnackbar.error(`[${resp.retcode}] ${resp.message}`); + return; + } + await TGLogger.Script(`[米游币任务]社区签到触发验证码,正在尝试验证`); + const challenge = await miscReq.challenge(ck); + if (challenge === false) { + await TGLogger.Script(`[米游币任务]验证失败`); + return; + } + await autoSign(ck, challenge); return; } await TGLogger.Script("[米游币任务]打卡成功"); diff --git a/src/pages/common/PageTest.vue b/src/pages/common/PageTest.vue index 08329c19..a458c931 100644 --- a/src/pages/common/PageTest.vue +++ b/src/pages/common/PageTest.vue @@ -19,19 +19,36 @@