Update readme.md

This commit is contained in:
simonpipe 2025-12-18 22:16:32 +01:00
parent 901419e9cc
commit 64fc9fb889

View file

@ -4,45 +4,47 @@ Ein moderner, leichtgewichtiger Internetradio-Player zum Selber-Hosten. Der Play
## ✨ Features ## ✨ Features
- **Läuft auch auf Servern ohne PHP:** Es ist nur HTML und Javascript nötig. - **Läuft auch auf Servern ohne PHP:** Es ist nur HTML und JavaScript nötig.
- **Individuelle Presets:** Sender können einfach hinzugefügt, bearbeitet, gelöscht und per Drag & Drop sortiert werden. - **Individuelle Presets:** Sender können einfach hinzugefügt, bearbeitet, gelöscht und per Drag & Drop sortiert werden.
- **Metadaten-Anzeige:** Automatische Anzeige von Sendername und aktuellem Song (diese Funktion erfordert PHP-Unterstützung). - **Metadaten-Anzeige:** Automatische Anzeige von Sendername und aktuellem Song (erfordert PHP-Unterstützung für den Proxy).
- **Flexibler Import/Export:** Sichere deine Senderliste als JSON-Datei oder als kompakten String. - **Flexibler Import/Export:** Sichere deine Senderliste als JSON-Datei oder teile sie über einen kompakten URL-String.
- **Sleeptimer:** Praktische Abschaltautomatik für entspanntes Hören. - **Sleeptimer:** Praktische Abschaltautomatik mit Live-Restzeitanzeige auf dem Button.
- **Local Storage:** Deine Einstellungen werden direkt im Browser gespeichert kein Backend-Setup für die Datenbank nötig. - **Local Storage:** Deine Einstellungen werden direkt im Browser gespeichert kein Datenbank-Setup nötig und Multi-User tauglich.
- **Modularer Code:** Sauber getrennte Logik für UI, Presets, Metadaten und Player. - **Modularer Code:** Sauber getrennte Logik für UI, Presets, Metadaten und Player.
## 🛠 Installation ## 🛠 Installation
1. Lade alle Dateien herunter und kopiere sie auf deinen Webserver. 1. Lade alle Dateien herunter und kopiere sie auf deinen Webserver.
2. Falls du die Titelanzeige (Metadaten) nutzen möchtest, muss dein Server **PHP** unterstützen. 2. Falls du die Titelanzeige (Metadaten) nutzen möchtest, muss dein Server **PHP** unterstützen.
3. Die Datei `webradio_presets.json` dient als Standard-Vorlage beim ersten Start oder wenn alle vorhandenen Presets gelöscht werden. 3. **Keine Datenbank nötig:** Beim ersten Aufruf ist die Senderliste leer. Du kannst deine Sender einfach über "Presets bearbeiten" hinzufügen oder einen Export-String importieren.
## 📂 Dateistruktur ## 📂 Dateistruktur & Module
Um den Code wartungsfreundlich zu halten, ist das Projekt in Module unterteilt: Um den Code wartungsfreundlich zu halten, ist das Projekt modular aufgebaut:
- `index.html`: Das Grundgerüst des Players. - `index.html`: Das Grundgerüst und das User-Interface.
- `main.js`: Die Schaltzentrale (steuert den Ablauf). - `main.js`: Die Schaltzentrale (Orchestrierung von Player und Events).
- `ui-helper.js`: Verwaltet Modals, Titel und Footer-Anzeigen. - `ui-helper.js`: Zentrale Steuerung für Modals (Fenster) und allgemeine UI-Elemente.
- `preset-manager.js`: Übernimmt das Speichern, Laden und die Kompression der Senderliste. - `preset-manager.js`: Logik für das Speichern, Laden und Komprimieren der Senderliste.
- `meta-handler.js`: Kommuniziert mit dem PHP-Proxy für Songtitel. - `preset-ui.js`: Verwaltung der Bearbeitungs-Tabelle und der Export-Funktionen.
- `sleeptimer.js`: Logik für die automatische Abschaltung. - `sleeptimer.js`: Logik für die automatische Abschaltung und das Update der Zeitanzeige.
- `metadata.php`: Der Proxy, der die Metadaten von den Radio-Streams abruft. - `meta-handler.js`: Kommuniziert mit dem PHP-Proxy für Song-Metadaten.
- `metadata.php`: Der PHP-Backend-Proxy zum Abrufen von ICY-Metadaten der Streams.
## 🚀 Nutzung ## 🚀 Nutzung
- **Sender hinzufügen:** Über "Presets bearbeiten" kannst du eigene Stream-URLs eintragen. - **Sender hinzufügen:** Über "Presets bearbeiten" kannst du eigene Namen und Stream-URLs eintragen.
- **Sortieren:** Nutze das ☰-Symbol in der Liste, um die Reihenfolge per Drag & Drop zu ändern. - **Sortieren:** Nutze das ☰-Symbol in der Liste, um die Reihenfolge per Drag & Drop zu ändern.
- **Teilen:** Exportiere deine Liste als Code-String, um sie auf einem anderen Gerät (z.B. Handy oder Tablet) einfach wieder zu importieren. - **Teilen:** Kopiere den Share-Link im Bearbeitungs-Fenster, um deine Liste auf einem anderen Gerät (z.B. Handy) zu öffnen.
## 🔍 Fehlerbehebung (Troubleshooting) ## 🔍 Fehlerbehebung (Troubleshooting)
- **Keine Titelanzeige:** Überprüfe, ob die `metadata.php` erreichbar ist und die PHP-Erweiterung `CURL` aktiviert ist.
- **Keine Titelanzeige:** Überprüfe, ob die `metadata.php` im Hauptverzeichnis liegt und dein Server PHP-Requests erlaubt (CURL muss in der PHP-Konfiguration meist aktiviert sein). - **Presets werden nicht gespeichert:** Stelle sicher, dass "Local Storage" im Browser aktiviert ist.
- **Presets werden nicht gespeichert:** Stelle sicher, dass dein Browser "Local Storage" erlaubt und nicht im privaten Modus ist, der Daten nach dem Schliessen löscht. - **Stream spielt nicht ab:** Achte auf "Mixed Content". Wenn deine Seite über `https` läuft, sollten auch die Stream-URLs mit `https://` beginnen.
- **Stream spielt nicht ab:** Einige Browser blockieren "Mixed Content" (HTTP-Streams auf einer HTTPS-Seite). Achte darauf, nach Möglichkeit `https://`-Stream-URLs zu verwenden. - **Symbole fehlen:** Das Projekt nutzt FontAwesome. Stelle sicher, dass eine aktive Internetverbindung besteht, um die Icons vom CDN zu laden.
## ⚖️ Lizenz ## ⚖️ Lizenz
Unlicense ([Siehe LICENSE](https://codeberg.org/simonpipe/Radioplayer-with-Presets/src/branch/main/LICENSE))
Unlicense (<a href="https://codeberg.org/simonpipe/Radioplayer-with-Presets/src/branch/main/LICENSE">Siehe LINCENSE</a>) Unlicense (<a href="https://codeberg.org/simonpipe/Radioplayer-with-Presets/src/branch/main/LICENSE">Siehe LINCENSE</a>)
--- ---