Die Mediathek hörte bei I auf, und jede Folge stand doppelt
Zwei Befunde aus dem laufenden Betrieb. Die Liste holte genau eine Seite. Der Server gibt höchstens 200 Einträge je Zug — das ist richtig so —, nur fragte die Oberfläche nie nach der zweiten. Bei 455 Filmen endete die Mediathek mitten im Alphabet, ohne Hinweis, dass da noch etwas kommt. Jetzt wird beim Scrollen nachgeladen, und die Zahl sagt „200 von 455" statt einer Behauptung, die man beim Scrollen widerlegt. Dabei kam heraus, dass ein IntersectionObserver eine Seite braucht, die auch gezeichnet wird: im Fenster im Hintergrund löst er nicht aus, und beim Prüfen blieb die Liste genau deshalb bei 200 stehen. Daneben steht jetzt eine Prüfung am Scrollereignis, die überall greift. Der zweite Befund: jede Folge zeigte zwei gleich aussehende Knopfreihen. Es sind zwei Dateien — Plex' „Optimized for Mobile"-Kopien. Flaro kannte „optimized", aber nicht „Optimized for Mobile", und sah ohnehin nur den unmittelbaren Elternordner; Plex legt die Fassung aber als `Plex Versions/Optimized for Mobile/<Serie>/<Staffel>/…` ab. Jetzt wird drei Ebenen hoch gesucht, die Schublade `Plex Versions` benennt keine Serie mehr, und an der Folge steht „Mobil" statt einer zweiten, unerklärten Reihe. Nicht um Plex zu bedienen — die Dateien liegen nun einmal so auf der Platte. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
960cca3dae
commit
8809b9f46f
@@ -352,3 +352,64 @@ public class EchteBenennungen
|
||||
Does.Contain("keine Folgennummer"));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Was Plex als zweite Fassung ablegt, ist keine zweite Folge.</summary>
|
||||
///
|
||||
/// <remarks>
|
||||
/// <b>Aus dem echten Bestand.</b> In der Folgenliste stand jede Folge mit zwei
|
||||
/// gleich aussehenden Knopfreihen untereinander — zwei Dateien, kein Hinweis
|
||||
/// worauf. Es sind Plex' „Optimized for Mobile"-Kopien. Erkannt heissen sie
|
||||
/// „Mobil" und stehen als Fassung an derselben Folge; unerkannt sehen sie aus
|
||||
/// wie ein Fehler.
|
||||
/// </remarks>
|
||||
public class PlexFassungen
|
||||
{
|
||||
private const string Wurzel = "/media/Serien";
|
||||
|
||||
[Test]
|
||||
public void Optimiert_fuers_Telefon_heisst_Mobil()
|
||||
{
|
||||
Assert.That(
|
||||
FileNames.Fassung($"{Wurzel}/Plex Versions/Optimized for Mobile/Dark/S01/Dark - S01E01.mkv"),
|
||||
Is.EqualTo("Mobil"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Die_Schublade_ist_keine_Serie()
|
||||
{
|
||||
var name = FileNames.ParseEpisode(
|
||||
$"{Wurzel}/Plex Versions/Optimized for Mobile/Dark/S01/Dark - S01E01.mkv", Wurzel);
|
||||
|
||||
Assert.That(name, Is.Not.Null);
|
||||
Assert.That(name!.SeriesTitle, Is.EqualTo("Dark"),
|
||||
"Ohne das hiesse die Serie „Plex Versions“.");
|
||||
Assert.That(name.Season, Is.EqualTo(1));
|
||||
Assert.That(name.Episode, Is.EqualTo(1));
|
||||
}
|
||||
|
||||
/// <summary>Beide Wege führen zur selben Folge — nur mit anderer Fassung.</summary>
|
||||
[Test]
|
||||
public void Original_und_Kopie_sind_dieselbe_Folge()
|
||||
{
|
||||
var original = FileNames.ParseEpisode($"{Wurzel}/Dark/S01/Dark - S01E01.mkv", Wurzel);
|
||||
var mobil = FileNames.ParseEpisode(
|
||||
$"{Wurzel}/Plex Versions/Optimized for Mobile/Dark/S01/Dark - S01E01.mkv", Wurzel);
|
||||
|
||||
Assert.That(mobil!.SeriesTitle, Is.EqualTo(original!.SeriesTitle));
|
||||
Assert.That(mobil.Season, Is.EqualTo(original.Season));
|
||||
Assert.That(mobil.Episode, Is.EqualTo(original.Episode));
|
||||
|
||||
Assert.That(FileNames.Fassung($"{Wurzel}/Dark/S01/Dark - S01E01.mkv"), Is.Null);
|
||||
Assert.That(FileNames.Fassung(
|
||||
$"{Wurzel}/Plex Versions/Optimized for Mobile/Dark/S01/Dark - S01E01.mkv"),
|
||||
Is.EqualTo("Mobil"));
|
||||
}
|
||||
|
||||
/// <summary>Ein Staffelordner zwischendrin ändert nichts.</summary>
|
||||
[Test]
|
||||
public void Staffelordner_benennt_weiterhin_keine_Serie()
|
||||
{
|
||||
var name = FileNames.ParseEpisode($"{Wurzel}/Dark/Staffel 2/Dark - S02E05.mkv", Wurzel);
|
||||
Assert.That(name!.SeriesTitle, Is.EqualTo("Dark"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user