Frontend-Komponenten¶
Frontend: React + PrimeReact + Vite.
Hauptseiten¶
RipperPage.jsx¶
Pipeline-Steuerung:
- Status/Progress/ETA
- Metadaten-Dialog
- Playlist-Entscheidung
- Review-Panel (Track-Auswahl)
- Queue-Interaktion (reorder/add/remove)
- Job-Aktionen (Start/Cancel/Retry/Re-Encode)
- Hardware-Monitoring-Anzeige
- Aktivitäts-Tracking (Skripte, Ketten, Cron)
SettingsPage.jsx¶
Konfiguration:
- dynamisches Settings-Formular (
DynamicSettingsForm) - Skripte/Ketten inkl. Reorder/Test
- User-Presets
- Cron-Jobs (
CronJobsTab)
HistoryPage.jsx¶
Historie:
- Job-Liste/Filter
- Job-Details + Logs
- OMDb-Nachzuweisung
- Re-Encode/Restart-Workflows
ConverterPage.jsx¶
Datei-Converter:
- Datei-Explorer des Converter-Eingangsordners (Baum-Ansicht)
- Upload von Audio/Video-Dateien (bis zu 50 Dateien gleichzeitig)
- Dateiverwaltung: Umbenennen, Verschieben, Löschen, Ordner erstellen
- Jobs aus Dateiauswahl erstellen
- Converter-Job-Konfiguration (Ausgabeformat, Preset, Tracks)
- Job-Start, Abbruch, Löschung
- Automatischer Scan-Status
AudiobooksPage.jsx¶
Dedizierter AAX-/Audiobook-Flow:
- Upload-Panel für AAX-Dateien
- aktive Audiobook-Jobkarten mit Start/Cancel/Retry/Delete
- Audiobook-Konfigurationspanel und Output-Explorer
DownloadsPage.jsx¶
Download-Queue:
- Ausgabedateien aus der Job-Historie in die Queue einreihen
- Download-Status verfolgen (ausstehend, wird verarbeitet, bereit, fehlgeschlagen)
- Dateien als ZIP herunterladen
- Download-Einträge löschen
DatabasePage.jsx¶
Expert-Modus:
- Tabellarische Rohsicht der Job-Datenbank
- Orphan-RAW-Import
Wichtige Komponenten¶
PipelineStatusCard.jsx— Pipeline-Status-Anzeige mit ProgressMetadataSelectionDialog.jsx— OMDb-Metadaten-AuswahlMediaInfoReviewPanel.jsx— Track-Auswahl-Interface (Video/Audio/Untertitel)JobDetailDialog.jsx— Job-Detailansicht mit LogsCronJobsTab.jsx— Cron-Job-VerwaltungDynamicSettingsForm.jsx— Schema-gesteuertes EinstellungsformularConverterJobCard.jsx— Converter-Job-DarstellungCdRipConfigPanel.jsx— Konfiguration für Audio-CD-Ripping
API-Client (api/client.js)¶
- zentraler
request()mit JSON-Handling - Fehlerobjekt aus API wird auf
Error(message)gemappt VITE_API_BASEdefault/api
WebSocket (hooks/useWebSocket.js)¶
- URL:
VITE_WS_URLoder automatischws(s)://<host>/ws - Auto-Reconnect mit 1500ms Intervall
In App.jsx werden u. a. verarbeitet:
PIPELINE_STATE_CHANGEDPIPELINE_PROGRESSPIPELINE_QUEUE_CHANGED- Disk erkannt / Disk entfernt
HARDWARE_MONITOR_UPDATEDOWNLOADS_UPDATEDCONVERTER_SCAN_UPDATERUNTIME_ACTIVITY_CHANGED