[Announce] vdr jonglisto 0.0.5

  • Liebe VDR Gemeinde,


    VDR jonglisto ist eine Web-Oberfläche, die es erlaubt EPG Daten zu sichten, Timer zu erstellen, ändern und zu löschen und ebenso Aufnahmen umzubennen, verschieben oder zu löschen. Als Besonderheit ist diese Oberfläche nicht auf eine VDR Instanz beschränkt, sondern dient z.B. in meiner Umgebung dazu, alle Instanzen im Blick zu behalten. Es sei erwähnt, daß auch sogenannte Sichten erstellt werden können, die es erlauben, bestimmte Aktionen nur auf einer bestimmten Instanz durchzuführen. Diese Aktionen sind völlig transparent und der Nutzer sieht nicht, welche VDR Instanz gerade angesprochen wird.


    Da dies die erste Version ist, fehlt natürlich noch einiges. Um vdradmin-am (für meine Bedürfnisse) vollständig abzulösen, muss noch epgsearch implementiert werden. Viele weitere Ideen sind aber auch noch vorhanden und es ist - wie üblich - eine Frage der vorhandenen Zeit, wann und ob diese implementiert werden.


    Voraussetzungen:

    • VDR Plugin restfulapi mindestens in der Version 0.2.6.5. Kleinere Versionen können die Aufnahmeverzeichnisse und Aufnahmen etwas strubbelig machen.
    • ein laufender EPGD und insbesondere die zugehörige mysql-Datenbank
    • Java 8


    Repository:
    Die Sourcen findet man auf Github Jonglisto oder alternativ die Docker-Version auf Github Jonglisto Docker


    Konfiguration:
    Das Konfigurationsfile /etc/jonglisto/jonglisto.json muss vorhanden sein. Das Format ist json. Die Dokumentation befindet sich im Repository


    FAQ.

    • Warum eine neue Oberfläche?
      Weil ich a) dazu Lust hatte und mich mit Java 8 beschäftigen wollte. In anderen Projekten waren wir bis vor kurzem noch auf der toter als toten Version 5, b) ich mit Live und epgd-http nie richtig warum geworden bin und c) weil ich eine Version haben wollte, die auf beliebig viele VDR Instanzen zugreifen kann.
    • Warum restfulapi und epgd als Vorraussetzung?
      restfulapi weil es eine einfache und stabile Möglichkeit ist, VDR Instanzen anzusprechen. Mit svdrp hätte ich weniger Möglichkeiten und zusätzlich gibt es mit svdrp ein Connect-Problem, wenn zuviele verschiedene Connects gleichzeitig reinkommen (wollen). Seit VDR 2.3.1 soll das Geschichte sein, aber diese Version habe ich noch nicht produktiv. EPGD ist erforderlich, weil aus der Datenbank sämtliche EPG-Daten gelesen werden. Und zusätzlich noch die Scraper-Informationen.
    • Gibt es Seiten zur Konfiguration?
      Nein. Die Konfiguration befindet sich ausschließlich in /etc/jonglisto/jonglisto.json.
    • Ich sehe keine Login-Maske. Warum nicht?
      Die aktuelle Version ist schon der zweite Versuch einer Applikation und in der ersten gab es tatsächlich Seiten zur Konfiguration und auch gesicherte Seiten. Nur hat mich die Administration zu sehr beschäftigt ohne wirklich einen Vorteil zu erzeugen. In der neuen Version habe ich erstmal darauf verzichtet um eine stabile Basis zu erhalten um dann über Rechte und Berechtigungen nachdenken zu können.
    • Welche Pläne gibt es noch?
      Zu viele, wenn ich mir die verfügbare Zeit so betrachte.Beispiele wären ein svdrp-Server (als Proxy und für mehr), ein Ersatz für epgsearch, Umschalttimer und so weiter. Aber als nächstes steht jedoch die epgsearch-Integration an.
    • Das sieht ja hässlich aus. Muss das so sein?
      Ja, solange kein anderer eine Idee und die Umsetzung liefert. Ich habe mit Pixeln nicht viel am Hut, mit geht es immer nur um die Funktionalität.
    • Da funktioniert ja gar nix, oder ich hätte gerne noch andere Features. Was nun?
      Entweder auf github ein Issue aufmachen oder hier im Forum meckern oder anregen. Je nach Zeit und Problem werde ich versuchen eine Lösung zu finden. Die Applikation wirft bei Fehlern eine sehr umfangreiche Fehlerseite aus, die zur Fehlersuche recht nützlich sein kann. Apache Tapestry sei Dank :]


    Vielleicht findet ja noch jemand Gefallen an der Applikation...


    Edit: Version des restfulapi-Plugins spezifiziert. Das ging schneller, als ich dachte :cool1


    Viele Grüße
    Zabrimus

  • Hallo,


    eine neue Version 0.0.2 wurde erstellt.


    sichtbare Änderungen:
    - neuer Theme, der irgendwie gefälliger ist
    - Channellogos werden in die Applikation eingebunden
    - Suchtimer, epg2vdr-basiert rudimentär implementiert
    - css aufgeräumt
    - viele kleinere Änderungen, die mir unterwegs aufgefallen sind


    Die Channel-Logos müssen vor dem eigentlichen Build separat gebaut werden. Dies muss nur einmal passieren, oder falls Änderungen in das picon-Repo eingeflossen sind, die gewünscht werden.


    Das Theme stammt von bootswatch und kann durch jedes andere ersetzt werden - theoretisch. Eine Anleitung findet sich auf github.


    There exist multiple possibilities to build and start the application.

    • Use the docker repository https://github.com/Zabrimus/vdr-jonglisto-docker.
    • Build a war file which can be deployed in a running servlet container like jetty or tomcat.
      cd tools; ./build-logo-jar.sh
      ./build.sh war
    • Build a runnable (hybrid) war file which either can be deployed (see 2.) or can be started as normal application.
      cd tools; ./build-logo-jar.sh
      ./build.sh standaloneWar
      Start with java -jar vdr-jonglisto-0.0.1.war
      Default port is 8080


    Zabrimus

  • Hallo,


    es gibt eine neue Version 0.0.3 mit folgenden Änderungen/Erweiterungen:


    • ein SVDRP Server wurde implementiert, der für verschiedenes neues benötigt wird. Es ist nur all das implementiert, das aktuell benötigt wird.
    • der SVDRP Server implementiert das svdrposd/remoteosd Protocoll. Damit erhält Jonglisto ein eigenes OSD, aber auch die Möglichkeit das OSD fremder VDR zu betrachten. So wie bisher mit svdrposd/remoteosd auch, allerdings findet hier eine Protokollumsetzung von svdrp nach restfulapi statt.
    • die Javascript-Engine Nashorn wurde in Jonglisto integriert. Dies wird z.B. für RemoteTimers (s.u.) und den SVDRP Server interessant.
    • Jonglisto kann als RemoteTimers-Proxy arbeiten (aktuell Port 5000). Die Requests von RemoteTimers werden wieder nach restfulapi gemapped. Eine weitergehende Konfiguration und die Möglichkeiten können in samples/svdrp.js betrachtet werden.
    • Für die epg2vdr Datenbank hat das interne OSD die Möglichkeit SQL-Statements abzusetzen und das Ergebnis im OSD zu betrachten. Siehe dazu samples/epg2vdr.js
    • Innerhalb von Jonglisto besteht die Möglichkeit SVDRP Befehle an all konfigurierten VDR zu senden. Die Ausgabe erfolgt in einer Art Konsole im Browser
    • Es gibt ein Konfigurationstool für die channelmap.conf des EPG2VDR Daemons, der sowohl eine manuelle Konfiguration per Drag&Drop der conf-Datei erlaubt. Ein Auto-Mapping wurde auch implementiert. Die Konfiguration wird in der internen Datenbank gespeichert und das Auto-Mapping erzeugt damit schon ziemlich gute und reproduzierbare Resultate. Als Provider sind nur tvm/tvsp wirklich nutzbar. Mein epgdata-Abo ist leider abgelaufen und komme nicht mehr an das id-File zum testen.


    Nächste Aktivitäten:

    • Kanal-Editor. Ich muss meine channels.conf mal etwas sortieren und das sollte etwas geschmeidiger werden.
    • Aufräumen, aufräumen, aufräumen. Ein paar Seiten will ich umgestalten und aufräumen. Texte extrahieren und Mehrsprachigkeit ist auch ein Thema.
    • Langsam sollte ich mir Gedanken über die Security machen.


    So in der Reihenfolge....


    Zabrimus

  • Hallo,


    es gibt eine neue Version 0.0.5 mit folgenden Änderungen/Erweiterungen:


    • wake-on-lan implementiert (da könnten noch ein paar mehr Tests erforderlich sein). Es wird versucht die richtige Broadcast-Adresse zu ermitteln.
    • Plugins und Devices können auf der Index-Seite für jeden VDR angezeigt werden
    • Die Sortierung der channelmap kann nun direkt in die Datenbank geschrieben werden. Es wird dabei nur das ord-Feld der epg2vdr Tabelle channelmap angepasst.
    • Mehrsprachenfähigkeit. Die englische Version ist vielleicht noch ein wenig holprig.
    • Suchtimer werden in den EPG-Übersichten markiert: epgsearch, epgd und epg2timer
    • Kanalsortierung und verschieben/erzeugen von Kanalgruppen per drag&drop implementiert. Die Konfiguration kann gespeichert werden und bei Kanaländerungen sollte sich eine neu sortierte channels.conf generieren lassen.
    • Ist noch keine Konfiguration vorhanden wird automatisch auf eine Setup-Page umgeleitet, mit der sich eine Anfangskonfiguration erstellen lässt. Die Konfiguration kann nur heruntergeladen, aber nicht automatisch installiert werden. Ich wollte keine Schreibzugriffe in /etc versuchen oder implementieren.
    • die üblichen Bugfixes, die unterwegs eingesammelt werden


    Nächste Schritte:

    • Als nächstes steht erstmal eine Änderung in einer verwendeten Komponente an, die nicht so arbeitet, wie ich mir das wünsche.
    • Eine Online-Hilfe-Komponente wäre wünschenswert, da vielleicht nicht alles selbsterklärend ist.
    • Security


    Zabrimus