Block-plugin
Midas (Diskussion | Beiträge) (→Beschreibung) |
Midas (Diskussion | Beiträge) (→Beschreibung) |
||
Zeile 1: | Zeile 1: | ||
==Beschreibung== | ==Beschreibung== | ||
− | '''Autor''' Michael Schneider | + | '''Autor:''' Michael Schneider |
Version vom 10. Dezember 2011, 10:46 Uhr
Inhaltsverzeichnis |
Beschreibung
Autor: Michael Schneider
Das block-plugin ist ein fork des verwaisten taste-plugin von LordJaxom. Grundlage bildete ein CVS checkout des taste plugins im Januar 2010 sowie patches von tomg und mapovi.
Als Weiterentwicklung des taste-plugin dient das block-plugin zunächst einmal ebenso dazu Sendungen anhand ihres EPG-Titels beim Umschalten zu sperren, was zum Beispiel aus Gründen des Niveaus notwendig sein kann. Das block-plugin kann darüber hinaus auch permanent mit dem aktuellen EPG-Titel abgleichen, es bietet zusätzliche whitelisting-Funktionalität und ermöglicht die Einrichtung einer optionalen konfigurierbaren Kindersicherung (inklusive Verhindern des Abspielens von Aufnahmen mit gesperrtem Titel). Ferner werden auch Sender ohne oder mit leerem EPG berücksichtigt. Außerdem sind die Probleme des taste-plugins mit Budget/non-FF output Konfigurationen sowie mit dem Freischalten per ‚Ok’-Taste behoben.
Statt einer gesperrten Sendung wird ein schwarzer Bildschirm ohne Ton angezeigt und es erscheint eine entsprechende Meldung im OSD (Standard: 2 Sekunden lang). Während der Anzeige dieser Meldung kann der Benutzer per ‚Ok’ das Programm freischalten und die Sendung trotz Sperre schauen, er kann mit (Channel) Up/Down das Programm weiterzappen oder er macht nichts. In diesem Fall schaltet der VDR nach Anzeige der Meldung selbständig auf ein anderes Programm und zwar regulär in Richtung des letzten Umschaltens (z.B. 55->54[gesperrt]->53 bzw. umgekehrt). Sollte dies nicht möglich sein fällt das Plugin auf den zuvor geschauten Kanal zurück.
Bei Einrichtung als Kindersicherung werden verschiedene Einstellungen automatisch gesetzt und gegen Veränderung gesperrt oder eingeschränkt (Detektionsmethode, Freischalten, Editieren/Löschen von Einträgen, Whitelisten etc.).
Bilder
Die Bilder stammen aus der aus der Version 0.1.0. Aktuelle Änderungen bitte immer in HISTORY und README oder im VDR-Portal nachlesen.
Bedienung
Sendungen sperren
Sendungen lassen sich im Hauptmenü des VDR unter ‚Sendung (ent)sperren’ in die blacklist des block-plugins aufnehmen. Der aktuelle EPG-Titel ist damit in die Mustererkennung des Plugins aufgenommen und wird fortan gesperrt.
Sendungen freigeben / editieren / manuell hinzufügen
Seit Version 0.0.4 dient auch der Hauptmenüeintrag zur permanenten Freigabe. Soll eine gesperrte Sendung wieder permanent freigegeben werden, reicht es diese per 'Ok' zunächst temporär freizugeben und dann einfach im Hauptmenü wieder 'Sendung (ent)sperren' anzuwählen. Der Titel ist dann wieder entsperrt.
Für diese und die weiteren Funktionen kann ansonsten der Einstellungsdialog des block-plugins im VDR aufgerufen werden. Unterhalb der Konfigurationsparameter befindet sich die Liste gesperrter Sendungen, deren Einträge per Farbtaste verändert werden können:
Rot - Editieren: Es erscheint ein Untermenü, in dem der Benutzer den Titel verändern kann sowie ein Schalter zum Ignorieren von Groß-/Kleinschreibung und es gibt die Möglichkeit den Eintrag als regulären Ausdruck zu markieren.
Grün - Neu: Legt ‚Neuer Eintrag’ an. Dieser lässt sich danach durch das Editieren anpassen.
Gelb – Löschen: Nach Bestätigung wird der aktuelle Eintrag gelöscht.
Blau - +/-: Schaltet den aktuellen Eintrag auf freigegeben (+) oder gesperrt (-)
Die Trefferliste kann auch manuell per Editor bearbeitet werden (siehe Konfiguration).
Softwareanforderungen
Das block-plugin wird mit VDR Version 1.6.0 und der aktuellen Entwicklerversion getestet.
Konfiguration
Manuelles Editieren der Regelliste
Die Trefferliste des plugins befindet sich seit Version 0.1.0 in der folgenden Datei (Trefferlisten älterer Versionen des taste- oder block-plugns werden automatisch erkannt, importiert und die neue Datei angelegt):
$VDRCONFIG/plugins/block/block.conf
Frühere Versionen nutzten den Pfad $VDRCONFIG/plugins/block.conf bzw taste.conf. Beim ersten Start mit einer Version des block plugins >=0.1.0 werden der neue Pfad und die Datei automatisch angelegt. Dabei werden alte Versionen der Liste des taste-plugins oder des block-plugins berücksichtigt und auf deren Grundlage die neue Datei erzeugt. Währenddessen werden doppelte Einträge (ignoriert Groß/Klein) entfernt und alle Einträge als gesperrt markiert. Die zu Grunde liegende alte Trefferliste wird außerdem als Backup im gleichen Pfad unter dem Namen block.conf.safe-pre0.1.0 abgelegt.
Die Trefferliste lässt sich mit jedem linuxkonformen Editor bearbeiten. Eine Zeile besteht aus vier Einträgen:
X:Y:Z:Muster
X: 0 = Muster ist kein regulärer Ausdruck; 1 = Muster ist regulärer Ausdruck
Y: 0 = Groß-/Kleinschreibung interpretieren; 1 = Groß-/Kleinschreibung ignorieren
Z: + = Muster bezeichnet freigegebene Sendung(en); - = Muster bezeichnet gesperrte Sendung(en)
Muster: EPG-Titel bzw. Teil des EPG-Titels (Schlagwort) der Sendung oder regulärer Ausdruck
Umstieg vom taste-plugin auf das block-plugin
Seit Version 0.1.0 des block plugins werden ältere Trefferlisten des taste oder des block-plugins automatisch importiert.
Kindersicherung (experimentell)
Für die Einrichtung einer Kindersicherung sind verschiedene Einstellungen notwendig, die sich jedoch in $VDRCONFIG/setup.conf mit einer Einstellung automatisch setzen lassen. Es ist notwendig das laufende Programm permanent auf gesperrte Titel zu untersuchen das Freischalten per ‚Ok’ und im Hauptmenü zu verhindern sowie das Löschen und Whitelisten von Einträgen zu verhindern und das Anlegen neuer Einträge und das Editieren einzuschränken. Durch Hinzufügen der Zeile
block.ParentalGuidance=1
in $VDRCONFIG/setup.conf werden die aktuellen Werte dieser Einstellungen überschrieben und die entsprechenden Funktionen gesperrt. Damit die Zeile in der setup.conf angenommen wird, muss der VDR während des Editierens gestoppt sein. Um die Kindersicherung wieder abzuschalten kann die Zeile einfach gelöscht werden, oder block.ParentalGuidance=0 gesetzt werden (beides ebenfalls bei gestopptem VDR).
Um beispielsweise alle Sendungen per se zu sperren (alle!) und nur noch whitelist-Regeln freizuschalten, kann man zum Beispiel folgenden regulären Ausdruck (muss für diesen Eintrag natürlich aktiviert sein) Regel definieren: [.]*
Aber Vorsicht: Bei aktiviertem Kindersicherungsmodus gibt es dann keine direkte Möglichkeit nachträglich whitelist-Einträge hinzuzufügen.
Diese Form der Kindersicherung möchte und kann die Eltern in ihrer Aufsichtspflicht nicht ersetzen. Der Autor des block-plugins übernimmt daher keinerlei Verantwortung für die Funktion als Kindersicherung.
Einstellungen
Hauptmenüeintrag verstecken - ‚Sendung sperren’ im Hauptmenü des VDR wird angezeigt oder nicht
Wartezeit bis Umschalten [s] - Dauer der Meldung im OSD, bei Detektion einer gesperrten Sendung und Gelegenheit zur Benutzerinteraktion (maximal 10 s)
Detektionsmethode - ‚Beim Umschalten’ ist die Methode, wie sie bereits vom taste-plugin bekannt ist. Es wird nur beim Umschalten mit der Sperrliste abgeglichen. Bei der Methode ‚Kanal EPG’ wird dagegen permanent der aktuelle EPG-Titel untersucht, so dass auch bei Beginn einer gesperrten Sendung auf dem aktuellen Kanal die Blockfunktion greift.
Ok entsperrt temporär - Legt fest, ob der Benutzer bei einer Sperrmeldung im OSD das gesperrte Programm mit ‚Ok’ temporär (bis zum nächsten Umschalten) freischalten kann oder nicht.
Unschärfepriorität - Durch die Kombination von whitelist- und blacklist-Einträgen kann es vorkommen, dass widersprüchliche Treffer in der Liste gefunden werden. In diesem Fall fällt das plugin auf den Wert der Option 'Unschärfepriorität' zurück.
Funktionsweise
Die Entscheidungfindung, ob ein Eintrag als gesperrt oder nicht gesperrt erachtet wird läuft wie folgt:
1. Sammeln aller zutreffenden Regeln in der Liste
2. Ist keine zutreffende Regel vorhanden wird der Titel als freigegeben bewertet.
3. Sind alle zutreffenden Regeln blacklist ODER whitelist Einträge wird anhand dessen bewertet.
4. Werden widersprüchliche Regeln gefunden, fällt das Plugin auf den im Setup eingestellten Wert der Option 'Unschärfepriorität' zurück.
5. Stimmt ein Treffer exakt mit dem aktuellen EPG-Titel überein, so genießt dieser Treffer höchste Priorität und es wird anhand dieses Treffers bewertet.
So ist es möglich auch bei umfassenden regulären Ausdrücken oder bei häufiger zutreffenden Teilausdrücken (Beispiel: 'Richter' ist blacklistet 'Der Richter und sein Henker' soll aber whitelistet sein.), trotzdem bequem und schnell über das Hauptmenü eine fälschlich miteinbezogene Sendung freizugeben ohne die umfassendere oder unscharfe Regel zu verändern oder zu löschen.
Zur Vermeidung von Duplikaten wird bei Ignorieren von Groß/Kleinschreibung nach einem exakten Treffer in der Liste gesucht, und gegebenenfalls lediglich dessen Attribut white/blacklist sowie eventuell das Attribut Groß/Kleinschreibung umgeschaltet.
Probleme
Die Sperrfunktionen des block-plugins wie auch des taste-plugins reagieren auf den aktuell im VDR gemeldeten EPG-Titel der laufenden Sendung. Sind diese EPG-Informationen nicht korrekt, weil zum Beispiel der Sender seine EPG-Daten nicht synchron aktualisiert, beeinflusst dies natürlich auch die Sperrfunktion. Bitte besonders bei Nutzung als Kindersicherung beachten.
Snapshot
Kleinere Änderungen und bugfixes landen immer als erstes im master branch des git repository, den man so beziehen kann:
git clone git://projects.vdr-developer.org/vdr-plugin-block.git
Daneben werden neue features im dev branch eingebaut. Wer bei der Entwicklung weiterhelfen möchte oder einfach nur Interesse an den neuen features hat, kann daher diesen Zweig (im zuvor mit clone bezogenen Verzeichnis) folgendermaßen auschecken:
git checkout --track -b dev
Zwischen den branches lässt sich dann mit git checkout <branchname> wechseln, so dass man wahlweise den code des einen oder des anderen Zweig vorliegen hat.
Aktuelle Version
- Source tarballs
- Git Version git clone git://projects.vdr-developer.org/vdr-plugin-block.git
- Git dev Version (release candidates, feature tests etc.) git clone git://projects.vdr-developer.org/vdr-plugin-block.git && cd vdr-plugin-block && git checkout -t origin/dev -b dev
GIT-Updates können dann im jeweiligen branch mit git pull bezogen werden.
Zwischen den branches kann mit git checkout <branchname>, also z.B. mit git checkout master in den master branch gewechselt werden.
git branch zeigt die vorhandenen branches an, wobei das Asterisk den branch markiert, indem man sich momentan befindet (HEAD).