fix(zombies): die Fehlermeldung unterscheidet jetzt Rip von Kompression
Ampel / ampel (push) Successful in 29s
Ampel / ampel (push) Successful in 29s
Nachtrag, direkt am echten Fall aufgefallen. Die Zombie-Erkennung hat den toten
Rip gefunden (Beleg: nach 140 s noch "processing 12 %", nach 160 s "failed") -
aber der Fehlertext sagte:
"Die Rohdateien wurden NICHT geloescht: mit 'Neu komprimieren' laeuft die
Kompression erneut, ohne die Disc noch einmal zu rippen."
Der Satz war fuer einen toten TRANSCODE geschrieben, wo die Roh-MKV vollstaendig
ist. Seit "running" mit zu den Arbeitsstati gehoert, traf er auch abgebrochene
RIPS - und da ist er schlicht falsch: Die Datei ist ein Bruchstueck (im Vorfall
5,1 GB von rund 40), und wer dem Rat folgt, komprimiert einen Film, der bei 12 %
aufhoert.
Jetzt unterscheidet der Text die Phase:
Rip tot -> "Der Rip war bei 12 % - die Roh-Datei ist UNVOLLSTAENDIG ...
Richtig ist: Disc wieder einlegen und neu rippen."
Transcode tot -> "Der Rip war fertig, nur die Kompression nicht ..."
Die deutschen Anfuehrungszeichen haben dabei zum vierten Mal an einem Tag
zugeschlagen (in DOPPELT gequoteten Python-Strings beendet das schliessende
Zeichen den String). Die betroffenen Zeilen sind jetzt einfach gequotet, wie es
der Bestand ohnehin macht.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -99,16 +99,50 @@ def finde_zombies(offene_jobs, belegte) -> list:
|
||||
return [job for job in offene_jobs if job.get("id") not in belegte]
|
||||
|
||||
|
||||
# In welcher Phase starb der Job? Entscheidet, was danach hilft.
|
||||
RIP_STATI = ("running", "ripping")
|
||||
|
||||
|
||||
def war_im_rip(job) -> bool:
|
||||
"""Starb der Job WÄHREND des Rippens? (pure Funktion)
|
||||
|
||||
Der Unterschied ist für den Nutzer der ganze Punkt: Nach einem toten
|
||||
TRANSCODE liegt eine vollständige Roh-MKV da — „Neu komprimieren" genügt und
|
||||
spart eine Stunde Rippen. Nach einem toten RIP liegt ein ABGESCHNITTENES
|
||||
Bruchstück da (im Vorfall 26.07.2026: 5,1 GB von rund 40), und Komprimieren
|
||||
ergäbe einen Film, der bei 12 % aufhört.
|
||||
"""
|
||||
return (job.get("status") or "") in RIP_STATI
|
||||
|
||||
|
||||
def fehlertext(job) -> str:
|
||||
"""Ehrlicher Klartext für die Job-Karte — was war, und was jetzt hilft."""
|
||||
"""Ehrlicher Klartext für die Job-Karte — was war, und was jetzt hilft.
|
||||
|
||||
⚠️ Der Text unterscheidet die Phase (26.07.2026). Vorher stand hier für JEDEN
|
||||
Fall „mit 'Neu komprimieren' läuft die Kompression erneut, ohne die Disc noch
|
||||
einmal zu rippen" — geschrieben für einen toten Transcode. Seit „running" mit
|
||||
zu den Arbeitsstati gehört, traf derselbe Satz auch abgebrochene RIPS, und da
|
||||
ist er schlicht falsch: Wer ihn befolgt, bekommt ein Bruchstück komprimiert.
|
||||
"""
|
||||
zuletzt = job.get("status") or "unbekannt"
|
||||
return (
|
||||
kopf = (
|
||||
f"Abgebrochen: Der Vorgang lief nicht mehr (zuletzt gemeldet: {zuletzt}). "
|
||||
"Beim Start des Workers war dazu weder ein Prozess noch eine Aufgabe in "
|
||||
"der Warteschlange zu finden — meistens ein Absturz oder ein Neustart "
|
||||
"mitten im Lauf. Die Rohdateien wurden NICHT gelöscht: mit "
|
||||
"'Neu komprimieren' läuft die Kompression erneut, ohne die Disc noch "
|
||||
"einmal zu rippen."
|
||||
"mitten im Lauf. "
|
||||
)
|
||||
if war_im_rip(job):
|
||||
fortschritt = job.get("progress") or 0
|
||||
return kopf + (
|
||||
f'Der Rip war bei {fortschritt} % — die Roh-Datei ist damit '
|
||||
'UNVOLLSTÄNDIG. Sie wurde nicht gelöscht, aber „Neu komprimieren" '
|
||||
'ergäbe einen Film, der mitten drin aufhört. Richtig ist: Disc '
|
||||
'wieder einlegen und neu rippen.'
|
||||
)
|
||||
return kopf + (
|
||||
'Der Rip war fertig, nur die Kompression nicht. Die Roh-Dateien wurden '
|
||||
'NICHT gelöscht: mit „Neu komprimieren" läuft sie erneut, ohne die Disc '
|
||||
'noch einmal zu rippen.'
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user