From ad090ce38c403eefa333447be682f02e2d5180b9 Mon Sep 17 00:00:00 2001 From: HorizonCode Date: Sun, 7 Dec 2025 00:11:49 +0100 Subject: [PATCH] feat: add umami tracking for app launch and exit events; update dependencies in package.json and bun.lock --- bun.lock | 3 +++ package.json | 5 +++-- src/app.html | 22 ++++++++++++---------- src/lib/displayUtils.ts | 2 +- src/routes/+page.svelte | 13 ++++++++++++- src/screens/Launch.svelte | 6 ++++-- 6 files changed, 35 insertions(+), 16 deletions(-) diff --git a/bun.lock b/bun.lock index 230cbb2..d26251d 100644 --- a/bun.lock +++ b/bun.lock @@ -14,6 +14,7 @@ "@tauri-apps/plugin-dialog": "^2.4.0", "@tauri-apps/plugin-fs": "^2.4.2", "@tauri-apps/plugin-shell": "^2.3.1", + "@types/umami": "^2.10.1", "animejs": "^4.1.3", "buffer": "^6.0.3", "crypto-js": "^4.2.0", @@ -347,6 +348,8 @@ "@types/semver": ["@types/semver@7.7.1", "", {}, "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA=="], + "@types/umami": ["@types/umami@2.10.1", "", {}, "sha512-CvOEMq+BFOUXj8yciq4hPsdOt0o9KBg5jQXnF1FrdOMKZMxJiwryyZNLa9Ud2NVO6nXSwU22YMKR3E+Xhbo+DA=="], + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.42.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.42.0", "@typescript-eslint/type-utils": "8.42.0", "@typescript-eslint/utils": "8.42.0", "@typescript-eslint/visitor-keys": "8.42.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.42.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-Aq2dPqsQkxHOLfb2OPv43RnIvfj05nw8v/6n3B2NABIPpHnjQnaLo9QGMTvml+tv4korl/Cjfrb/BYhoL8UUTQ=="], "@typescript-eslint/parser": ["@typescript-eslint/parser@8.42.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.42.0", "@typescript-eslint/types": "8.42.0", "@typescript-eslint/typescript-estree": "8.42.0", "@typescript-eslint/visitor-keys": "8.42.0", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-r1XG74QgShUgXph1BYseJ+KZd17bKQib/yF3SR+demvytiRXrwd12Blnz5eYGm8tXaeRdd4x88MlfwldHoudGg=="], diff --git a/package.json b/package.json index 410394b..37834a2 100644 --- a/package.json +++ b/package.json @@ -28,13 +28,14 @@ "@tauri-apps/plugin-dialog": "^2.4.0", "@tauri-apps/plugin-fs": "^2.4.2", "@tauri-apps/plugin-shell": "^2.3.1", + "@types/umami": "^2.10.1", "animejs": "^4.1.3", "buffer": "^6.0.3", "crypto-js": "^4.2.0", "lucide-svelte": "^0.542.0", "semver": "^7.7.2", - "tw-animate-css": "^1.3.8", - "svelte-confetti": "^2.3.2" + "svelte-confetti": "^2.3.2", + "tw-animate-css": "^1.3.8" }, "devDependencies": { "@eslint/compat": "^1.3.2", diff --git a/src/app.html b/src/app.html index 175adf5..934dd18 100644 --- a/src/app.html +++ b/src/app.html @@ -1,13 +1,15 @@ - - - - EZPPLauncher - %sveltekit.head% - - -
%sveltekit.body%
- - + + + + EZPPLauncher + %sveltekit.head% + + + +
%sveltekit.body%
+ + + \ No newline at end of file diff --git a/src/lib/displayUtils.ts b/src/lib/displayUtils.ts index 2645e97..af44a71 100644 --- a/src/lib/displayUtils.ts +++ b/src/lib/displayUtils.ts @@ -9,7 +9,7 @@ export function estimateRefreshRate(): Promise { if (now - last >= 1000) { console.log(`Estimated Refresh Rate: ${frames - 2} FPS`); - resolve(frames - 2); // estimated Hz + resolve(frames - 2); } else { requestAnimationFrame(loop); } diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 489084e..2d3b3f2 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,10 +1,21 @@ + + {#if $launcherVersion !== ''} + + {/if} + + {#key View}
diff --git a/src/screens/Launch.svelte b/src/screens/Launch.svelte index 20b876c..c23ea69 100644 --- a/src/screens/Launch.svelte +++ b/src/screens/Launch.svelte @@ -177,6 +177,7 @@ }; const launch = async () => { + umami.track('app_launch_osu'); const osuRunning = await isOsuRunning(); if (osuRunning) { toast.error('Hold on a second!', { @@ -480,7 +481,7 @@ } await runOsu(osuPath, true); - + umami.track('app_exit_osu'); launchInfo = 'Cleaning up...'; await getCurrentWindow().show(); if (presenceUpdater) { @@ -531,6 +532,7 @@ description: 'Failed to launch.', }); launching.set(false); + umami.track('app_launch_fail', { error: err }); } }; @@ -1283,4 +1285,4 @@
{/if} - \ No newline at end of file +