Xxv

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Beschreibung)
(Beschreibung)
Zeile 1: Zeile 1:
 
==Beschreibung==
 
==Beschreibung==
 
Es soll ein zentraler Dienst existieren bei dem verschiedene Ports offen sind und diese verschiedene Services bedienen koennen. Einen zusaetzlichen port ueber ein Plugin einzurichten, sollte genauso einfach sein, wie auch einen bestimmten Service bereit zu stellen. Das schreiben eines Plugins geht sehr schnell da der Input (Vdr, DB usw) sowie der Output (Telnet, HTTP, ... ) generisch realisiert wurde. Es soll also z.B. moeglich sein, mit einer TelnetConsole, HttpBrowser, WapTelefon, etc. pp. einen Autotimer einzutragen. Dieser sollte wesentlich schneller die EPG-Daten durchsuchen koennen (MySQL-Datenbank) und ueber ein Interface dem vdr den neuen Timer mitteilt. Dabei wird natuerlich auch dem singleModus des SVdrP Rechnung getragen und nur ein Befehl abgesendet und sofort wieder der Port geschlossen, damit andere Programme wieder auf den svdrp zugreifen koennen.
 
Es soll ein zentraler Dienst existieren bei dem verschiedene Ports offen sind und diese verschiedene Services bedienen koennen. Einen zusaetzlichen port ueber ein Plugin einzurichten, sollte genauso einfach sein, wie auch einen bestimmten Service bereit zu stellen. Das schreiben eines Plugins geht sehr schnell da der Input (Vdr, DB usw) sowie der Output (Telnet, HTTP, ... ) generisch realisiert wurde. Es soll also z.B. moeglich sein, mit einer TelnetConsole, HttpBrowser, WapTelefon, etc. pp. einen Autotimer einzutragen. Dieser sollte wesentlich schneller die EPG-Daten durchsuchen koennen (MySQL-Datenbank) und ueber ein Interface dem vdr den neuen Timer mitteilt. Dabei wird natuerlich auch dem singleModus des SVdrP Rechnung getragen und nur ein Befehl abgesendet und sofort wieder der Port geschlossen, damit andere Programme wieder auf den svdrp zugreifen koennen.
 
Eine detaillierte Beschreibung finden Sie hier: http://vdrportal.de/board/thread.php?threadid=22819
 
  
 
Download: http://www.xpix.de/downloads/xxv
 
Download: http://www.xpix.de/downloads/xxv
 +
 +
Thread der AlphaVersion: http://vdrportal.de/board/thread.php?threadid=22819
 +
  
 
Lange Rede kurzer Sinn, hier ein kleiner Ueberblick der derzeitigen Features:
 
Lange Rede kurzer Sinn, hier ein kleiner Ueberblick der derzeitigen Features:

Version vom 2. Februar 2005, 15:33 Uhr

Inhaltsverzeichnis

Beschreibung

Es soll ein zentraler Dienst existieren bei dem verschiedene Ports offen sind und diese verschiedene Services bedienen koennen. Einen zusaetzlichen port ueber ein Plugin einzurichten, sollte genauso einfach sein, wie auch einen bestimmten Service bereit zu stellen. Das schreiben eines Plugins geht sehr schnell da der Input (Vdr, DB usw) sowie der Output (Telnet, HTTP, ... ) generisch realisiert wurde. Es soll also z.B. moeglich sein, mit einer TelnetConsole, HttpBrowser, WapTelefon, etc. pp. einen Autotimer einzutragen. Dieser sollte wesentlich schneller die EPG-Daten durchsuchen koennen (MySQL-Datenbank) und ueber ein Interface dem vdr den neuen Timer mitteilt. Dabei wird natuerlich auch dem singleModus des SVdrP Rechnung getragen und nur ein Befehl abgesendet und sofort wieder der Port geschlossen, damit andere Programme wieder auf den svdrp zugreifen koennen.

Download: http://www.xpix.de/downloads/xxv

Thread der AlphaVersion: http://vdrportal.de/board/thread.php?threadid=22819


Lange Rede kurzer Sinn, hier ein kleiner Ueberblick der derzeitigen Features:

- komplett in Perl realsiert - sehr generisches Frontend - Plugin system - Datenbank Unterstuetzung - Epg-Daten werden regelmaessig geparst und eingetragen - sehr einfaches pluginkonzept fuer zukuenftige Erweiterungen - mehrere Services aus einem Dienst (Telnet, HTTP, ...) - Dump-Interface fuer externe Programme

Screenshots

Xxv full.gif
Xxv vtx.gif
Xxv autotimer.gif

Softwareanforderungen

  • mysql-server
  • perl
    • DBI
    • DBD::mysql
    • Event
    • Test::Simple
    • URI
    • MIME::Base64
    • Time::HiRes
    • Attribute::Handlers
  • mplayer (optional), installation siehe auch: mplayer-plugin

Installation

Als erstes ist Mysql zu installieren.

cd $SOURCEDIR
tar xvzf mysql-<VERSION>.tar.gz
./configure --prefix=/usr/local \
            --libexecdir=/usr/local/bin \
            --without-extra-tools \
            --without-bench
make
make install
find . -name my-medium.cnf -exec cp --backup=t \{} /etc/my.cnf \;
cd /usr/local/lib
ln -s mysql/libmysqlclient.so* .
groupadd mysql
useradd -g mysql mysql
chown -R mysql var
mysql_install_db --user=mysql &
ldconfig

Starten des Servers mit.

mysqld_safe --user=mysql &

Nun folgt ein ganzer packen Perl::Module, da gibt es wie 2 Wege.

Mittels "CPAN":

perl -MCPAN -e 'install MODULE'

So in etwa:

perl -MCPAN -e 'install URI'

Oder via Source, auf dem TestPC als Basis Peanut waren es folgende Sachen.

  • Test-Simple-<VERSION>.tar.gz
  • DBI-<VERSION>.tar.gz
  • DBD-mysql-<VERSION>.tar.gz
  • Event-<VERSION>.tar.gz
  • URI-<VERSION>.tar.gz
  • MIME-Base64-<VERSION>.tar.gz
  • Time-HiRes-<VERSION>.tar.gz
  • Attribute-Handlers-<VERSION>.tar.gz

Die Installation ist fuer alle Pakete Identisch:

cd $SOURCEDIR
tar xvzf <NAME>-<VERSION>.tar.gz
cd <NAME>-<VERSION>
perl Makefile.PL
make
make install
cd -

Zu guter letzt xxv:

cd $SOURCEDIR
tar xvzf <VERSION>.tar.gz

Debian-spezifisch

Unter Debian braucht man nicht die perl Module von Hand installieren, diese Zeile sollte ausreichen um xxv zum laufen zu bekommen.

apt-get install mysql-server libdbi-perl libevent-perl libtimedate-perl

Konfiguration

Als erstes erfolgt das anlegen der Datenbank:

bash> mysql -u root -e "create database xxv;"

Rechte setzen:

bash> mysql -u root -e "grant all privileges on xxv.* to xpix@localhost;"

Die $SOURCEDIR/xxv-<VERSION>/xxvd.cfg ist anzupassen:

[General]
DSN=DBI:mysql:database=xxv;host=localhost;port=3306
LANGUAGE=german
LOGFILE=/var/log/xxvd.log
PIDFILE=/var/run/xxvd.pid
PWD=
USR=xpix

Starten von xxv:

cd $SOURCEDIR/xxv-<VERSION>
./bin/xxvd.pl && tail -f /var/log/xxvd.log

Dann einen Browser aufrufen mit folgender URL:

 http://ip_deines_vdrs:8080/

oder per Telnet

 telnet [ip deines vdrs oder localhost] 8001
User: xxv 
Password: xxv

Plugins

Autotimer

Hier werden die EPG Daten nach Sendungen mit einem bestimmten Text in title, subtitle und text durchsucht und diese als Timer programmiert.

Manual: http://www.xpix.de/downloads/xxv/doc/AUTOTIMER.html

Timers

Dieses Modul erlaubt das löschen, erstellen und editieren der neuen Timer, sowie deren Darstellung.

Manual: http://www.xpix.de/downloads/xxv/doc/TIMERS.html


EPG

Hier wird die epg.data geparst und deren Einträege in einer Datenbank abgespeichert.

Manual: http://www.xpix.de/downloads/xxv/doc/EPG.html

Channels

Hier wird die channels.conf geparst und deren Einträege in einer Datenbank abgespeichert.

Manual: http://www.xpix.de/downloads/xxv/doc/CHANNELS.html


HTTPD

Dieses Modul stellt einen HTTP Server sowie ein Webinterface zur Verfügung um xxv per Browser bedienen zu können.

Manual: http://www.xpix.de/downloads/xxv/doc/HTTPD.html

Telnet

Dieses Modul stellt einen Telnet Server zur Verfügung um xxv per telnet localhost portnummer bedienen zu können.

Manual: http://www.xpix.de/downloads/xxv/doc/TELNET.html

Interface

Dieses Modul stellt einen Telnet Server zur Verfügung um xxv mit anderen GUIs bedienen zu können.

Manual: http://www.xpix.de/downloads/xxv/doc/INTERFACE.html

Wapd

Dieses Modul stellt einen WapD Server zur Verfügung um xxv mittels einem Wap Browser (Handys) bedienen zu können. Zur Zeit noch ohne Funktion.

Manual: http://www.xpix.de/downloads/xxv/doc/WAPD.html

Music

Das MusicPlugin stellt eine Mediabiblothek sowie einen Icecast Streamserver zur Verfügung.

Manual: http://www.xpix.de/downloads/xxv/doc/MUSIC.html

Records

Dieses Plugin stellt alle Aufnahmen übersichtlich dar und erlaubt verschiedene Aktionen auf den einzelnen Records.

Manual: http://www.xpix.de/downloads/xxv/doc/RECORDS.html

Config

Das Konfiguration Plugin erlaubt während der Laufzeit verschiedene Parameter in den Interfaces (HTTP, Telnet ...) zu ändern und diese abzuspeichern.

Manual: http://www.xpix.de/downloads/xxv/doc/CONFIG.html

Grab

Grab stellt das Livebild vom vdr als JPEG Datei zur Verfügung.

Manual: http://www.xpix.de/downloads/xxv/doc/GRAB.html

Remote

Dieses Plugin stellt eine Fernbedienung und in Verbindung mit Grab auch ein Livebild dar. Somit laesst sich der vdr per Interface rudimentaer bedienen.

Manual: http://www.xpix.de/downloads/xxv/doc/REMOTE.html

Status

Status stellt alle Systeminformationen in den Interaces als übersichtliche Darstellung dar.

Manual: http://www.xpix.de/downloads/xxv/doc/STATUS.html

SVDRP

Dieses Plugin stellt alle telnet Befehle der svdrp Schnittstelle vom vdr zur Verfügung

Manual: http://www.xpix.de/downloads/xxv/doc/SVDRP.html

User

Eine Userautentifikation die in allen Interfaces die Kennung und Passwort des Users abfragt und eine Levelverwaltung zur Verfügung stellt.

Manual: http://www.xpix.de/downloads/xxv/doc/USER.html

Vtx

Diese Modul zeigt Videotextseiten an.

Manual: http://www.xpix.de/downloads/xxv/doc/VTX.html

Probleme

  • in dem Logile tauchen beim start von xxv Warnungen auf:
6 (3185) [16:41:37 02/01/05] Can't locate Term/ReadLine/Gnu.pm in @INC (@INC contains: /root/XXV/bin/../lib /root/XXV/bin /usr/local/lib/perl/5.6.1 /usr/local/share/perl/5.6.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.6.1 /usr/share/perl/5.6.1 /usr/local/lib/site_perl .) at (eval 27) line 1
7 (3185) [16:41:37 02/01/05] Can't locate Term/ReadLine/Gnu.pm in @INC (@INC contains: /root/XXV/bin/../lib /root/XXV/bin /usr/local/lib/perl/5.6.1 /usr/local/share/perl/5.6.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.6.1 /usr/share/perl/5.6.1 /usr/local/lib/site_perl .) at (eval 27) line 1

Diese können ignoriert werden. Perl versucht verschiedene Module aufzurufen um herauszufinden welches es benutzen darf.

  • in dem Lofile tauchen ab und zu folgende Warnungen auf:
 37 (805) [12:01:34 02/02/05] Can't locate object method "timers" via package    "XXV::MODULES::EPG" (perhaps you forgot to load "XXV::MODULES::EPG"?) at   /root/XXV/bin/../lib/Template/Stash.pm line 650.

Diese können ignoriert werden. Perl versucht per eval eine Methode aufzurufen.

Links

[1] http://www.mysql.org mySQL
[2] http://xpix.dieserver.de/content Homepage