Ein Klick, der nichts tat, und niemand sagte warum
Eine Serienkachel kannte der Server als Titel nicht: „als gesehen markieren" lief in eine 404, und weil das Kontextmenü die Ablehnung verschluckte, geschah sichtbar gar nichts. Dasselbe beim Favoriten. UserItemState bekommt eine Serienkennung, das Häkchen zieht alle Folgen mit, und was wirft, erscheint als Meldung statt in der Browserkonsole. Dazu eine Mehrfachauswahl in der Mediathek — gesehen, ungesehen, Metadaten neu holen für das Gewählte, in einer Anfrage statt in zweihundert. Ein neues Plakat steht sofort auf der Kachel, und ein Titel, den es nicht mehr gibt, endet nicht mehr in einer Sackgasse. Gemessen: ein POST auf /refresh ohne Rumpf antwortete nach der Erweiterung mit 404 — also genau der Aufruf „alles auffrischen", den es länger gibt als die Auswahl. Der Rumpf wird jetzt von Hand gelesen, und beide Formen stehen in einer Prüfung. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
c854c4a09a
commit
557708b769
@@ -319,7 +319,18 @@ public sealed record SeriesResponse(
|
||||
/// etwas sie unterscheidet — und wer einen davon sucht, findet ihn nur
|
||||
/// über die Prüfliste.
|
||||
/// </remarks>
|
||||
DateTimeOffset? PublishAt = null);
|
||||
DateTimeOffset? PublishAt = null,
|
||||
|
||||
/// <summary>Favorit, Bewertung, Häkchen — zur Serie als Ganzem.</summary>
|
||||
///
|
||||
/// <remarks>
|
||||
/// <b>Neben <see cref="UnwatchedCount"/>, nicht an dessen Stelle.</b> Die
|
||||
/// Zahl sagt, wie viel noch aussteht; dieser Zustand sagt, was der
|
||||
/// Benutzer über die Serie selbst festgehalten hat. Ohne ihn konnte eine
|
||||
/// Kachel nicht wissen, ob „Als gesehen markieren" oder „Als ungesehen
|
||||
/// markieren" darauf gehört — sie bot immer das erste an.
|
||||
/// </remarks>
|
||||
ItemStateResponse? State = null);
|
||||
|
||||
public sealed record EpisodeResponse(
|
||||
Guid Id, int Season, int Episode, string? Title, string? Overview, string? StillImage,
|
||||
@@ -400,6 +411,25 @@ public sealed record ProgressRequest(
|
||||
|
||||
public sealed record WatchedRequest(bool Watched);
|
||||
public sealed record FavouriteRequest(bool Favourite);
|
||||
|
||||
/// <summary>Mehrere Titel auf einmal abhaken — oder das Häkchen wegnehmen.</summary>
|
||||
///
|
||||
/// <remarks>
|
||||
/// <b>Eine Anfrage statt zweihundert.</b> „Alle als gesehen markieren" über
|
||||
/// eine Mediathek hinweg wäre sonst ein Anfragensturm, bei dem mittendrin
|
||||
/// etwas scheitert und niemand weiss, was durchging.
|
||||
/// </remarks>
|
||||
public sealed record BulkWatchedRequest(IReadOnlyList<Guid> Ids, bool Watched);
|
||||
|
||||
/// <param name="Changed">Wie viele Titel sich dadurch geändert haben.</param>
|
||||
/// <param name="Unknown">
|
||||
/// Kennungen, zu denen es nichts gibt — stillschweigend zu übergehen hiesse,
|
||||
/// einen Teilerfolg als vollen auszugeben.
|
||||
/// </param>
|
||||
public sealed record BulkWatchedResponse(int Changed, IReadOnlyList<Guid> Unknown);
|
||||
|
||||
/// <summary>Welche Titel neu geholt werden sollen — leer heisst: alle.</summary>
|
||||
public sealed record RefreshRequest(IReadOnlyList<Guid>? Ids);
|
||||
public sealed record RatingRequest(int? Rating);
|
||||
|
||||
/// <summary>Was ein Benutzer mit einem Titel zu tun hatte.</summary>
|
||||
|
||||
Reference in New Issue
Block a user