Commit Graph

43 Commits

Author SHA1 Message Date
jessikitty 0c5123e3a6 Admin: accept mp4/webm uploads and auto-convert mp4 to transparent webm+webp
- Allow .mp4/.webm in addition to image types; raise upload limit to 64MB
- MP4 uploads are luma-keyed to a VP9+alpha WebM plus an animated WebP
  fallback via lib/ghost-media.js; the raw MP4 is discarded
- Pre-made .webm uploads are stored directly
- All prior media (image/webm/webp) is cleaned up on replace and on delete
- WebP doubles as the still thumbnail for converted ghosts
2026-06-18 14:27:50 +10:00
jessikitty dc5e032b3a Emit webm and webp URLs in public ghost objects
rowToGhost now returns webm/webp alongside image, so the client renderer can
select the VP9+alpha video billboard (with WebP/GIF fallback).
2026-06-18 14:22:50 +10:00
jessikitty 22983caa18 Add webm_path and webp_path columns to ghosts (idempotent migration)
ALTER TABLE guarded by a column-existence check so existing production
databases gain the columns without data loss.
2026-06-18 14:20:50 +10:00
jessikitty 9866e44445 Add server-side ghost media converter (mp4 -> transparent webm + webp)
Shells out to system ffmpeg with the same luma-key pipeline as ghostify.sh.
Produces a VP9+alpha WebM (browser-decoded primary) and an animated WebP
fallback. No new npm dependency; fails gracefully if ffmpeg is absent.
2026-06-18 14:18:50 +10:00
jessikitty ec4442d4ce Add WebM (VP9+alpha) VideoTexture ghost billboards with GIF/WebP fallback
- Detect VP9-alpha WebM support once at load; iOS Safari falls back to <img>
- addGhost prefers data.webm via THREE.VideoTexture (browser-decoded, no
  per-frame needsUpdate pump) when supported
- On video error, gracefully swap the billboard to the GIF/image texture
- Pause + release ghost <video> elements on capture and on hunt teardown to
  avoid leaking decoders
2026-06-18 13:15:54 +10:00
jessikitty 00cd1696c6 Add iOS motion-gate overlay styles 2026-06-18 08:41:39 +10:00
jessikitty ee3dace9b1 Add iOS Enable Motion overlay to hunt screen 2026-06-18 08:40:29 +10:00
jessikitty 0da74fb2dc Fix iOS gyro: explicit Enable Motion gate; spawn ghosts near center, reveal on spawn 2026-06-18 08:39:37 +10:00
jessikitty bf719a1dda Update setup docs for dotenv + default port 33033 2026-06-17 22:26:11 +10:00
jessikitty cc0803b09f Point nginx upstream at 127.0.0.1:33033 2026-06-17 22:25:17 +10:00
jessikitty ad5fd90b60 Default port 33033; note dotenv auto-loads .env 2026-06-17 22:24:59 +10:00
jessikitty bf7930fc20 Load .env in seed script (ADMIN_USER/PASS/UPLOAD_DIR) 2026-06-17 22:24:38 +10:00
jessikitty 2c71a6bd39 Load .env via dotenv; default port to 33033 2026-06-17 22:23:57 +10:00
jessikitty 010558d104 Add dotenv dependency 2026-06-17 22:23:39 +10:00
jessikitty af4fd70e39 Add About/Tribute page styles 2026-06-17 22:02:50 +10:00
jessikitty 3a9dff06fe Wire up About screen routing and button 2026-06-17 22:00:50 +10:00
jessikitty 60d5844894 Add About/Tribute info page (words-only homage explanation) 2026-06-17 21:58:19 +10:00
jessikitty 00441f5787 Add step-by-step setup guide to README 2026-06-17 16:41:48 +10:00
jessikitty 35a2777dcb Add admin console client logic 2026-06-17 16:40:06 +10:00
jessikitty e1f18303a6 Add game client logic (scan, AR hunt, roster) 2026-06-17 16:39:18 +10:00
jessikitty f3c450092a Add admin panel page 2026-06-17 16:38:05 +10:00
jessikitty 5dbbefc032 Add main game page (title, scan, AR hunt, roster) 2026-06-17 16:37:40 +10:00
jessikitty 13906e9bf2 Add admin panel CSS 2026-06-17 16:37:15 +10:00
jessikitty 261e8c1275 Add game CSS (title, scanner, AR HUD, roster) 2026-06-17 16:36:50 +10:00
jessikitty 0a0f04f72b Add shared CSS 2026-06-17 16:36:10 +10:00
jessikitty 5627c1f3bc Add nginx reverse-proxy example 2026-06-17 16:35:51 +10:00
jessikitty b21d10c0d8 Add ghosts seed data (111 ghosts with full stats) 2026-06-17 11:49:15 +10:00
jessikitty 6355b02782 Add abilities seed data (common + boss) 2026-06-17 11:47:18 +10:00
jessikitty 188242a23a Add sets seed data (boss-to-set references) 2026-06-17 11:46:48 +10:00
jessikitty dc408d0929 Add DB seed script with admin bootstrap 2026-06-17 11:46:13 +10:00
jessikitty a17504a16e Add xlsx -> JSON extractor 2026-06-17 11:45:47 +10:00
jessikitty a80b4e272e Add admin CRUD routes with image upload 2026-06-17 11:45:16 +10:00
jessikitty ed4e03712b Add public game API routes 2026-06-17 11:44:43 +10:00
jessikitty d2ce965c63 Add auth routes 2026-06-17 11:44:20 +10:00
jessikitty fd3c0f19fd Add JWT auth middleware 2026-06-17 11:44:08 +10:00
jessikitty d13aaf894f Add SQLite schema and connection 2026-06-17 11:43:49 +10:00
jessikitty 3c817eeb67 Add Express server entry point 2026-06-17 11:43:31 +10:00
jessikitty 79782aa565 Keep uploads dir 2026-06-17 11:43:18 +10:00
jessikitty 4e3ffcf084 Add .env.example 2026-06-17 11:43:13 +10:00
jessikitty 8cf848830f Add .gitignore 2026-06-17 11:43:06 +10:00
jessikitty ebf006b4e5 Add package.json 2026-06-17 11:43:01 +10:00
jessikitty ce81534bdc Add project README 2026-06-17 11:42:50 +10:00
jessikitty 6fc4d62342 Initial commit 2026-06-17 11:42:05 +10:00