Die Kachel zeigte auf die Folge und wollte zur Serie
„Nächste Folge" führte ins Leere, und es lag weder am Scan noch am Auffrischen: die Kachel trug die Folgenkennung und öffnete damit eine Serienseite — die es unter dieser Kennung nie gibt. Heraus kam ausgerechnet dort „Diese Serie gibt es nicht mehr", wo man gerade weiterschauen wollte. Der Server kannte die Serie an beiden Stellen und schickte sie nur nicht mit. Wohin die Kachel führt und was sie misst, ist jetzt getrennt. Beides auf dieselbe Kennung zu legen wäre der nächste Fehler gewesen: „Als gesehen markieren" hätte die ganze Serie abgehakt statt der einen Folge, die man zur Hälfte gesehen hat. Dazu Streichen wie im Dateimanager: gedrückt halten und darüberfahren wählt aus, rückwärts über Gewähltes nimmt wieder weg. Ein kurzer Klick bleibt, was er war. Abgetastet wird die Strecke zwischen zwei Zeigerereignissen, nicht nur deren Endpunkte — gemessen: ein Zug über vier Kacheln erwischte sonst die erste und die letzte. Plakate lassen sich nicht mehr durch die Gegend schleppen. „Abwählen" ist ein Kreuz geworden; als vierter Knopf neben drei Aktionen sah es aus, als täte es etwas mit den Titeln. In der kleinen Leiste lag das Vorschaubild über dem Fortschrittsstrich und verdeckte ihn rechts. Und ein Klick genau darauf tat nichts, obwohl das die Stelle ist, auf die man zeigt — jetzt holt auch das Bild den Film zurück. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
7df9fa6c01
commit
c46063637f
@@ -486,11 +486,26 @@ public sealed record ItemStateResponse(
|
||||
/// steht in <c>Title</c> die Serie und in <c>SubTitle</c> die Folge — so liest
|
||||
/// sich die Kachel wie bei Plex: oben, worum es geht, darunter, wo man ist.
|
||||
/// </remarks>
|
||||
/// <param name="Id">
|
||||
/// Die Kennung des Titels selbst — bei einer Folge also die der Folge. Dorthin
|
||||
/// geht der Fortschritt.
|
||||
/// </param>
|
||||
/// <param name="SeriesId">
|
||||
/// <b>Zu welcher Serie die Folge gehört</b> — <c>null</c> bei einem Film.
|
||||
///
|
||||
/// <para>
|
||||
/// <b>Ohne diese Angabe führte die Kachel ins Leere.</b> Sie trug die
|
||||
/// Folgenkennung und sollte damit eine Serienseite öffnen; die gibt es unter
|
||||
/// dieser Kennung nie, und heraus kam „Diese Serie gibt es nicht mehr" —
|
||||
/// ausgerechnet unter „Nächste Folge", wo man gerade weiterschauen wollte.
|
||||
/// </para>
|
||||
/// </param>
|
||||
public sealed record ContinueEntry(
|
||||
Guid Id, string Kind, string Title, string? SubTitle,
|
||||
int? Season, int? Episode, int? Year,
|
||||
string? PosterImage, string? BackdropImage,
|
||||
ItemStateResponse State);
|
||||
ItemStateResponse State,
|
||||
Guid? SeriesId = null);
|
||||
|
||||
/// <summary>Eine laufende Wiedergabe — für das Dashboard.</summary>
|
||||
public sealed record SessionResponse(
|
||||
|
||||
@@ -318,7 +318,8 @@ public static class PlaybackEndpoints
|
||||
naechste.Id, "episode", serie.Title, naechste.Title,
|
||||
naechste.SeasonNumber, naechste.EpisodeNumber, null,
|
||||
serie.PosterImage, naechste.StillImage ?? serie.PosterImage,
|
||||
zustand is null ? Leer() : Abbild(zustand)));
|
||||
zustand is null ? Leer() : Abbild(zustand),
|
||||
SeriesId: x.SeriesId));
|
||||
}
|
||||
|
||||
return Results.Ok(new Page<ContinueEntry>(liste, liste.Count));
|
||||
@@ -432,7 +433,8 @@ public static class PlaybackEndpoints
|
||||
else if (z.EpisodeId is { } folge && folgendaten.TryGetValue(folge, out var f))
|
||||
liste.Add(new ContinueEntry(
|
||||
f.Id, "episode", f.SerienTitel, f.FolgenTitel, f.SeasonNumber, f.EpisodeNumber, null,
|
||||
f.PosterImage, f.StillImage ?? f.PosterImage, Abbild(z)));
|
||||
f.PosterImage, f.StillImage ?? f.PosterImage, Abbild(z),
|
||||
SeriesId: f.SerienId));
|
||||
}
|
||||
return liste;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user