CSV-Datei-Filterkomponente

Aus TV-Browser Wiki
Version vom 14. März 2015, 15:42 Uhr von Sheldon2012⧼word-separator⧽⧼parentheses⧽ ⧼parentheses⧽
⧼revision-nav⧽
Wechseln zu: Navigation⧼comma-separator⧽Suche

Allgemeines

Dieses Plugin ermöglicht die Erstellung einer Filterkomponente, deren Filterinformationen aus einer CSV-Datei gelesen werden. Die resultierende Filterkomponente stellt somit eine offnen Schnittstelle für beliebige Fremdsysteme dar.

Diese Filterkomponente basiert auf den Überlegungen, die im Artikel BeanShell-Filter unter dem Punkt Dynamischer BeanShell-Filter als CSV-File-Interface ausgeführt werden. Die hier vorgestellte Filterkomponente stellt eine erweiterte und hinsichtlich der Performance optimierte Variante des dort vorgestellten BeanShell-Skriptes in Form eines Plugins dar.

Funktionsweise

Die CSV-Datei-Filterkomponente ließt die Informationen Sendungstitel und Episodentitel aus dem Datensatz einer CSV-Datei aus und vergleicht diese mit den entsprechnden Informationen einer Sendung im Datenbestand des TV-Browsers.

Installation

Für die Installation des Plugins folgt man den diesbezüglichen Anweisungen im Artikel Plugin.

Erstellung einer CSV-Datei-Filterkomponente

Die Erstellung einer CSV-Datei-Filterkomponente erfolgt gemäß der Beschreibung zur Erstellung von Filterregeln. Hierzu muss aus der entsprechenden Liste der Typ CSV-Datei ausgewählt und anschließend der Pfad zur jeweiligen CSV-Datei angegeben werden. Das folgende Schaubild verdeutlicht diese Konfiguration an einem Beispiel.


Schaubild - Erstellung einer CSV-Datei-Filterkomponente.jpg


Relativer Pfad zur CSV-Datei

Die Pfade zu den jeweiligen CSV-Dateien werden als Relative Pfade bezüglich des TV-Browser-Hauptverzeichnisses angelegt.

Konventionen

Bei der Bereitstellung einer CSV-Datei, die von der CSV-Filter-Komponente eingelesen werden soll, sind bestimmte Konventionen zu beachten.

Aufbau der CSV-Datei

Die CSV-Datei-Filterkomponente erwartet eine CSV-Datei mit einem definierten Aufbau.

Separator:

In der CSV-Datei werden die Datenfelder durch ein Semikolon ";" getrennt.

Datenfelder:

Die CSV-Datei enthält die Datenfelder Sendungstitel und Episodentitel.

Datensätze:

Ein Datensatz in der CSV-Datei wird von der CSV-Datei-Filterkomponente in folgender Form erwartet.


Sendungstitel;Episodentitel

Informationen in einem Datensatz

Die CSV-Datei-Filterkomponente behandelt alle Sendungen wie eine Episode einer Serie. Gehört eine Sendung zu einer Serie, so enthält sie die Informationen Sendungstitel1 und Episodentitel1. Eine solche Sendung wird in der CSV-Datei wie folgt hinterlegt.


Sendungstitel1;Episodentitel1

Gehört eine Sendung nicht zu einer Serie (z. B. Spielfilm, Dokumentation etc.), so enthält sie nur die Informationen Sendungstitel2. Eine solche Sendung wird von der CSV-Filter-Komponente als Serie mit nur einer Episode interpretiert. Somit entspricht der Episodentitel dem Sendungstitel. Die Hinterlegung einer solchen Sendung erfolgt in der CSV-Datei auf folgende Weise.


Sendungstitel2;Sendungstitel2

Beispiel einer CSV-Datei

Eine gemäß den obigen Konventionen bereitgestellte CSV-Datei sieht wie folgt aus.


Sendungstitel1;Episodentitel1   <-- Die Sendung gehört zu einer Serie
Sendungstitel1;Episodentitel2
Sendungstitel2;Sendungstitel2   <-- Die Sendung gehört nicht zu einer Serie (z. B. Spielfilm, Dokumentation etc.)
Sendungstitel3;Episodentitel3
Sendungstitel3;Episodentitel4  
Sendungstitel3;Episodentitel5  

Anwendung

In diesem Abschnitt werden einige Möglichkeiten zur Anwendung der CSV-Datei-Filterkomponenrte aufgezeigt.

Offene bifirektionale Schnittstelle

Die vorgestellte CSV-Datei-Filterkomponente kann in Kombination mit den Plugins Filter-Info-Icons und SwitchPlugin zur Konfiguration einer offenen bidirektionalen Schnittstelle verwendet werden.

Informationsmerkmale von Sendungen bereitstellen

Im Beispiel zur Konfiguration einer offenen bidirektionalen Schnittstelle, wird aus einer CSV-Datei die Information bereitgestellt, ob eine Sendung in einer Mediathek enthalten ist oder nicht. Über die CSV-Datei-Filterkomponente können aber auch andere Informationsmerkmale von Sendungen bereitgestellt werden. Hierzu muß eine CSV-Datei mit den Sendungen gefüllt werde, die das Merrkmal tragen. Hierzu folgt man der im Artikel Konfiguration einer offenen bidirektionalen Schnittstelle vorgestellten Vorgehensweise. Das folgende Beispiel soll helfen, dies zu verdeutlichen.

Erstausstrahlungen und Wiederholungen

Um anzuzeigen, ob eine Sendung eine Erstausstrahlung ist, wird Im TV-Browser die zusätzliche Informtaion Neu verwendet. Die Information, ob eine Sendung eine Wiederholung ist, wird über den ProgramFieldType im Feld REPETITION_OF_TYPE angezeigt. Leider sind diese Informationen nicht immer für alle Sendungen verfügbar. Daher läßt sich im TV-Browser nicht immer eindeutig bestimmen, ob eine Sendung eine Erstausstrahlung bzw. Wiederholung ist oder nicht.

Dieses Problem kann mittels der CSV-Datei-Filterkomponente gelößt werden. Hierzu muß eine CSV-Datei mit den Sendungen gefüllte werden, deren Erstausstrahlungsdatum in der Zukunft liegt. Das Datum der Erstausstrahlung einer Sendung kann hierzu aus einer externen Datenquelle wie z. B. der freien Datenbank TheTVDB ausgelesen werden.

Anbindung an externe Datenquellen

Performance

Dieses Plugin wurde hinsichtlich der Performance optimiert. Diesbezügliche Tests wurden mit Dateien durchgeführt, die bis zu 100.000 Datensätzen enthielten. Diese Tests führten zu guten Ergebnissen.