improve analytics api

This commit is contained in:
Russell2259
2024-01-23 20:44:24 -07:00
parent af6c105947
commit 9699ae0805
2 changed files with 29 additions and 27 deletions
+26 -26
View File
@@ -1,33 +1,33 @@
import { storage } from './utils.js'; import { storage } from './utils.js';
const analyticsPreferences = storage('analytics'); export default () => new Promise(async (resolve, reject) => {
const analyticsPreferences = storage('analytics');
if (analyticsPreferences.get('enabled') !== false) { if (analyticsPreferences.get('enabled') !== false) {
var analyticsData; var analyticsData;
if (!analyticsPreferences.get('savedResponse')) { if (!analyticsPreferences.get('savedResponse')) {
try { try {
analyticsData = await (await fetch('/api/analytics/site/' + location.hostname)).json(); analyticsData = await (await fetch('/api/analytics/site/' + location.hostname)).json();
analyticsPreferences.set('savedResponse', analyticsData); analyticsPreferences.set('savedResponse', analyticsData);
} catch (e) { analyticsPreferences.set('enabled', false);location.reload(); } } catch (e) { analyticsPreferences.set('enabled', false); resolve({}); }
} else analyticsData = analyticsPreferences.get('savedResponse'); } else analyticsData = analyticsPreferences.get('savedResponse');
if (analyticsData.success && analyticsData.data.domain === location.hostname) { if (analyticsData.success && analyticsData.data.domain === location.hostname) {
analyticsPreferences.set('enabled', true); analyticsPreferences.set('enabled', true);
const script = document.createElement('script'); const script = document.createElement('script');
script.src = '/api/analytics/script.js'; script.src = '/api/analytics/script.js';
script.setAttribute('data-website-id', analyticsData.data.id); script.setAttribute('data-website-id', analyticsData.data.id);
script.setAttribute('data-auto-track', 'false'); script.setAttribute('data-auto-track', 'false');
script.setAttribute('data-host-url', location.origin + '/api/analytics'); script.setAttribute('data-host-url', location.origin + '/api/analytics');
script.setAttribute('data-cache', 'true'); script.setAttribute('data-cache', 'true');
document.head.appendChild(script); document.head.appendChild(script);
} else analyticsPreferences.set('enabled', false);
}
/** script.onload = () => resolve(window.umami);
* @property {{ track: (event: string, props: {}) => {}}} umami } else {
*/ analyticsPreferences.set('enabled', false);
var { umami } = window; resolve({});
}
export { umami }; } else resolve({});
});
+3 -1
View File
@@ -1,12 +1,14 @@
import { createViewPage, isValidURL, getVH, CrossTabCommunication, PolarisError, storage } from './utils.js'; import { createViewPage, isValidURL, getVH, CrossTabCommunication, PolarisError, storage } from './utils.js';
import { loadSettings, loadSidebarInterface } from './settings.js'; import { loadSettings, loadSidebarInterface } from './settings.js';
import loadEasterEggs from './eastereggs.js'; import loadEasterEggs from './eastereggs.js';
import { umami } from './analytics.js'; import loadAnalytics from './analytics.js';
import Search from './search.js'; import Search from './search.js';
import Cheats from './cheats.js'; import Cheats from './cheats.js';
import Games from './games.js'; import Games from './games.js';
import Apps from './apps.js'; import Apps from './apps.js';
const umami = loadAnalytics();
if (location.pathname !== '/view') loadSidebarInterface(); if (location.pathname !== '/view') loadSidebarInterface();
loadEasterEggs(); loadEasterEggs();