From 040f91be706f3af5914027e44ca571bd57372ea0 Mon Sep 17 00:00:00 2001 From: Ocyss Date: Fri, 12 Apr 2024 21:22:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9E=20=E4=BD=BF=E7=94=A8unsafeW?= =?UTF-8?q?indow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 5 ++++- src/hooks/useApplying/api.ts | 6 ++++-- src/hooks/useApplying/handles.ts | 14 ++++++++++++-- src/hooks/useStore.ts | 2 ++ src/hooks/useWebSocket/protobuf.ts | 3 ++- src/utils/logger.ts | 2 +- update.log | 3 ++- vite.config.ts | 2 +- 8 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/App.vue b/src/App.vue index 0ea97e5..4c9237e 100644 --- a/src/App.vue +++ b/src/App.vue @@ -14,8 +14,10 @@ import storeVue from "@/components/conf/store.vue"; import userVue from "@/components/conf/user.vue"; import logVue from "@/components/conf/log.vue"; import { onMounted, ref } from "vue"; +import { useStore } from "./hooks/useStore"; logger.info("BoosHelper挂载成功"); ElMessage("BoosHelper挂载成功!"); +const { storeInit } = useStore(); const confBox = ref(false); const confs = { store: { name: "存储配置", component: storeVue }, @@ -42,8 +44,9 @@ function themeChange() { document.documentElement.classList.toggle("dark", dark.value); GM_setValue("theme-dark", dark.value); } -onMounted(() => { +onMounted(async () => { document.documentElement.classList.toggle("dark", dark.value); + await storeInit(); }); diff --git a/src/hooks/useApplying/api.ts b/src/hooks/useApplying/api.ts index f5834f4..2b7c17a 100644 --- a/src/hooks/useApplying/api.ts +++ b/src/hooks/useApplying/api.ts @@ -2,6 +2,7 @@ import { GreetError, PublishError } from "@/types/deliverError"; import axios from "axios"; import { useStore } from "../useStore"; import { ElMessage } from "element-plus"; +import { unsafeWindow } from "$"; const { userInfo } = useStore(); export function requestCard(params: { securityId: string; lid: string }) { @@ -36,7 +37,7 @@ export async function sendPublishReq( jobId: data.encryptJobId, lid: data.lid, }; - const token = userInfo.value?.token || window?._PAGE?.zp_token; + const token = unsafeWindow?._PAGE?.zp_token || window?._PAGE?.zp_token; if (!token) { ElMessage.error("没有获取到token,请刷新重试"); throw new PublishError("没有获取到token"); @@ -77,7 +78,8 @@ export async function requestBossData( throw new GreetError(errorMsg || "重试多次失败"); } const url = "https://www.zhipin.com/wapi/zpchat/geek/getBossData"; - const token = userInfo.value?.token || window?._PAGE?.zp_token; + // userInfo.value?.token 不相等! + const token = unsafeWindow?._PAGE?.zp_token || window?._PAGE?.zp_token; if (!token) { ElMessage.error("没有获取到token,请刷新重试"); throw new GreetError("没有获取到token"); diff --git a/src/hooks/useApplying/handles.ts b/src/hooks/useApplying/handles.ts index e0fa727..2750065 100644 --- a/src/hooks/useApplying/handles.ts +++ b/src/hooks/useApplying/handles.ts @@ -21,11 +21,13 @@ import { GreetError, } from "@/types/deliverError"; import { useStore } from "../useStore"; +import { unsafeWindow } from "$"; const { modelData, requestGpt } = useModel(); const { formData } = useConfFormData(); const { todayData } = useStatistics(); const { userInfo } = useStore(); + export const communicated: handleCFn = (h) => { // h.push(async ({ data }) => { // try { @@ -203,7 +205,11 @@ export const activityFilter: handleCFn = (h) => export const customGreeting: handleCFn = (h) => { const template = miTem.compile(formData.customGreeting.value); const uid = - userInfo.value?.userId || window?._PAGE?.uid || window?._PAGE?.userId; + userInfo.value?.userId || + unsafeWindow?._PAGE?.uid || + unsafeWindow?._PAGE?.userId || + window?._PAGE?.uid || + window?._PAGE?.userId; if (!uid) { ElMessage.error("没有获取到uid,请刷新重试"); throw new GreetError("没有获取到uid"); @@ -234,7 +240,11 @@ export const aiGreeting: handleCFn = (h) => { (v) => v.key === formData.aiGreeting.model ); const uid = - userInfo.value?.userId || window?._PAGE?.uid || window?._PAGE?.userId; + userInfo.value?.userId || + unsafeWindow?._PAGE?.uid || + unsafeWindow?._PAGE?.userId || + window?._PAGE?.uid || + window?._PAGE?.userId; if (!uid) { ElMessage.error("没有获取到uid,请刷新重试"); throw new GreetError("没有获取到uid"); diff --git a/src/hooks/useStore.ts b/src/hooks/useStore.ts index 049cc13..dbdc8dd 100644 --- a/src/hooks/useStore.ts +++ b/src/hooks/useStore.ts @@ -1,5 +1,6 @@ import { ref } from "vue"; import { getRootVue, useHookVueData } from "./useVue"; +import { logger } from "@/utils/logger"; const userInfo = ref<{ userId: number; @@ -31,6 +32,7 @@ const storeInit = async () => { const v = await getRootVue(); const store = v?.$store?.state; userInfo.value = store?.userInfo; + logger.debug("userInfo: ", userInfo.value); }; export const useStore = () => { diff --git a/src/hooks/useWebSocket/protobuf.ts b/src/hooks/useWebSocket/protobuf.ts index 96837ad..bcb8081 100644 --- a/src/hooks/useWebSocket/protobuf.ts +++ b/src/hooks/useWebSocket/protobuf.ts @@ -1,5 +1,6 @@ import protobuf from "protobufjs"; import { TechwolfChatProtocol } from "./type"; +import { unsafeWindow } from "$"; var Root = protobuf.Root, Type = protobuf.Type, @@ -92,6 +93,6 @@ export class Message { return this.msg.buffer.slice(0, this.msg.byteLength); } send() { - window.ChatWebsocket.send(this); + (window.ChatWebsocket || unsafeWindow.ChatWebsocket).send(this); } } diff --git a/src/utils/logger.ts b/src/utils/logger.ts index fc954c4..e772edb 100644 --- a/src/utils/logger.ts +++ b/src/utils/logger.ts @@ -93,6 +93,6 @@ export class Logger { export const logger = new Logger( process.env.NODE_ENV === "production" - ? undefined + ? { level: LogLevel.DEBUG, print: true } : { level: LogLevel.DEBUG, print: true } ); diff --git a/update.log b/update.log index 6a0a773..c559b2a 100644 --- a/update.log +++ b/update.log @@ -1 +1,2 @@ -v0.1.4 🌟🤡 卡片状态适配白天,修复将gpt提示发送给boos \ No newline at end of file +v0.1.4 🌟🤡 卡片状态适配白天,修复将gpt提示发送给boos +v0.1.5 🤡 修复编译后拿不到window数据导致报错的严重Bug \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index 04d886e..6d66547 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -49,7 +49,7 @@ export default defineConfig(() => { homepage: "https://github.com/Ocyss/boos-helper", match: ["https://*.zhipin.com/*"], author: "Ocyss", - + grant: ["unsafeWindow"], // "run-at": "document-start", }, build: {