Moin!
Ich habe vor ein paar Monaten einen Ausflug in die C/C++ Welt unternommen. Damals funktionierte tvmovie2vdr nur mit mehreren 100 MB Speicher zuverlässig. Die Idee war mein epgdata.com Abo vernünftig und zuverlässig zu benutzen, und am Ende ein Plugin ähnlich wie tvm2vdr zu haben. Nachdem der Parser zu meiner Zufriedenheit lief habe ich weiter nichts mehr dran gemacht Basieren tut das ganze auf Anfängen von "gda".
Da ich wegen Job und anderen Hobbies keine Zeit mehr dafür finde und das ganze ja schliesslich Spaß sein soll, möchte ich es jetzt aufgeben. Ich suche hier jemanden der evtl da dran weiterarbeiten will. (Ein Umzug auf vdr-developer.org bringt ja nicht automatisch jemanden der es weiterprogrammiert )
Was funktioniert ?
* man kann dem Kommandozeilenprogramm das Zipfile übergeben und bekommt ein Textfile mit gleichen Namen und .epg Endung zurück, was in den VDR geladen werden kann
* es ist schnell (ungefähr eine Sekunde pro Datei) und braucht kaum Speicher
* Korrektes Character Encoding handling (dank libxml2) Das Encoding wird aus dem Environment gelesen und libxml2 übergeben
Was fehlt noch ?
* Bildweiterverarbeitung
* Plugin-Integration (obwohl ich ich nicht zwingend die Notwendigkeit sehe, da neuere VDR Versionen auch Dateien aus dem Filesystem lesen können)
* Download aus dem Programm heraus
* Cleanup alter Dateien
Wenn es jemand testen will (ist aber weitestgehend auf sich gestellt) , für meine eigene Nutzung benutze ich ein Shellskipt.
#!/bin/bash
PIN=xxxxxxxxxxxxxxxxxxxxxxx
for i in `seq 0 30` ; do
TMP=`mktemp`
curl -I -D $TMP "http://www.epgdata.com/index.php?action=sendPackage&iOEM=VDR&pin=$PIN&dayOffset=$i&dataType=xml" &> /dev/null
FILE=`grep -e "^Content-disposition.*$" $TMP | sed -e ' s/\r//g' | cut -d"=" -f2`
SIZE=`grep -e "^Content-Length.*$" $TMP | sed -e ' s/\r//g' | cut -d":" -f2`
if [ ! -z $SIZE ]; then
if [ ! -e files/$FILE ]; then
curl "http://www.epgdata.com/index.php?action=sendPackage&iOEM=VDR&pin=$PIN&dayOffset=$i&dataType=xml" -o files/$FILE
else
if [ `ls -la files/$FILE | cut -d" " -f5` != $SIZE ]; then
curl "http://www.epgdata.com/index.php?action=sendPackage&iOEM=VDR&pin=$PIN&dayOffset=$i&dataType=xml" -o files/$FILE
fi
fi
### process start ###
FILE="`basename $FILE .zip`"
if [ -e files/$FILE.epg ]; then echo "Dataset allready processed" ; exit 0; fi
echo -e " File: $FILE Size: $(( $SIZE /1024 )) kB"
./test /root/test1/include files/$FILE.zip
echo "." >> files/$FILE.epg
( sleep 3; echo "PUTE"; cat files/$FILE.epg ; echo "QUIT" ; sleep 4) | telnet localhost 2001
fi
rm $TMP
done
Alles anzeigen
Unter /root/test1 sind 2 Verzeichnisse, include und files. in include liegen die Dateien aus dem include.zip von epgdata.com. In files werden von obigen Skript die Dateien gespeichert und verarbeitet. Ich meine HTPC-Schrauber hatte noch eine verbesserte Version des Scripts. Es lädt wenn die Datei noch nicht existiert, die EPG Daten mit dem von epgdata.com gegebenen Namen herunter, processed sie und läd sie in den VDR.
Liegen tut das ganze dort:
http://svn.origo.ethz.ch/wsvn/…vm2vdr/trunk/epgdata2vdr/
Also mit im svn von tvm2vdr.
Ich hoffe irgendjemand hat Lust es zu Ende zu programmieren, ich nicht mehr ... isch habe fertig, sozusagen