Files
fuesse-sexy/server/sceneStore.js
Guido 1a9710ec88 Initial commit: fuesse.sexy — Where's the Feet
Wimmel-Suchspiel: finde 3 versteckte Fuesse in einer randvollen Szene.
- Node/Express-Server generiert Szenen prozedural aus einer gemeinsamen Library
  (library/props = Deko, library/feet = Fuesse); Spezial-Level (emoji) unter scenes/
- Serverseitige Trefferpruefung (nicht per DOM austrickbar)
- Frontend rendert die Szene als ein Bild -> fluessiges Zoom/Pan (panzoom)
- Dark Mode, kein Start-Screen, Installationsskript + Deploy-Doku (Proxmox LXC)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-04 17:29:25 +02:00

30 lines
900 B
JavaScript

// Haelt die Trefferzonen jeder generierten Szene serverseitig, damit Klicks
// geprueft werden koennen, ohne die Zielpositionen je ans Frontend zu schicken.
// Einfache Groessen- und Zeitbegrenzung verhindert ein Speicher-Leck bei vielen
// Aufrufen.
const MAX_ENTRIES = 500;
const TTL_MS = 1000 * 60 * 30; // 30 Minuten
const scenes = new Map(); // sceneId -> { targets, createdAt }
function evictIfNeeded() {
const now = Date.now();
for (const [id, entry] of scenes) {
if (now - entry.createdAt > TTL_MS) scenes.delete(id);
}
while (scenes.size > MAX_ENTRIES) {
const oldest = scenes.keys().next().value; // Map behaelt Einfuege-Reihenfolge
scenes.delete(oldest);
}
}
export function saveScene(sceneId, targets) {
scenes.set(sceneId, { targets, createdAt: Date.now() });
evictIfNeeded();
}
export function getScene(sceneId) {
return scenes.get(sceneId) || null;
}