From 015c141c1a3340247fd3323c6ea5c815ee72130a Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sat, 26 Oct 2024 14:10:11 +0800 Subject: [PATCH] update gtag --- .../index.ts | 2 ++ .../ui/src/main/flow/LAUNCH_BOSS_SITE/index.ts | 2 ++ packages/ui/src/main/utils/gtag/GtagPlugin.ts | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 packages/ui/src/main/utils/gtag/GtagPlugin.ts diff --git a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts index 5533ad3..4623e2e 100644 --- a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts +++ b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts @@ -15,6 +15,7 @@ import * as JSONStream from 'JSONStream' import SqlitePluginModule from '@geekgeekrun/sqlite-plugin' import gtag from '../../utils/gtag' +import GtagPlugin from '../../utils/gtag/GtagPlugin' const { default: SqlitePlugin } = SqlitePluginModule const rerunInterval = (() => { @@ -31,6 +32,7 @@ const { groupRobotAccessToken: dingTalkAccessToken } = readConfigFile('dingtalk. const initPlugins = (hooks) => { new DingtalkPlugin(dingTalkAccessToken).apply(hooks) new SqlitePlugin(getPublicDbFilePath()).apply(hooks) + new GtagPlugin().apply(hooks) } let isParentProcessDisconnect = false diff --git a/packages/ui/src/main/flow/LAUNCH_BOSS_SITE/index.ts b/packages/ui/src/main/flow/LAUNCH_BOSS_SITE/index.ts index 4bb0270..e6834e2 100644 --- a/packages/ui/src/main/flow/LAUNCH_BOSS_SITE/index.ts +++ b/packages/ui/src/main/flow/LAUNCH_BOSS_SITE/index.ts @@ -119,6 +119,7 @@ const attachRequestsListener = async (target: Target) => { }, markReason: MarkAsNotSuitReason.USER_MANUAL_OPERATION_WITH_UNKNOWN_REASON } + gtag('job_marked_as_not_suit', { markFrom: markDetail.markFrom }) if (reasonCodeToTextMap[chosenCode]?.includes('活跃度低')) { markDetail.markReason = MarkAsNotSuitReason.BOSS_INACTIVE markDetail.extInfo.bossActiveTimeDesc = currentJobData?.bossInfo.activeTimeDesc @@ -153,6 +154,7 @@ const attachRequestsListener = async (target: Target) => { const currentUserInfo = await page.evaluate( 'document.querySelector(".job-detail-box").__vue__.$store.state.userInfo' ) + gtag('new_chat_startup', { chatStartupFrom: ChatStartupFrom.ManuallyFromRecommendList }) await saveChatStartupRecord( await dbInitPromise, currentJobData, diff --git a/packages/ui/src/main/utils/gtag/GtagPlugin.ts b/packages/ui/src/main/utils/gtag/GtagPlugin.ts new file mode 100644 index 0000000..12a98f3 --- /dev/null +++ b/packages/ui/src/main/utils/gtag/GtagPlugin.ts @@ -0,0 +1,18 @@ +import gtag from '.' + +export default class GtagPlugin { + apply(hooks) { + hooks.newChatStartup.tap('GtagPlugin', (_, { chatStartupFrom }) => { + gtag('new_chat_startup', { chatStartupFrom }) + }) + hooks.jobMarkedAsNotSuit.tap('GtagPlugin', (_, { markFrom }) => { + gtag('job_marked_as_not_suit', { markFrom }) + }) + hooks.noPositionFoundForCurrentJob.tap('GtagPlugin', () => { + gtag('no_position_found_for_current_job') + }) + hooks.noPositionFoundAfterTraverseAllJob.tap('GtagPlugin', () => { + gtag('no_position_found_after_traverse_all_job') + }) + } +}