Panel: die volle Fernbedienung ueber der Senderliste
Was laeuft, wo, aus welcher Quelle, mit Fortschrittsbalken. Sprachkanal waehlen, Sender abspielen, Ueberspringen, Zum Radio, Stopp, Lautstaerke-Schieber. Einreihen per Link oder Suchbegriff, Warteschlange mit Hoch/Runter/Weg und Leeren. Darunter ein aufklappbarer yt-dlp-Block: Zustand, Fassung, cookies.txt, eigene Argumente, Aktualisieren -- und die letzte Fehlerzeile im Klartext. Steht ueber der Senderliste, weil man oefter etwas abspielt als die Liste pflegt. Die Abfrage laeuft nur, solange der Community-Reiter offen ist. Sonst ginge alle fuenf Sekunden eine Anfrage gegen eine Ansicht raus, die niemand ansieht. Der Balken erscheint nur bei bekannter Dauer. Bei einem Livestream gaebe er einen Stand vor, den niemand kennt -- dort steht stattdessen "live". Die Kanalauswahl graut aus, wo der Bot nicht rein darf. Ein Kanal, den das Panel anbietet und in den der Bot dann nicht kommt, sieht aus wie ein kaputter Knopf. Geprueft: der Vite-Build laeuft durch, und ein Abgleich stellt alle 30 Feldpfade, die die Oberflaeche vom Stand liest, gegen die echte API-Antwort -- 0 fehlen. Der Abgleich hat eine Gegenprobe mit bekanntem Ausgang (ein Feld, das es nicht gibt, muss als fehlend erkannt werden) und prueft vorher, ob die sonst leeren Zweige (Warteschlange, Cookies, letzter Fehler) ueberhaupt besetzt sind -- sonst meldet er "ungueltig" statt "in Ordnung". Seine erste Fassung hatte Fehlalarm geschlagen (?. und .map als fehlende Felder gelesen); das ist behoben. NICHT geprueft: das tatsaechliche Rendern im Browser -- hier ist weder Browser noch DOM-Werkzeug vorhanden.
This commit is contained in:
+14
-3
@@ -109,10 +109,21 @@ export const MODULES = [
|
||||
},
|
||||
{
|
||||
id: 'radio', group: 'community', name: 'Radio',
|
||||
desc: 'Webradio im Sprachkanal — /radio öffnet eine Tafel mit Sender-Auswahl zum '
|
||||
+ 'Durchschalten. Der Bot geht von selbst wieder raus, wenn der Kanal leer ist, '
|
||||
+ 'und kommt nach einem Neustart in den Kanal zurück.',
|
||||
desc: 'Webradio und YouTube im Sprachkanal — /radio öffnet eine Tafel mit '
|
||||
+ 'Sender-Auswahl, /musik eine zweite fürs Einreihen von YouTube-Titeln. '
|
||||
+ 'Der Bot geht von selbst wieder raus, wenn der Kanal leer ist, und kommt '
|
||||
+ 'nach einem Neustart in den Kanal zurück.',
|
||||
tab: 'community', setting: 'radio_enabled', defaultOn: false,
|
||||
fields: [
|
||||
{
|
||||
setting: 'radio_youtube_enabled', label: 'YouTube erlauben', art: 'schalter',
|
||||
hint: 'braucht yt-dlp auf dem Server; ohne Haken laufen nur die Sender',
|
||||
},
|
||||
{
|
||||
setting: 'ytdlp_args', label: 'Eigene yt-dlp-Argumente', art: 'text',
|
||||
hint: 'nur nötig, wenn YouTube sperrt — z. B. --extractor-args "youtube:player_client=android_vr"',
|
||||
},
|
||||
],
|
||||
tool: { tab: 'community', label: 'Sender verwalten' },
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user