Introduce plausible
This commit is contained in:
parent
018df228df
commit
52ca1b8844
3 changed files with 17 additions and 49 deletions
17
frontend/src/scripts/analytics.ts
Normal file
17
frontend/src/scripts/analytics.ts
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
import { init as plausibleInit } from '@plausible-analytics/tracker';
|
||||||
|
|
||||||
|
const ANALYTICS_AUTO_CAPTURE_PAGEVIEWS = true;
|
||||||
|
const ANALYTICS_DOMAIN = 'decla.red';
|
||||||
|
const ANALYTICS_ENDPOINT = 'https://stats.schmelczer.dev/status';
|
||||||
|
const ANALYTICS_LOGGING = process.env.NODE_ENV !== 'production';
|
||||||
|
|
||||||
|
try {
|
||||||
|
plausibleInit({
|
||||||
|
domain: ANALYTICS_DOMAIN,
|
||||||
|
endpoint: ANALYTICS_ENDPOINT,
|
||||||
|
autoCapturePageviews: ANALYTICS_AUTO_CAPTURE_PAGEVIEWS,
|
||||||
|
logging: ANALYTICS_LOGGING,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
console.warn('Could not initialize analytics.', error);
|
||||||
|
}
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
import { Renderer } from 'sdf-2d';
|
|
||||||
|
|
||||||
export const getInsightsFromRenderer = (
|
|
||||||
renderer?: Renderer,
|
|
||||||
): {
|
|
||||||
vendor?: string;
|
|
||||||
renderer?: string;
|
|
||||||
fps?: number;
|
|
||||||
renderScale?: number;
|
|
||||||
lightScale?: number;
|
|
||||||
canvasWidth?: number;
|
|
||||||
canvasHeight?: number;
|
|
||||||
} => ({
|
|
||||||
fps: renderer?.insights?.fps,
|
|
||||||
vendor: renderer?.insights?.vendor,
|
|
||||||
renderer: renderer?.insights?.renderer,
|
|
||||||
renderScale: renderer?.insights?.renderPasses.distance.renderScale,
|
|
||||||
lightScale: renderer?.insights?.renderPasses.lights.renderScale,
|
|
||||||
canvasWidth: renderer?.canvasSize.x,
|
|
||||||
canvasHeight: renderer?.canvasSize.y,
|
|
||||||
});
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
const baseUri = 'https://insights.decla.red';
|
|
||||||
const type = 'decla-red-frontend';
|
|
||||||
const updateTime = 15000;
|
|
||||||
|
|
||||||
export const handleInsights = async (initialData: any, getFrameData: () => any) => {
|
|
||||||
const sessionId = await createSession(initialData);
|
|
||||||
setInterval(() => createFrame(sessionId, getFrameData()), updateTime);
|
|
||||||
};
|
|
||||||
|
|
||||||
const createSession = async (data: any): Promise<string> => {
|
|
||||||
const response = await sendPostRequest(`${baseUri}/${type}/sessions/`, data);
|
|
||||||
const { sessionId } = await response.json();
|
|
||||||
return sessionId;
|
|
||||||
};
|
|
||||||
|
|
||||||
const createFrame = async (sessionId: string, data: any): Promise<unknown> =>
|
|
||||||
await sendPostRequest(`${baseUri}/${type}/sessions/${sessionId}`, data);
|
|
||||||
|
|
||||||
const sendPostRequest = async (uri: string, data: any): Promise<Response> =>
|
|
||||||
await fetch(uri, {
|
|
||||||
method: 'POST',
|
|
||||||
mode: 'cors',
|
|
||||||
redirect: 'follow',
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
},
|
|
||||||
body: JSON.stringify(data),
|
|
||||||
});
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue