Add player functionality with HLS support and API integration

- Implemented a new Player class in player.js to handle audio playback, including HLS support using hls.js.
- Created a shared API module in api.js for making HTTP requests with proper error handling.
- Added DOM utility functions in dom.js for creating and clearing elements.
- Introduced WebSocket connection handling in ws.js for real-time updates.
- Developed a comprehensive CSS stylesheet for styling the application, including a high-contrast theme.
This commit is contained in:
Marco Mooren
2026-05-10 14:43:00 +02:00
commit e0a60f7b64
51 changed files with 9022 additions and 0 deletions

17
data/seed/categories.json Normal file
View File

@@ -0,0 +1,17 @@
[
{ "id": "starter", "label": "Starter pack", "icon": "★", "order": 0 },
{ "id": "dutch-public", "label": "Nederlandse publieke","icon": "🇳🇱", "order": 1 },
{ "id": "dutch-commercial", "label": "Nederlandse commercieel","icon": "🇳🇱", "order": 2 },
{ "id": "bbc", "label": "BBC family", "icon": "🇬🇧", "order": 3 },
{ "id": "fip", "label": "FIP family", "icon": "🇫🇷", "order": 4 },
{ "id": "underground", "label": "Underground & curated","icon": "🌐", "order": 5 },
{ "id": "ambient", "label": "Ambient & lo-fi", "icon": "🌫", "order": 6 },
{ "id": "electronic", "label": "Electronic", "icon": "⚡", "order": 7 },
{ "id": "jazz", "label": "Jazz & blues", "icon": "🎷", "order": 8 },
{ "id": "classical", "label": "Classical", "icon": "🎻", "order": 9 },
{ "id": "rock", "label": "Rock & indie", "icon": "🎸", "order": 10 },
{ "id": "reggae", "label": "Reggae & dub", "icon": "🌴", "order": 11 },
{ "id": "world", "label": "World & regional", "icon": "🌍", "order": 12 },
{ "id": "soma", "label": "SomaFM channels", "icon": "📻", "order": 13 },
{ "id": "nts", "label": "NTS infinite mixtapes","icon": "♾", "order": 14 }
]