`laden()` setzte `innerHTML = ''` und baute die Mediathekenliste neu — während eines Scans alle drei Sekunden. Der ganze Abschnitt flackerte sichtbar, und wer gerade auf einen Knopf zielte, klickte ins Leere. Schlimmer: jeder Neuaufbau startete über `verfolgen(false)` einen weiteren Takt. Nach einer Minute liefen zwanzig davon nebeneinander. Jetzt wird fortgeschrieben statt neu gezeichnet: eine Zeile je Mediathek, die bleibt, und nur Kopfzeile, Prüfungsknopf und Freigabeknopf ändern sich. Belegt im Browser — nach einem Auffrischen sind es dieselben Knoten, nur die Beschriftung ist eine andere. Dieselbe Behandlung für die Seitenleiste. Und weil Seitenleiste und Verwaltung getrennt nachfragten, zeigten sie zwei Momente — 95 hier, 84 dort, während im Hintergrund Doppelte zusammengelegt wurden. Die Verwaltung reicht ihren Stand jetzt weiter: ein Abruf, zwei Anzeigen. Dazu zwei Dinge, die beim Prüfen auffielen. Zurücksetzen und Entfernen prallen jetzt serverseitig mit 409 ab, solange ein Lauf läuft — die Oberfläche sperrt die Knöpfe, aber darauf darf sich der Server nicht verlassen; ein Aufruf von Hand während eines Scans liess den Lauf an einer DbUpdateConcurrencyException sterben. Und in der Fortschrittszeile steht beim Holen der Folgenmetadaten jetzt der Serienname: „Folge 2×13" allein sagt bei 3815 Folgen nichts. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
49 lines
973 B
JSON
49 lines
973 B
JSON
{
|
|
"fill-specializations" : [
|
|
{
|
|
"value" : {
|
|
"automatic-gradient" : "display-p3:0.56409,0.38672,0.96783,1.00000"
|
|
}
|
|
},
|
|
{
|
|
"appearance" : "dark",
|
|
"value" : {
|
|
"automatic-gradient" : "display-p3:0.14018,0.08725,0.31323,1.00000"
|
|
}
|
|
}
|
|
],
|
|
"groups" : [
|
|
{
|
|
"layers" : [
|
|
{
|
|
"fill" : {
|
|
"automatic-gradient" : "display-p3:0.51566,0.11264,0.96783,1.00000"
|
|
},
|
|
"image-name" : "flare (1).svg",
|
|
"name" : "flare (1)",
|
|
"position" : {
|
|
"scale" : 100,
|
|
"translation-in-points" : [
|
|
0,
|
|
0
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"shadow" : {
|
|
"kind" : "neutral",
|
|
"opacity" : 0.5
|
|
},
|
|
"translucency" : {
|
|
"enabled" : true,
|
|
"value" : 0.5
|
|
}
|
|
}
|
|
],
|
|
"supported-platforms" : {
|
|
"circles" : [
|
|
"watchOS"
|
|
],
|
|
"squares" : "shared"
|
|
}
|
|
} |