added analytics tracking

This commit is contained in:
J-onasJones 2024-08-18 05:42:24 +02:00
parent 71699bfd43
commit cbc6acc286

View file

@ -1,5 +1,5 @@
addEventListener('fetch', (event) => { addEventListener('fetch', (event) => {
event.respondWith(handleRequest(event.request)); event.respondWith(handleRequest(event));
}); });
const displayNames = { const displayNames = {
@ -14,6 +14,33 @@ const displayNames = {
'jonasjonesstudios-com': 'Jonas_Jones Studios (jonasjonesstudios.com)', 'jonasjonesstudios-com': 'Jonas_Jones Studios (jonasjonesstudios.com)',
}; };
async function recordRequest(request) {
const analyticsData = {
timestamp: Date.now(),
domain: new URL(request.url).hostname,
method: request.method,
path: new URL(request.url).pathname,
ipcountry: request.cf.country,
}
const ANALYTICS_URL = 'https://analytics.jonasjones.dev/requests/record';
const response = await fetch(ANALYTICS_URL, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': ANALYTICS_API_KEY,
},
body: JSON.stringify(analyticsData)
});
if (response.ok) {
console.log('Request recorded successfully');
} else {
console.error('Failed to record request:', response.status, await response.text());
}
}
function getDisplayName(namespace) { function getDisplayName(namespace) {
@ -155,7 +182,9 @@ async function buildsPageConstructor(namespace) {
} }
async function handleRequest(request) { async function handleRequest(event) {
const request = event.request;
event.waitUntil(recordRequest(request));
console.log(CLOUDFLARE_ACCOUNT_ID) console.log(CLOUDFLARE_ACCOUNT_ID)
const { pathname } = new URL(request.url); const { pathname } = new URL(request.url);
if (pathname === '/') { if (pathname === '/') {