Vierundzwanzig Bilder, und der Weg dorthin fehlte sowieso
Zwei Dinge, die zusammengehören. **Den Bilderdialog gab es nur an der Kachel.** Wer auf der Seite eines Films stand und sah, dass das Plakat falsch ist, stand genau dort, wo er nichts dagegen tun konnte — der Weg führte zurück in die Liste und über das Dreipunktmenü. Jetzt steht „Bearbeiten" in der Knopfreihe der Detailseite, bei Filmen wie bei Serien, und nur im Kopf: dieselbe Reihe steht auch über jeder Fassung und jeder Folge. **Und es waren vierundzwanzig, weil dort vierundzwanzig stand.** Bei „365 Tage" hat TMDB neunundsechzig Plakate. Dazu ein zweiter, leiserer Filter: gefragt wurden nur drei Sprachen. Fürs automatische Holen ist das richtig — dort wird eines genommen, und es soll passen. Wer von Hand wählt, will sehen, was es gibt; sortiert wird ohnehin nach Sprache, also steht das Passende weiterhin oben. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
78e347c58d
commit
bfe263d495
@@ -420,6 +420,9 @@ public sealed class TmdbClient(
|
||||
/// Schriftzug weggeworfen. Die Auswahl kostet also keine zusätzliche
|
||||
/// Anfrage.
|
||||
/// </remarks>
|
||||
/// <summary>Wie viele Bilder je Art höchstens zur Wahl stehen.</summary>
|
||||
private const int HöchstensBilderJeArt = 200;
|
||||
|
||||
public async Task<IReadOnlyList<Bildkandidat>> BilderAsync(
|
||||
int providerId, bool serie, CancellationToken ct = default)
|
||||
{
|
||||
@@ -428,9 +431,16 @@ public sealed class TmdbClient(
|
||||
|
||||
var sprache = Sprachkürzel(einstellung.Language);
|
||||
var weg = serie ? "tv" : "movie";
|
||||
|
||||
// <b>Ohne Sprachfilter.</b> Hier stand
|
||||
// <c>include_image_language={sprache},en,null</c> — drei von
|
||||
// vierzig Sprachen, und alles andere kam gar nicht erst an. Für das
|
||||
// automatische Holen ist das richtig: dort wird eines genommen, und
|
||||
// es soll das passende sein. Hier wählt ein Mensch, und der will
|
||||
// sehen, was es gibt. Die Reihenfolge sortiert ohnehin nach
|
||||
// Sprache, also steht das Passende weiterhin oben.
|
||||
var antwort = await HolenAsync<TmdbBilderAntwort>(
|
||||
$"{weg}/{providerId}/images?include_image_language={Uri.EscapeDataString(sprache)},en,null",
|
||||
einstellung, ct);
|
||||
$"{weg}/{providerId}/images", einstellung, ct);
|
||||
|
||||
if (antwort is null) return [];
|
||||
|
||||
@@ -448,7 +458,13 @@ public sealed class TmdbClient(
|
||||
foreach (var b in (bilder ?? []).Where(b => !string.IsNullOrWhiteSpace(b.FilePath))
|
||||
.OrderBy(b => Sprachrang(b.Language, sprache))
|
||||
.ThenByDescending(b => b.VoteAverage ?? 0)
|
||||
.Take(24))
|
||||
// <b>Nicht vierundzwanzig.</b> Bei „365 Tage" hat
|
||||
// TMDB neunundsechzig Plakate, und die Liste war
|
||||
// nach vierundzwanzig zu Ende — ohne dass irgendwo
|
||||
// stünde, dass da noch mehr ist. Die Grenze bleibt
|
||||
// als Schutz vor einer Seite mit tausend Bildern,
|
||||
// liegt aber dort, wo sie niemanden mehr behindert.
|
||||
.Take(HöchstensBilderJeArt))
|
||||
{
|
||||
liste.Add(new Bildkandidat(
|
||||
art, Bild(b.FilePath, groesse)!.Url,
|
||||
|
||||
Reference in New Issue
Block a user