From 4b8a154142630bdd6548fbca10db8af65bc6d6e1 Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Thu, 12 Dec 2024 15:03:51 -0600 Subject: [PATCH] feat: real popular tanks list --- .vscode/settings.json | 2 + bun.lockb | Bin 389213 -> 392282 bytes packages/scripts/package.json | 1 - packages/website/package.json | 1 + .../src/components/HomePageHotTanks.tsx | 100 +++++++++++++----- packages/website/src/components/Party3.astro | 10 +- .../website/src/components/TankCard/index.tsx | 4 +- .../components/SceneProps/index.tsx | 27 +++-- 8 files changed, 100 insertions(+), 45 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d8fbca767..4b300a69e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,6 +7,8 @@ "adsense", "aeson", "alphatest", + "analyticsdata", + "analyticsreporting", "APAC", "apcr", "applypatches", diff --git a/bun.lockb b/bun.lockb index 5940e702fb5c2894d80e0c4bc0e5c053e701ba22..a63dc01fe6181bd91c92fc2cb62ac35183e96974 100644 GIT binary patch delta 79807 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 Sl3E3Ab@teNe4q2Ug8v5qxSpE; delta 78382 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 ({ - id: Number(id), - ...average, - }), -); +const [tankDefinitions] = await Promise.all([awaitableTankDefinitions, ,]); -// lol don't ask questions -const testTanks = tanks - .filter((tank) => tank.testing) - .sort((a, b) => b.tier - a.tier); -const mostPlayedTanks = tankAverages - .sort((a, b) => b.samples.d_1 - a.samples.d_1) - .map(({ id }) => tankDefinitions.tanks[id]) - .filter((tank) => tank !== undefined && !tank.testing); -const popularTanks = [...testTanks, ...mostPlayedTanks].slice(0, 8); +const auth = await google.auth.getClient({ + keyFile: import.meta.env.GOOGLE_APPLICATION_CREDENTIALS, + scopes: ['https://www.googleapis.com/auth/analytics.readonly'], +}); +const analytics = google.analyticsdata({ version: 'v1beta', auth }); +const report = await analytics.properties.runReport({ + property: `properties/${assertSecret(import.meta.env.PUBLIC_GOOGLE_ANALYTICS_PROPERTY_ID)}`, + requestBody: { + dateRanges: [{ startDate: '7daysAgo', endDate: 'today' }], + dimensions: [{ name: 'pagePath' }], + metrics: [{ name: 'screenPageViews' }], + orderBys: [{ metric: { metricName: 'screenPageViews' }, desc: true }], + dimensionFilter: { + filter: { + fieldName: 'pagePath', + stringFilter: { matchType: 'BEGINS_WITH', value: '/tools/tankopedia/' }, + }, + }, + }, +}); + +if (!report.data.rows) { + throw new Error('No rows in report'); +} + +const hotTanks = report.data.rows + .filter( + (row) => + row.dimensionValues && + row.dimensionValues[0].value && + row.dimensionValues[0].value !== '/tools/tankopedia/' && + row.metricValues && + row.metricValues[0].value, + ) + .map((row) => ({ + id: Number( + row.dimensionValues![0].value!.match( + /\/tools\/tankopedia\/(\d+)\/?/, + )?.[1], + ), + views: Number(row.metricValues![0].value!), + })) + .filter((row) => { + if (!(row.id in tankDefinitions.tanks)) { + // console.log('Unknown tank', row.id); + } + + return row.id in tankDefinitions.tanks; + }) + .slice(0, 16) + .map(({ id, views }) => ({ + tank: tankDefinitions.tanks[id], + views, + })); export function HomePageHotTanks() { return ( @@ -36,15 +73,26 @@ export function HomePageHotTanks() { function Content() { return ( - + Popular tanks + + Last 7 days + - {popularTanks.map((tank) => ( - - + {hotTanks.map((row) => ( + + + + {Math.round(row.views * (30 / 7)).toLocaleString('en-US')} + + } + /> ))} diff --git a/packages/website/src/components/Party3.astro b/packages/website/src/components/Party3.astro index e324ab60e..f3730d9dc 100644 --- a/packages/website/src/components/Party3.astro +++ b/packages/website/src/components/Party3.astro @@ -1,8 +1,14 @@ +--- +import { assertSecret } from '@blitzkit/core'; +--- + {/* google analytics */} + src={`https://www.googletagmanager.com/gtag/js?id=${assertSecret( + import.meta.env.PUBLIC_GOOGLE_TAG_MANAGER_ID, + )}`}> {/* nitro ads */} diff --git a/packages/website/src/components/TankCard/index.tsx b/packages/website/src/components/TankCard/index.tsx index 076c2405c..eea103f66 100644 --- a/packages/website/src/components/TankCard/index.tsx +++ b/packages/website/src/components/TankCard/index.tsx @@ -1,7 +1,7 @@ import { asset, tankIcon, TankType, type TankDefinition } from '@blitzkit/core'; import { Flex, Link, Text, type TextProps } from '@radix-ui/themes'; import { uniq } from 'lodash-es'; -import { forwardRef } from 'react'; +import { forwardRef, type ReactNode } from 'react'; import { TankopediaPersistent } from '../../stores/tankopediaPersistent'; import { classIcons } from '../ClassIcon'; import { MAX_RECENTLY_VIEWED } from '../TankSearch/constants'; @@ -10,7 +10,7 @@ import './index.css'; type TankCardProps = TextProps & { tank: TankDefinition; onTankSelect?: (tank: TankDefinition) => void; - discriminator?: string; + discriminator: ReactNode; noLink?: boolean; }; diff --git a/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/index.tsx b/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/index.tsx index d2f03b7a2..1e36c0c08 100644 --- a/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/index.tsx +++ b/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/index.tsx @@ -108,7 +108,6 @@ export function SceneProps() { let { dispersion } = characteristics; const turretRotationSpeed = degToRad(characteristics.turretTraverseSpeed); const gunRotationSpeed = degToRad(characteristics.gunTraverseSpeed); - const mockTank = useLoader(GLTFLoader, asset(`3d/tanks/models/12305.glb`)); const texture = useLoader(TextureLoader, imgur('C28Z8nU')); texture.anisotropy = 2; @@ -119,6 +118,7 @@ export function SceneProps() { }); let lastTime = 0; + let lastPenalty = 0; let DEBUG_disable = false; useFrame(({ raycaster, camera, clock, gl }) => { @@ -160,22 +160,22 @@ export function SceneProps() { const desiredYaw = Math.atan2(-direction.x, -direction.z); const deltaPitch = desiredPitch - lastPitch; const deltaYaw = desiredYaw - lastYaw; - const maxDeltaPitch = - Math.sign(deltaPitch) * - Math.min(gunRotationSpeed * deltaT, Math.abs(deltaPitch)); - const maxDeltaYaw = - Math.sign(deltaYaw) * - Math.min(turretRotationSpeed * deltaT, Math.abs(deltaYaw)); + const deltaAngle = Math.sqrt(deltaPitch ** 2 + deltaYaw ** 2); + const clampedDeltaAngle = Math.min(gunRotationSpeed * deltaT, deltaAngle); + const clampedDeltaPitch = deltaPitch * (deltaAngle / clampedDeltaAngle); + const clampedDeltaYaw = deltaYaw * (deltaAngle / clampedDeltaAngle); const [pitch, yaw] = applyPitchYawLimits( - lastPitch + maxDeltaPitch, - lastYaw + maxDeltaYaw, + lastPitch + clampedDeltaPitch, + lastYaw + clampedDeltaYaw, gunModelDefinition.pitch, turretModelDefinition.yaw, ); - const deltaRotation = Math.abs(maxDeltaPitch) + Math.abs(maxDeltaYaw); - const rotationSpeed = deltaRotation; + const actualDeltaPitch = pitch - lastPitch; + const actualDeltaYaw = yaw - lastYaw; + const deltaRotation = Math.abs(actualDeltaPitch) + Math.abs(actualDeltaYaw); + const rotationSpeed = deltaRotation / deltaT; const turretTraversePenalty = characteristics.dispersionTurretTraversing * radToDeg(rotationSpeed); @@ -186,9 +186,8 @@ export function SceneProps() { dispersionMod * Math.exp(-deltaT / characteristics.aimTime) - dispersionMod; - dispersion += penalty + dispersionModDischarged; - - document.title = `${dispersion.toFixed(3)} (${penalty.toFixed(3)})`; + dispersion += penalty - lastPenalty + dispersionModDischarged; + lastPenalty = penalty; modelTransformEvent.emit({ pitch, yaw }); lastPitch = pitch;