Moin zusammen!
Ich habe mich mal überwunden und ein Script erstellt, welches aus den gesetzten Timern eine ics (iCal) Datei erstellt.
Vielleicht kann die ja einer von Euch auch gebrauchen?!
Ich lade meine Timer so auf meinen Zimbra-Server hoch und binde diese ics-Datei in meinen Kalender ein - eigentlich eine geniale Sache
Bash
#!/bin/bash
cd /root/bin
FILE=Timer.txt
FILEEPG=SendungEPG.txt
FILEICS=Timer.ics
# KANAL YYYY-MM-DD HHMM HHMM
# ^Ziffer ^Beginn ^Ende
svdrpsend.pl lstt | grep 250 | sed 's/250 [0-9]\+ //' | sed 's/250-[0-9]\+ //' | sed 's/[0-9]://' |sed 's/:/ /' \
|sed 's/:/ /' |sed 's/:/ /' |sed 's/:.*:.*//' > $FILE
echo "BEGIN:VCALENDAR" > $FILEICS
echo "PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN" >> $FILEICS
echo "VERSION:2.0" >> $FILEICS
IFS=" "
while read line || [ "$line" != "" ]
do
array=($line)
KANAL=$(cat /etc/vdr/channels.conf |sed -n ${array[0]}p |sed 's/;.*//')
DatumZahl=$(date -d "${array[1]} ${array[2]:0:2}:${array[2]:2:2} 11 min" +"%s")
svdrpsend.pl LSTE ${array[0]} at $DatumZahl > $FILEEPG
TITEL=$(grep ^215-T $FILEEPG | sed s/"215-T "//g)
EPISODE=$(grep ^215-S $FILEEPG | sed s/"215-S "//g)
DETAILS=$(grep ^215-D $FILEEPG | sed s/"215-D "//g | sed 's/|/\\n/g')
if [ "$EPISODE" = "" ]; then
OUTFILE=`echo $TITEL [$KANAL]`
else
OUTFILE=`echo $TITEL - $EPISODE [$KANAL]`
fi
# BEGINN Ermitteln der Datumsfelder
START_DATUM_ZEIT=$(date --date "${array[1]} ${array[2]:0:2}:${array[2]:2:2}" +"%Y%m%dT%H%M%S")
if (( 10#${array[2]} > 10#${array[3]} )); then
STOP_DATUM_ZEIT=$(date --date "${array[1]} ${array[3]:0:2}:${array[3]:2:2} 1 day" +"%Y%m%dT%H%M%S")
else
STOP_DATUM_ZEIT=$(date --date "${array[1]} ${array[3]:0:2}:${array[3]:2:2}" +"%Y%m%dT%H%M%S")
fi
# ENDE Ermitteln der Datumsfelder
echo "BEGIN:VEVENT" >> $FILEICS
echo "CREATED:20091216T120000" >> $FILEICS
echo "LAST-MODIFIED:20091216T120000" >> $FILEICS
echo "DTSTAMP:20091216T120000" >> $FILEICS
MYUID=$(head -c8 /dev/urandom | od -N8 -tu8 | sed -ne '1s/.* //p')
echo "UID:$MYUID" >> $FILEICS
echo "SUMMARY:$OUTFILE" >> $FILEICS
echo "DTSTART:$START_DATUM_ZEIT" >> $FILEICS
echo "DTEND:$STOP_DATUM_ZEIT" >> $FILEICS
echo "DESCRIPTION:$OUTFILE\n$DETAILS" >> $FILEICS
echo "URL:http:\/\/www.mein-server.de\/" >> $FILEICS
echo "END:VEVENT" >> $FILEICS
done < "$FILE"
echo "END:VCALENDAR" >> $FILEICS
# UPLOAD FILE TO SERVER
/root/bin/fileupload.sh $FILEICS
# TMP-Dateien löschen
# rm $FILE
# rm $FILEEPG
# rm $FILEICS
exit 0
Alles anzeigen
Kommentare sind ausdrücklich erwünscht... (Ich denke bei den vielen sed-Kommandos kann man sicherlich noch einiges verkürzen - aber für mich ist sed noch Neuland