Track-Auswahl-Tabelle, nativer Windows-Worker (via UI angeboten), Anleitungs-Tab
Ampel / ampel (push) Successful in 29s

Volle Titel-Auswahl vor dem Rip (Etappe-12-Rest):
- worker.tasks.scan_tracks: makemkvcon info -> Titel-Liste (Dauer/Groesse/
  Kapitel, apdefs-Attr 8/9/11) in die settings-Tabelle 'tracks:<device>';
  API: POST /devices/{n}/scan-tracks + GET /devices/{n}/tracks (Polling).
- Rip-Dialog: 'Disc scannen' -> Tabelle mit Checkboxen, Vorauswahl ab
  5 min, Groessen-Summe; gewaehlte Titel als meta.titles in den Job.
- rip_titel_auswahl: ein makemkvcon-Aufruf je Titel (mkv kann nur einen
  Titel oder all), Fortschritt anteilig. Parser-Tests dabei.

Nativer Windows-Worker OHNE Docker (Commander-Wunsch):
- Die Rippy-Instanz versorgt sich selbst: GET /worker-setup/windows
  liefert install.ps1, /worker-setup/paket den Worker-Code als Zip
  (api-Dockerfile kopiert docker/worker/*.py als worker_dist/ ins Image).
- install.ps1: Python-Check, venv + requirements, HandBrakeCLI 1.9.2 vom
  offiziellen GitHub-Release (URL per HEAD verifiziert), start-worker.bat
  mit celery -Q transcode --pool=solo (Celery-Doku: Windows nur solo),
  optional -Autostart via schtasks onlogon.
- tasks.py laedt jetzt auch ohne fcntl (Import-Guard) — rip_disc ist auf
  solchen Workern hart verriegelt (Klartext-Fehler statt Crash).
- Einstellungen -> Worker: Varianten-Umschalter Linux(Docker)/Windows(nativ)
  mit passenden Copy-Paste-Befehlen.

Anleitungs-Tab: Rippy erklaert sich selbst (Disc-Weg, Serien, NAS,
Media-Server, Benachrichtigungen, Key, Worker, Downloads, FAQ).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-07-24 15:18:08 +02:00
parent 325d95af6f
commit 3a4eb25392
15 changed files with 738 additions and 44 deletions
+25 -12
View File
@@ -398,20 +398,33 @@ irrelevant und kann komplett raus."
---
## Etappe 16 (24.07.2026): Track-Tabelle + nativer Windows-Worker + Anleitung
- [x] **Volle Titel-Auswahl vor dem Rip**: scan_tracks-Worker-Task,
Polling-Endpoints, Tabelle (Dauer/Größe/Kapitel, Vorauswahl ≥ 5 min)
im Rip-Dialog, Multi-Titel-Rip (ein makemkvcon-Aufruf je Titel,
Fortschritt anteilig). Parser mit Tests.
- [x] **Nativer Windows-Worker ohne Docker**: install.ps1 + Worker-Code
werden von der Rippy-Instanz selbst serviert (/worker-setup/*);
HandBrakeCLI 1.9.2 vom offiziellen GitHub-Release; celery
--pool=solo -Q transcode; optional Autostart. UI bietet Linux- und
Windows-Variante. E2E auf echtem Windows-PC bewiesen.
- [x] **Anleitungs-Tab**: Rippy erklärt sich selbst (Disc-Weg, Serien,
NAS, Media-Server, Benachrichtigungen, Key, Worker, FAQ).
---
## Ideen-Katalog (Rest) — bewusst offen
1. **Volle Track-Auswahl-Tabelle vor dem Rip** (awaiting_selection):
Scan-Task → Titel-Tabelle im UI → Auswahl → Rip. Der 80%-Fall ist mit
„Nur Hauptfilm" abgedeckt; die Tabelle lohnt für Bonus-Material-Discs.
2. **Nativer Windows-Worker (ohne Docker)**: PyInstaller-Paket (Celery
solo-Pool + HandBrakeCLI.exe gebündelt) als Windows-Dienst; verbindet
sich über die jetzt offenen Ports (6379/5432/8000). Braucht einen
echten Testlauf auf einer Windows-Maschine — nichts ungetestet liefern.
3. **Design 2.0**: `dark:`-Klassen statt Theme-Ternaries — die
Infrastruktur (darkMode: 'class' + html.dark) steht KOMPLETT, es ist
reine mechanische Konvertierung pro Komponente.
4. **AI-Box als VAAPI-Transcode-Worker**: Ports sind offen, Compose steht
1. **Design 2.0** (kommt in eine frische Session, Commander-Entscheid):
`dark:`-Klassen statt Theme-Ternaries — Infrastruktur steht komplett,
reine mechanische Konvertierung pro Komponente. Der neue Anleitungs-Tab
gehört mit in den Feinschliff.
2. **AI-Box als VAAPI-Transcode-Worker**: Ports sind offen, Compose steht
(deploy/remote-transcode-worker.yml) — es fehlt nur der NFS/SMB-Export
der Rippy-Ablage an die AI-Box (Infra-Entscheid auf der VM).
5. **Kodi-Bibliotheks-Refresh** (JSON-RPC VideoLibrary.Scan) analog zu
3. **Kodi-Bibliotheks-Refresh** (JSON-RPC VideoLibrary.Scan) analog zu
Jellyfin/Emby.
4. **Windows-Worker als echter Dienst** (statt start-worker.bat/onlogon):
z. B. via NSSM oder PyInstaller-Paket — Komfort-Ausbau der jetzt
funktionierenden nativen Variante.