CSV-Datei-Filterkomponente: Unterschied zwischen den Versionen
Version vom 8. März 2015, 20:34 Uhr ⧼parentheses⧽ Sheldon2012⧼word-separator⧽⧼parentheses⧽ ⧼parentheses⧽ |
Version vom 9. März 2015, 14:26 Uhr ⧼parentheses⧽ Boandlkramer⧼word-separator⧽⧼parentheses⧽ ⧼parentheses⧽ |
||
Zeile 3: | Zeile 3: | ||
Dieses Plugin ermöglicht die Erstellung einer Filterkomponente, deren Filterinformationen aus einer [http://de.wikipedia.org/wiki/CSV_%28Dateiformat%29 CSV]-Datei gelesen werden. Die resultierende Filterkomponente stellt somit eine offnen Schnittstelle für beliebige Fremdsysteme dar. | Dieses Plugin ermöglicht die Erstellung einer Filterkomponente, deren Filterinformationen aus einer [http://de.wikipedia.org/wiki/CSV_%28Dateiformat%29 CSV]-Datei gelesen werden. Die resultierende Filterkomponente stellt somit eine offnen Schnittstelle für beliebige Fremdsysteme dar. | ||
− | Diese Filterkomponente basiert auf den | + | 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. |
==Installation== | ==Installation== | ||
Zeile 12: | Zeile 12: | ||
Die Erstellung einer CSV-Datei-Filterkomponente erfolgt gemäß der Beschreibung zur Erstellung von [[Filterregeln]]. | Die Erstellung einer CSV-Datei-Filterkomponente erfolgt gemäß der Beschreibung zur Erstellung von [[Filterregeln]]. | ||
− | Hierzu | + | 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. |
Zeile 24: | Zeile 24: | ||
==Konventionen== | ==Konventionen== | ||
− | Bei der Bereitstellung einer | + | Bei der Bereitstellung einer CSV-Datei, die von der CSV-Filter-Komponente eingelesen werden soll, sind bestimmte Konventionen zu beachten. |
===Aufbau der CSV-Datei=== | ===Aufbau der CSV-Datei=== | ||
Zeile 32: | Zeile 32: | ||
'''<u>Separator:</u>''' | '''<u>Separator:</u>''' | ||
− | In der | + | In der CSV-Datei werden die Datenfelder durch ein '''Semikolon ";"''' getrennt. |
'''<u>Datenfelder:</u>''' | '''<u>Datenfelder:</u>''' | ||
Zeile 40: | Zeile 40: | ||
'''<u>Datensätze:</u>''' | '''<u>Datensätze:</u>''' | ||
− | Ein Datensatz in der | + | Ein Datensatz in der CSV-Datei wird von der CSV-Datei-Filterkomponente in folgender Form erwartet. |
<code><pre> | <code><pre> | ||
Zeile 50: | Zeile 50: | ||
===Informationen in einem Datensatz=== | ===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- | + | 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. |
<code><pre> | <code><pre> | ||
Zeile 58: | Zeile 58: | ||
</pre></code> | </pre></code> | ||
− | 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 | + | 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. |
<code><pre> | <code><pre> | ||
Zeile 87: | Zeile 87: | ||
==Performance== | ==Performance== | ||
− | Dieses Plugin wurde hinsichtlich der Performance optimiert. Diesbezügliche Tests wurden mit Dateien durchgeführt, die bis zu | + | 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. |
[[Kategorie:Plugin]] | [[Kategorie:Plugin]] |
Version vom 9. März 2015, 14:26 Uhr
Inhaltsverzeichnis
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.
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.
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
Die vorgestellte CSV-Datei-Filterkomponente kann in Kombination mit den Plugins Filter-Info-Icons und SwitchPlugin zur Konfiguration einer offenen bidirektionalen Schnittstelle verwendet werden.
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.