Ein Haken, der stehen blieb, als die Rechnung sich änderte
Ein Film stand bei 1:32 und tauchte in „Fortsetzen" trotzdem nicht auf. Die Reihe fragt nicht die Regel, sondern deren festgehaltenes Ergebnis: die Spalte `InProgress`. Die Bruchrechnung „Stelle kleiner als Anteil der Laufzeit" lässt sich nicht nach SQL übersetzen, also steht sie als Wahrheitswert in der Zeile — und berechnet wird sie nur, wenn eine Fortschrittsmeldung eintrifft. Die kaputte Meldung von vorgestern hatte dort `false` hinterlassen; die Korrektur am Server verhinderte neuen Schaden, räumte den alten aber nicht weg. `Sehstandpflege` rechnet nach jedem Update einmal durch: erst die Laufzeit aus der Datei nachtragen, dann neu bewerten — in dieser Reihenfolge, denn eine Neubewertung auf Basis eines Stummels käme wieder zu `false`. `UpdatedAt` bleibt, wo es war; danach ist die Reihe sortiert. Und der Knopf heisst jetzt so wie die Reihe, über der er steht. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
5dfc22bdce
commit
a609b2d087
+6
-3
@@ -15,7 +15,7 @@ export type Kachel = {
|
||||
/** Welche Kennung den Sehstand trägt. Fehlt sie, ist es `id`.
|
||||
*
|
||||
* **Nur dort verschieden, wo die Kachel woandershin führt als sie misst:**
|
||||
* eine Folge aus „Weiterschauen" öffnet die Serie, abgehakt wird aber die
|
||||
* eine Folge aus „Fortsetzen" öffnet die Serie, abgehakt wird aber die
|
||||
* Folge. */
|
||||
standId?: string;
|
||||
art: 'filme' | 'serien';
|
||||
@@ -54,7 +54,7 @@ export const alsKachel = (e: Film | Serie): Kachel => ({
|
||||
freigabe: e.publishAt,
|
||||
});
|
||||
|
||||
/** Eine Kachel aus „Weiterschauen" oder „Nächste Folge" — bei Folgen
|
||||
/** Eine Kachel aus „Fortsetzen" oder „Nächste Folge" — bei Folgen
|
||||
* dreizeilig, wie bei Plex.
|
||||
*
|
||||
* **Die Kachel führt zur Serie, der Sehstand bleibt bei der Folge.**
|
||||
@@ -310,7 +310,10 @@ function kachelpunkte(
|
||||
// schlechter als keiner.
|
||||
if (k.stand && !k.stand.watched && k.stand.positionSeconds > 0) {
|
||||
punkte.push({
|
||||
text: 'Aus Weiterschauen nehmen',
|
||||
// **Dieselbe Reihe, derselbe Name.** Oben stand „Fortsetzen", hier
|
||||
// „Weiterschauen" — zwei Wörter für eine Sache, und der Knopf sah
|
||||
// danach aus, als meinte er etwas anderes.
|
||||
text: 'Aus Fortsetzen entfernen',
|
||||
tun: async () => {
|
||||
await weglegen(k.standId ?? k.id);
|
||||
if (k.stand) k.stand.dismissed = true;
|
||||
|
||||
@@ -367,7 +367,7 @@ export function detailseite(art: Art, id: string, zurueck: () => void): HTMLElem
|
||||
async () => { await favorit(eintrag.id, !stand?.favourite); await laden(); }));
|
||||
|
||||
if ((stand?.positionSeconds ?? 0) > 0 && !stand?.dismissed) {
|
||||
reihe.appendChild(rundKnopf('mehr', false, 'Aus „Weiterschauen" nehmen',
|
||||
reihe.appendChild(rundKnopf('mehr', false, 'Aus „Fortsetzen" entfernen',
|
||||
async () => { await weglegen(eintrag.id); await laden(); }));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user