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
@@ -128,6 +128,12 @@ builder.Services.AddScoped<IBewertungsquelle>(sp => sp.GetRequiredService<OmdbCl
|
||||
// **Damit man sieht, ob ein Schlüssel wirkt.** „Hinterlegt" ist keine
|
||||
// Auskunft darüber, ob der Dienst antwortet.
|
||||
builder.Services.AddScoped<Quellenprobe>();
|
||||
|
||||
// **Damit ein festgehaltenes Ergebnis nicht ewig falsch bleibt.** Ob ein
|
||||
// Titel in „Fortsetzen" steht, ist eine gespeicherte Spalte — berechnet
|
||||
// wird sie nur, wenn eine Fortschrittsmeldung eintrifft. Nach einem Update
|
||||
// einmal durchrechnen fängt genau das ab.
|
||||
builder.Services.AddSingleton<Sehstandpflege>();
|
||||
builder.Services.AddSingleton(new ImageCacheOptions(pfade.Cache));
|
||||
builder.Services.AddHttpClient<ImageCache>(c => c.Timeout = TimeSpan.FromSeconds(30));
|
||||
builder.Services.AddScoped<IImageStore>(sp => sp.GetRequiredService<ImageCache>());
|
||||
@@ -376,6 +382,9 @@ if (Directory.Exists(oberfläche))
|
||||
_ = app.Services.GetRequiredService<Kratzplatzpflege>()
|
||||
.LaufenAsync(Kratzplatzpflege.Anlass.Start, leben.ApplicationStopping);
|
||||
|
||||
_ = app.Services.GetRequiredService<Sehstandpflege>()
|
||||
.NachUpdateAsync(leben.ApplicationStopping);
|
||||
|
||||
_ = Task.Run(async () =>
|
||||
{
|
||||
try
|
||||
|
||||
Reference in New Issue
Block a user