Hintergrund Datenaufbereitung

Aus TV-Browser Wiki
Wechseln zu: Navigation⧼comma-separator⧽Suche

Hier soll näher erläutert werden, wie TV-Browser die Daten aufbereitet. Allgemeineres unter TV-Daten Tutorial. Weitere Infos auch im englischen Artikel (siehe Leiste links, Übersetzung erwünscht).

Rohdaten holen und aufbereiten

Die verschiedenen Parser, die die Daten von den Sendern holen und ins TV-Browser-Format bringen, werden über das Tool PDSRunner gestartet. Die fertigen Daten werden pro Tag und Sender in einer Datei in das "raw"-Verzeichnis gespeichert.

Diff-Dateien erstellen

Das Tool PrimaryDataManager prüft nach Unterschieden der neuen Daten im raw-Verzeichnis zu den alten Daten aus früheren Durchläufen im prepared-Verzeichnis und erstellt nach Bedarf "update"-Dateien mit den Unterschieden.

Um den Traffic für die Datenanbieter gering zu halten, werden die Daten in verschiedene Dateien aufgeteilt, die auch getrennt im TV-Browser runtergeladen werden können. Dabei werden alle Dateien außer "base" nur angelegt wenn erforderlich.

  • "base" enthält Uhrzeit, Titel und Daten wie Schauspieler, Länge usw.
  • "more00-16" enthält die Beschreibungen für Sendungen zwischen 0 und 16 Uhr
  • "more16-00" enthält die Beschreibungen für Sendungen zwischen 16 und 0 Uhr
  • "picture00-16" enthält die Bilder für Sendungen zwischen 0 und 16 Uhr
  • "picture16-00" enthält die Bilder für Sendungen zwischen 16 und 0 Uhr
  • Für Tage mit > 255 Sendungen gibt es noch "additional"-Dateien

Die einzelnen Sendungen erhalten Ids, mit denen dann einer Sendung aus der base-Datei die richtige Beschreibung in der more-Datei und das richtige Bild aus "picture" zugeordnet werden kann.

Quarantäne

Wenn der PrimaryDataManager für einen Sender an einem Tag zuviele Programmänderungen feststellt, dann kommt dieser Tag in "Quarantäne", das bedeutet im Verzeichnis "prepared" wird ein Unterverzeichnis "quarantine" angelegt, in dem die Dateien abgelegt werden. Im weiteren Unterverzeichnis "txt" kann man sich die Inhalte auch im Klartext anschauen und so nachprüfen, ob die vielen Programmänderungen richtig sind oder durch einen Fehler entstanden. Wenn die Dateien fälschlicherweise im Quarantäne-Verzeichnis gelandet sind, kann man diese (ohne das Verzeichnis "txt") einfach von "quarantine" nach "prepared" kopieren, nocheinmal den PrimaryDataManager starten und die Änderungen werden übernommen.

Wenn man die Dateien im Quarantäne-Verzeichnis belässt, werden die Programmänderungen nicht hochgeladen und kommen somit nicht beim Nutzer an. Waren die Programmänderungen aber korrekt, dann werden sie beim nächsten Starten des Parsers ja wieder auftreten, und dadurch wird auch dieses Mal der Tag in Quarantäne landen. Das bedeutet, dass eine massive Programmänderung, wenn man das Quarantäne-Verzeichnis nicht überprüft, nie beim Nutzer ankommen wird.

Update-Dateien

Beim ersten Durchlauf haben die Dateien die Bezeichnung "full" (z.B. "more00-16_full"). Wenn sich Daten im Vergleich zum letzten Durchlauf geändert haben, werden "update"-Dateien angelegt, die durchnummeriert werden. Das zweite Update bei einer "more00-16"-Datei wäre dann "more00-16_update_2". Hat sich z.B. nur eine Beschreibung geändert, so wird nur von der "more"-Datei ein Update erstellt, "base" und "picture" bleiben unverändert. Allerdings wird die Änderung auch in die vorigen update-Dateien und die base-Datei eingepflegt. Also enthält auch "more00-16_update_1" und "more00-16_full" dann die neue Beschreibung und auch diese Dateien werden (im nächsten Schritt) neu auf die Server geladen.

Die "update"-Dateien enthälten die Id der Sendung bei der es eine Änderung gab, und die Änderung selbst.

Daten auf den Server laden

Mit dem MirrorUpdater werden die Dateien aus dem "prepared"-Verzeichnis zusammen mit ein paar anderen Infos auf die Server geladen.