From 93efa38c0c9d62f3ca6403c0e91d0955980a2c0b Mon Sep 17 00:00:00 2001 From: Haoyu Xu Date: Tue, 31 Dec 2024 12:04:31 +0800 Subject: [PATCH] feat: insight update --- aklive2d.js | 6 +++++- config.yaml | 1 + directory/src/routes/path/Operator.jsx | 2 +- directory/src/state/insight.js | 6 +++--- libs/directory.js | 4 ++++ showcase/src/components/settings.js | 4 ++-- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/aklive2d.js b/aklive2d.js index 05c5661..4e941e1 100644 --- a/aklive2d.js +++ b/aklive2d.js @@ -166,6 +166,10 @@ async function main() { const envPath = path.join(OPERATOR_SOURCE_FOLDER, OPERATOR_NAME, '.env') writeSync((new EnvGenerator()).generate([ + { + key: "insight_id", + value: __config.insight_id + }, { key: "link", value: __config.operators[OPERATOR_NAME].link @@ -236,7 +240,7 @@ async function main() { const assetsProcessor = new AssetsProcessor(OPERATOR_NAME, OPERATOR_SHARE_FOLDER) const assetContent = await assetsProcessor.process(EXTRACTED_FOLDER) write(JSON.stringify(assetContent.assetsJson, null), path.join(OPERATOR_SOURCE_FOLDER, OPERATOR_NAME, `assets.json`)) - + // copy remaining files const filesToCopy = [ ...background.getFilesToCopy(SHOWCASE_PUBLIC_ASSSETS_FOLDER), diff --git a/config.yaml b/config.yaml index 3fd0a3e..d639280 100644 --- a/config.yaml +++ b/config.yaml @@ -1,6 +1,7 @@ akassets: project_name: akassets url: https://akassets.halyul.dev +insight_id: aklive2d folder: auto_update_data: ./data/auto_update operator_data: ./data/operator/ diff --git a/directory/src/routes/path/Operator.jsx b/directory/src/routes/path/Operator.jsx index 68de407..3ba8d5a 100644 --- a/directory/src/routes/path/Operator.jsx +++ b/directory/src/routes/path/Operator.jsx @@ -74,7 +74,7 @@ export default function Operator() { const [config, setConfig] = useState(null) const [spineData, setSpineData] = useState(null) // eslint-disable-next-line no-unused-vars - const _trackEvt = useInsight(key) + const _trackEvt = useInsight(`/${key}`) const spineRef = useRef(null) const [spineAnimationName, setSpineAnimationName] = useState(defaultSpineAnimationName) const { i18n } = useI18n() diff --git a/directory/src/state/insight.js b/directory/src/state/insight.js index c179064..aff5f08 100644 --- a/directory/src/state/insight.js +++ b/directory/src/state/insight.js @@ -1,17 +1,17 @@ import React from 'react'; -export default (key = null, websiteId = "directory", skipPageView = false) => { +export default (path = null, skipPageView = false) => { React.useEffect(() => { if (!skipPageView && import.meta.env.MODE !== 'development') { try { window.counterscale = { - q: [["set", "siteId", `aklive2d-${websiteId}`], ["trackPageview"]], + q: [["set", "siteId", import.meta.env.VITE_INSIGHT_ID], ["trackPageview", {path}]], }; window.counterscaleOnDemandTrack() } catch (err) { console.warn && console.warn(err.message) } } - }, [websiteId, skipPageView, key]) + }, [path, skipPageView]) } \ No newline at end of file diff --git a/libs/directory.js b/libs/directory.js index 9e42074..c1cd833 100644 --- a/libs/directory.js +++ b/libs/directory.js @@ -41,6 +41,10 @@ export default function (dataDir, { backgrounds, musicMapping }) { }) writeSync((new EnvGenerator()).generate([ + { + key: "insight_id", + value: __config.insight_id + }, { key: "app_title", value: __config.directory.title diff --git a/showcase/src/components/settings.js b/showcase/src/components/settings.js index a3ddc34..bd14321 100644 --- a/showcase/src/components/settings.js +++ b/showcase/src/components/settings.js @@ -79,13 +79,13 @@ export default class Settings { insight(isWallpaperEngine, doNotTrack) { this.isWallpaperEngine = isWallpaperEngine - if (this.#isInsightInited || import.meta.env.MODE === 'development') return + if (this.#isInsightInited) return this.#isInsightInited = true this.#doNotTrack = doNotTrack if (this.#doNotTrack) return try { window.counterscale = { - q: [["set", "siteId", `aklive2d-${import.meta.env.VITE_LINK}`], ["trackPageview"]], + q: [["set", "siteId", import.meta.env.VITE_INSIGHT_ID], ["trackPageview", {path: `/${import.meta.env.VITE_LINK}`}]], }; window.counterscaleOnDemandTrack(); } catch(e) {