Commit Graph

3 Commits

Author SHA1 Message Date
Jeff Emmett c9cd56b452 feat: add World Radio page with 3D globe + Radio Garden integration
- New /radio page with interactive Three.js globe showing 30K+ radio stations worldwide
- Radio Garden API proxy routes (places, channels, stream resolver, search) with caching
- Extended Track type to MusicTrack | RadioTrack discriminated union
- MusicProvider handles radio streams (skip IndexedDB/precache, direct stream URL)
- Mini-player and full-screen player show LIVE badge, hide seek/download/lyrics for radio
- Shared globe component reused on /request-channel page (Search/Globe tab toggle)
- Homepage gets rose "Listen to Radio" button with Waves icon
- react-globe.gl for efficient rendering of 40K+ geo-points

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 16:48:01 -04:00
Jeff Emmett cee87aef10 feat: replace request channel form with iptv-org search & select UI
Users now browse the iptv-org catalog instead of manually typing channel
names. Adds /api/channels proxy with 1-hour cache, debounced search,
click-to-select with chips, and updated admin email format.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 18:21:36 -07:00
Jeff Emmett 709a87731c feat: add Request a Channel page, API route, and homepage buttons
Add channel request form (/request-channel) that emails admin with
channel details via nodemailer. Adds cyan "Request a Channel" button
to both hero and CTA sections of the homepage alongside Live TV and
Music buttons. Rename Traefik router to avoid conflicts with media stack.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 17:02:26 -07:00