Konfiguration einer offenen bidirektionalen Schnittstelle

Aus TV-Browser Wiki
Version vom 7. April 2015, 13:17 Uhr von Sheldon2012⧼word-separator⧽⧼parentheses⧽ ⧼parentheses⧽
⧼revision-nav⧽
Wechseln zu: Navigation⧼comma-separator⧽Suche

Allgemeines

Das hier vorgestellte Konzept beschreibt die Konfiguration einer offenen bidirektionalen Schnittstelle für die Kommunikation zwischen dem TV-Browser und einem beliebigen Fremdsystem. Hierbei werden keine für das jeweilige Fremdsystem spezifischen Aspekte berücksichtigt. So ist die Art des Fremdsystems für diese Betrachtung nicht relevant. Ebenso ist das Verfahren zur Bereitstellung von Daten aus dem Fremdsystem für den Import durch die Schnittstelle und die Verarbeitung der mittels der Schnittstelle exportierten Daten nicht von Bedeutung.

Zielsetzung

Das Ziel dieses Konzeptes ist nicht, eine Anbindung des TV-Browsers an ein spezielles Fremdsystem zu beschreiben. Vielmehr wird mit diesem Konzept ein generischer Ansatz verfolgt. Die Konfiguration der Schnittstelle im TV-Browser ist für alle Fremdsystem gleich, während die Prozesse außerhalb des TV-Browsers durch das jeweilige spezielle Fremdsystem bestimmt werden. In diesem Sinne ist diese Konfiguration generisch und universell verwendbar.

Voraussetzungen

Um die Konfiguration vornehmen zu können, müssen folgende Voraussetzungen erfüllt sein:

  • TV-Browser ab Version 3.4.1

Vorgehensweise

In diesem Abschnitt wird zunächst die allgemeine Vorgehensweise bei der Konfiguration Schritt für Schritt beschrieben.

Schritt 1: Erstellung einer Filterkomponente für den Datenimport

Zunächst muss im ersten Schritt eine Filterkomponente vom Typ BeanShell-Filter bzw. eine CSV-Datei-Filterkomponente erzeugt werden, die die vom Fremdsystem bereitgestellte Daten aus einer definierten Datenquelle (z. B. einer CVS-Datei) ausließt. Dafür folgt man der Beschreibung zur Erstellung von Filterregeln.

Für den Import großer Datenmengen aus einer CSV-Datei wird als performantere Alternative die Erstellung einer CSV-Datei-Filterkomponente empfohlen.

Schritt 2: Erstellung einer Filters

Anschließend wird basierend auf der so erstellten Filterkomponente gemäß der Beschreibung zur Erstellung von Filterregeln ein Filter erstellt.

Schritt 3: Einrichtung eines Filter-Info-Icons

Der im letzten Schritt erstellte Filter wird nun zur Einrichtung eines neuen Filter-Info-Icons verwendet.

Schritt 4: Einrichtung eines Hervorhebungsfilters für das Plugin SwitchPlugin

Die in Schritt 2 erstellte Filterkomponente wird nun zur Einrichtung eines Hervorhebungsfilters für das SwitchPlugin unter

Extras -> Optionen -> Allgemeine Einstellungen - Hervorhebungsfilter

verwendet. Hierzu muss das SwitchPlugin in der Liste der Plugins ausgewählt werden. Anschließend kann der Hervorhebungsfilter über den Schalter Bearbeiten eingerichtet werden. Die weitere Vorgehensweise bei der Einrichtung entspricht der bei der Anlage von Filterregeln.

Schritt 5: Konfiguration des SwitchPlugins für den Datenexport

Im letzten Schritt wird der Export der Daten zur Übergabe an das Fremdsystem im SwitchPlugin konfiguriert.

Beispiel

Anhand eines Beispiels soll in diesem Abschnitt die oben aufgezeigte Vorgehensweise verdeutlicht werden. Hierzu gehen wir von einer Mediathek als Fremdsystem aus. Diese enthält Informationen über die in ihr enthaltenen Serien und deren Episoden. Diese Informationen werden in Form einer CSV-Datei episodes.csv zur Verfügung gestellt.

Aufbau der Datei episodes.csv


Sendungstitel1;Episodentitel1   
Sendungstitel1;Episodentitel2
Sendungstitel2;Sendungstitel2  <-- Diese Hinterlegung ist derzeit nur in Verbindung mit der CSV-Datei-Filterkomponente
                                   möglich. Das aktuelle Beanshell-Beispiel-Skript müsste diesbezüglich erweitert werden. 
Sendungstitel3;Episodentitel3
Sendungstitel3;Episodentitel4  
Sendungstitel3;Episodentitel5  

Gemäß Schritt 1 wird nun eine Filterkomponente Episoden_in_der_Mediathek vom Typ BeanShell-Filter bzw. eine CSV-Datei-Filterkomponente erstellt, mit dem die Informationen aus der CSV-Datei ausgelesen werden können. Ein Beispiel für ein derartiges BeanShell-Skript steht in dem Artikel über BeanShell-Filter unter dem Punkt Dynamischer BeanShell-Filter als CSV-File-Interface zur Verfügung.

Basierend auf der Filterkomponente Episoden_in_der_Mediathek wird nun, wie im Schritt 2 aufgezeigt, ein neuer Filter Episoden in der Mediathek erstellt.

Mit dem Filter Episoden in der Mediathek muss nun gemäß Schritt 3 ein neues Filter-Info-Icon eingerichtet werde. Ist dies geschehen, so werden alle Sendungen aus dem aktuellen Datenbestand des TV-Browsers, die in der Mediathek vorhanden sind, mit diesem Icon gekennzeichnet.

Gemäß Schritt 4 wird dann die Filterkomponente Episoden_in_der_Mediathek zur Einrichtung eines Hervorhebungsfilters für das SwitchPlugin verwendet.

Abschließend erfolgt, wie in Schritt 5, die Konfiguration des SwitchPlugins für die Übergabe definierter Programmparameter an eine externe Instanz. In diesem Beispiel werden folgende Werte gesetzt:

Tab Applikationen/Parameter:

Zu startendes externes Programm:

C:\\externalInstance.exe

Parameter:

-p {cleanLess(title)},{cleanLess(episode)}

Tab Sonstige:

Die Option Fragen vorm Ausführen des externen Programms setzen.

Frageinhalt:

Sollen die Parameter an eine externe Instanz übergeben werden?

Kontextmenü-Eintrag:

Parameter an eine externe Instanz übergeben

Dies hat zur Folge, das aus dem Kontextmenü aller Sendungen aus dem aktuellen Datenbestand des TV-Browsers, die in der Mediathek vorhanden sind, die Parameter über den Menüpunkt Parameter an die externe Instanz übergeben an die externe Instanz externalInstance.exe übergeben werden können. Die externe Instanz könnte nun mit Hilfe der übergebenen Daten die Episode in der Mediathek suchen und daraufhin wiedergeben. Somit ist es möglich, Episoden aus dem TV-Browser in der Mediathek aufzurufen.

Anmerkungen

Ein derart allgemeines Konzept birgt natürlich Vor-und Nachteile. Dieser muss man sich bei der Verwendung dieser Konfiguration bewu0t sein.

Die Vorteile liegen natürlich in der Flexibilität und dem universellen Ansatz. Die Entwicklung eines spezifischen Plugins für die Kommunikation zwischen dem TV-Browser und einem Fremdsystem entfällt gänzlich. Somit auch die damit verbundene Wartung. Vielmehr kann jeder Anwender eigenständig eine derartige Kommunikation aufbauen.

Aber hieraus ergibt sich natürlich auch ein Nachteil. Um die Kommunikation mit dem TV-Browser herzustellen, ist seitens des Anwenders ein gewisser Aufwand für die Bereitstellung der Daten aus dem Fremdsystem für den TV-Browser und die Übergabe der vom TV-Browser exportierten Daten an das Fremdsystem erforderlich. Dieser Aufwand kann von Fremdsystem zu Fremdsystem unterschiedlich sein.