feat: Radio Plugin – 3D Globe mit weltweiten Radiosendern

- Radio Garden API Client (30K+ Orte, Sender-Suche, Stream-URL Auflösung)
- Discord Voice Streaming via ffmpeg (PCM Pipeline)
- Interactive 3D Globe (globe.gl) mit allen Radiosender-Standorten
- Sender-Panel mit Play/Stop/Favoriten
- Live-Suche nach Sendern und Städten
- Now-Playing Bar mit Equalizer-Animation
- Guild/Voice-Channel Auswahl
- SSE Broadcasting für Live-Updates
- Favoriten-System mit Persistenz
- Responsive Design (Mobile/Tablet/Desktop)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Daniel 2026-03-05 23:23:52 +01:00
parent ae1c41f0ae
commit 847c963d86
7 changed files with 1487 additions and 9 deletions

View file

@ -1,4 +1,5 @@
import { useState, useEffect, useRef } from 'react';
import RadioTab from './plugins/radio/RadioTab';
interface PluginInfo {
name: string;
@ -6,8 +7,10 @@ interface PluginInfo {
description: string;
}
// Plugin tab components will be registered here
const tabComponents: Record<string, React.FC<{ data: any }>> = {};
// Plugin tab components
const tabComponents: Record<string, React.FC<{ data: any }>> = {
radio: RadioTab,
};
export function registerTab(pluginName: string, component: React.FC<{ data: any }>) {
tabComponents[pluginName] = component;
@ -72,6 +75,7 @@ export default function App() {
// Tab icon mapping
const tabIcons: Record<string, string> = {
radio: '\u{1F30D}',
soundboard: '\u{1F3B5}',
stats: '\u{1F4CA}',
events: '\u{1F4C5}',