Spider-Man ist nicht 720p, er ist breit
Die Auflösung wurde allein aus der Höhe gebildet. Ein Kinoformat von 2.39:1 liegt als 1920×800 vor — nach der Höhe gerechnet kam „720p" heraus, und das stand so in der Oberfläche. Jetzt zählt die grössere von Breite und Höhe; Hochformat kippt damit nicht, und 4K-Breitbild heisst nicht mehr 1440p. Die Detailansicht hat zwei Leserschaften, und bisher bekamen beide dasselbe. Wer schauen will, sieht jetzt Laufzeit, Auflösung und die Sprachen — jede einmal, statt „Englisch · Englisch · Englisch · Englisch · Deutsch". Wer die Mediathek betreut, sieht darunter Dateiformat, Grösse und den Ordner. Der Ordner verrät eine falsche Zuordnung in einer Sekunde: steht über der Beschreibung „Hanni & Nanni 3" und der Ordner heisst „Hanni und Nanni", ist die Sache klar. Er kommt nur für Administratoren überhaupt vom Server — versteckt im Client wäre er weiterhin auslesbar. Ein geplanter Titel war unsichtbar. Das ist die Hälfte, die nichts bringt: dass er kommt, ist der Sinn des Planens. Er steht jetzt mit „Verfügbar ab …" in der Mediathek, und die Datei geht trotzdem nicht heraus — Download wie Strom lehnen bis zum Termin ab, auch für Administratoren. Wer vorziehen will, hat „Jetzt veröffentlichen"; eine Hintertür für eine Rolle wäre eine Regel, die manchmal gilt. Was ein Auffrischen geändert hat, steht jetzt unter „Zu prüfen" — in einer eigenen Gruppe mit „Zur Kenntnis" statt „Veröffentlichen". Diese Titel sind sichtbar; es gibt nichts freizugeben, nur etwas abzuhaken. Und das Protokoll sagt endlich, wo es knallt. „InvalidOperationException: Nullable object must have a value." ohne eine einzige Zeile Herkunft ist für niemanden eine Diagnose — weder für den Betreiber noch für mich. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
f44779c899
commit
255eb7c2f0
@@ -15,12 +15,16 @@ export type Spur = {
|
||||
channels: number | null; width: number | null; height: number | null;
|
||||
/** Die fertige Zeile vom Server, etwa Deutsch · Dolby Digital Plus · 5.1. */
|
||||
display: string | null;
|
||||
/** Die Sprache als Wort — „Deutsch" statt „deu". */
|
||||
languageName: string | null;
|
||||
};
|
||||
export type Datei = {
|
||||
id: string; fileName: string; sizeBytes: number;
|
||||
container: string | null; durationSeconds: number | null; streams: Spur[];
|
||||
/** „Mobil", „4K", „Director's Cut" — oder `null`, wenn es nur eine gibt. */
|
||||
versionLabel: string | null;
|
||||
/** Der Ordner unterhalb der Mediathek — nur für Administratoren gefüllt. */
|
||||
folder: string | null;
|
||||
};
|
||||
/** Was dieser Benutzer mit einem Titel zu tun hatte. */
|
||||
export type Stand = {
|
||||
@@ -698,6 +702,8 @@ export const bildHochladen = async (
|
||||
};
|
||||
|
||||
export type Pruefeintrag = {
|
||||
/** „neu" (wartet auf Freigabe) oder „geaendert" (nur zur Kenntnis). */
|
||||
grund?: 'neu' | 'geaendert';
|
||||
kind: 'movie' | 'series';
|
||||
id: string; title: string; year: number | null;
|
||||
posterImage: string | null;
|
||||
@@ -713,6 +719,14 @@ export type Pruefeintrag = {
|
||||
|
||||
export const zuPruefen = () => anfrage<Pruefeintrag[]>('/review');
|
||||
|
||||
/** Hakt geänderte Titel ab — ohne Kennung alle.
|
||||
*
|
||||
* **Nicht dasselbe wie veröffentlichen.** Diese Titel stehen längst in der
|
||||
* Mediathek; es gibt nichts freizugeben, nur etwas zur Kenntnis zu nehmen. */
|
||||
export const zurKenntnis = (ids?: string[]) =>
|
||||
anfrage<{ acknowledged: number }>('/review/acknowledge',
|
||||
{ method: 'POST', body: JSON.stringify({ ids: ids ?? null, publishAt: null }) });
|
||||
|
||||
/** Ohne Kennungen: alles, was noch nicht sichtbar ist. Ohne Zeitpunkt: jetzt. */
|
||||
export const veroeffentlichen = (ids?: string[], publishAt?: string) =>
|
||||
anfrage<{ published: number }>('/review/publish',
|
||||
|
||||
Reference in New Issue
Block a user