feat: Soundboard Plugin + Radio Globe Fixes

- Add Soundboard plugin (full Jukebox port): server + frontend + CSS
- Fix Radio Globe: swap geo coords (API returns [lng,lat] not [lat,lng])
- Fix Radio stations showing "Unbekannt": use item.page.title + fix channel ID regex
- Add DirectMessages + MessageContent intents for DM commands
- Register SoundboardTab in App.tsx with scoped theme/card-size CSS vars

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Daniel 2026-03-06 00:51:07 +01:00
parent 6696fed9d7
commit 901dfe54be
9 changed files with 4545 additions and 14 deletions

View file

@ -5,6 +5,7 @@ import { addSSEClient, removeSSEClient, sseBroadcast, getSSEClientCount } from '
import { loadState, getFullState } from './core/persistence.js';
import { getPlugins, registerPlugin, PluginContext } from './core/plugin.js';
import radioPlugin from './plugins/radio/index.js';
import soundboardPlugin from './plugins/soundboard/index.js';
// ── Config ──
const PORT = Number(process.env.PORT ?? 8080);
@ -101,6 +102,7 @@ client.once('ready', async () => {
async function boot(): Promise<void> {
// ── Register plugins ──
registerPlugin(radioPlugin);
registerPlugin(soundboardPlugin);
// Init all plugins
for (const p of getPlugins()) {