Gefunden und gleich wieder weggeworfen

**Stream, nicht Strom.** Mein Fehler, und die Regel kenne ich: Fachbegriffe
bleiben englisch. Betroffen war eine Meldung im Spieler und vier Zeilen im
Tagesprotokoll.

**Der Abspann fiel durch die eigene Schranke.** `Hoechstlaenge` von fünf
Minuten galt für Vorspann und Abspann gleichermassen. Fünf Minuten sind
für einen Abspann aber keine Obergrenze, sondern die Regel — eine deutsche
Serienproduktion listet Sprecher, Synchronregie und Studio hinterher, und
sechs Minuten kommen vor. Der Tonabgleich fand das Stück, und die Zeile
darunter warf es weg. Von aussen sah das aus wie „nichts gefunden".
Der Abspann darf jetzt so lang sein wie sein Suchfenster; weiter reicht
eine Marke ohnehin nie.

**Vermutung, nicht Messung** — das Stück steht auf einem Server, an den ich
nicht komme. Deshalb dasselbe Commit:

**Man kann jetzt nachsehen.** Neben jeder Folge steht für Verwalter, was
die Erkennung gefunden hat: „Vorspann + Abspann", „Vorspann" oder „keine
Marken". Ob eine Marke fehlt oder bloss nicht angezeigt wird, war von
aussen nicht zu unterscheiden — und beides hat eine andere Ursache. Die
Angabe kostet nichts: sie steht längst in der Antwort des Servers.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-10-13 20:33:52 +02:00
co-authored by Claude Opus 5
parent a360bed02b
commit 74643b8242
4 changed files with 40 additions and 7 deletions
+1 -1
View File
@@ -1284,7 +1284,7 @@ export function spieler(anfrage: Spieleranfrage): void {
function hlsfehler(art: string, arten: { NETWORK_ERROR: string; MEDIA_ERROR: string }): string {
if (art === arten.NETWORK_ERROR) {
return 'Der Strom ist abgerissen. Entweder war die Verbindung weg, '
return 'Der Stream ist abgerissen. Entweder war die Verbindung weg, '
+ 'oder der Server hat die Sitzung aufgeräumt — fang die Wiedergabe neu an.';
}
if (art === arten.MEDIA_ERROR) {
+17 -1
View File
@@ -1085,6 +1085,20 @@ export function detailseite(art: Art, id: string, zurueck: () => void): HTMLElem
/** Und wie sie heisst — für die Zeile über dem Spieler. */
let serienname: string | undefined;
/** Was die Erkennung bei dieser Folge gefunden hat — nur für Verwalter.
*
* **Ohne das bleibt „es kommt kein Knopf" eine Vermutung.** Ob die Marke
* gar nicht gefunden wurde oder bloss nicht angezeigt wird, ist von
* aussen nicht zu unterscheiden — und beides hat eine andere Ursache.
* Einmal nachsehen zu können erspart eine Runde Raten. */
function markenwort(marken: Folge['markers']): string {
if (!istAdmin()) return '';
if (!marken || marken.length === 0) return 'keine Marken';
return marken
.map(m => m.kind === 'intro' ? 'Vorspann' : 'Abspann')
.join(' + ');
}
function folgenblock(folge: Folge): HTMLElement {
const block = document.createElement('div');
block.className = 'einstellung';
@@ -1095,9 +1109,11 @@ export function detailseite(art: Art, id: string, zurueck: () => void): HTMLElem
: folge.state && folge.state.positionSeconds > 0
? `noch ${Math.round(((folge.state.runtimeSeconds ?? 0) - folge.state.positionSeconds) / 60)} Min`
: '';
const marken = markenwort(folge.markers);
const daneben = [nebenbei, marken].filter(Boolean).join(' · ');
zeile.innerHTML =
`<strong>${String(folge.episode).padStart(2, '0')} · ${esc(folge.title ?? 'Ohne Titel')}</strong>`
+ (nebenbei ? `<span class="winzig">${esc(nebenbei)}</span>` : '');
+ (daneben ? `<span class="winzig">${esc(daneben)}</span>` : '');
const wie = `S${folge.season} · F${folge.episode}`
+ (folge.title ? ` — ${folge.title}` : '');