Über Hinweise und Vorschläge würde ich mich freuen. Macht mit dem Script was ihr wollt. Nur Postet bitte eure Erweiterungen und / oder Fixes wieder hier im Thread.
Also, wir brauchen:
- * Eine Dbox2 im Lan
* Eine Linux-Box
* Basis Consolen Know How
Code: Alles auswählen
#!/bin/bash
# v 0.75
# rewitten the epg-data phraser. still "little mans work" but it works :P
# nextwatch + nextinfo now testing
# functions..
function do_cleanup () {
rm -f "/tmp/dbox2irssi-epg-*"
}
function show_help () {
echo "
Usage: $0 <dbox2-ip> <parameter>
Example: $0 192.168.0.5 nowwatch
parameters:
nowwatch - short nw output
extinfo - extended epg output
nextwatch - short next watch
nextinfo - extended next epg output
"
}
function unix2normaltime () {
python -c "import time;print time.strftime('%a, %d %b %Y %H:%M:%S',time.localtime($*))"
}
# main code starts here!
if [ "$2" == "" ]
then
echo "
linux@dbox2 shell info script (for use in irssi)"
show_help
exit 1
fi
dboxip="$1"
# channel id holen
chanid=$(lynx -dump http://$dboxip/control/getonidsid)
lynx -dump http://$dboxip/control/channellist | grep "$chanid" | cut -d " " -f 2- > /tmp/dbox2irssi-epg-channame
# channelname holen
channame=$(cat -n /tmp/dbox2irssi-epg-channame | grep " 1" | cut -b 8-)
# epg für channel auslesen
lynx -dump http://$dboxip/control/epg?$chanid > /tmp/dbox2irssi-epg-chanepg
curunixtime=$(date "+%s")
shortunixtime=$(echo "$curunixtime" | cut -b 1-5)
grep $shortunixtime /tmp/dbox2irssi-epg-chanepg > /tmp/dbox2irssi-epg-chanepg2
# chanepg=$(grep $(echo $curunixtime | cut -b "1-5") /tmp/dbox2irssi-epg-chanepg)
counter="0"
foundnr="null"
# get epg for "now"
for i in $(cat /tmp/dbox2irssi-epg-chanepg2 | cut -d " " -f 2);
do
counter=$(echo $counter + 1 | bc)
if [ "$i" -gt "$curunixtime" ] && [ "$foundnr" == "null" ]
then
foundnr=$counter
fi
done
case $2 in
nowwatch|extinfo)
foundnr=$(echo "$foundnr - 1" | bc)
esac
# get epg-eventid
counter="0"
# echo "$foundnr"
for i in $(cat /tmp/dbox2irssi-epg-chanepg2 | cut -d " " -f 1);
do
counter=$(echo $counter + 1 | bc)
if [ "$counter" == "$foundnr" ]
then
chaneventid=$i
fi
done
# starttime
counter="0"
for i in $(cat /tmp/dbox2irssi-epg-chanepg2 | cut -d " " -f 2);
do
counter=$(echo $counter + 1 | bc)
if [ "$counter" == "$foundnr" ]
then
chanunixtime="$i"
fi
done
# endtime
counter="0"
for i in $(cat /tmp/dbox2irssi-epg-chanepg2 | cut -d " " -f 2);
do
counter=$(echo $counter + 1 | bc)
if [ "$counter" == "$(echo "$foundnr + 1" | bc)" ]
then
channextunixtime="$i"
fi
done
chanstart=$(unix2normaltime $chanunixtime | cut -d " " -f5 | cut -d : -f 1-2)
chanstop=$(unix2normaltime $channextunixtime | cut -d " " -f5 | cut -d : -f 1-2)
# check parameters
case $2 in
nowwatch)
lynx -dump http://$dboxip/control/epg?eventid=$chaneventid > /tmp/dbox2irssi-epg-info
chansendung=$(cat -n /tmp/dbox2irssi-epg-info | grep " 1" | cut -b 8-)
if [ "$chansendung" != "" ]
then
echo "nw: \"$chansendung\" ($chanstart Uhr bis $chanstop Uhr auf \"$channame\")"
else
echo "nw: \"$channame\""
fi
do_cleanup
exit 0
;;
nextwatch)
lynx -dump http://$dboxip/control/epg?eventid=$chaneventid > /tmp/dbox2irssi-epg-info
chansendung=$(cat -n /tmp/dbox2irssi-epg-info | grep " 1" | cut -b 8-)
if [ "$chansendung" != "" ]
then
echo "nextwatch: \"$chansendung\" ($chanstart Uhr bis $chanstop Uhr auf \"$channame\")"
else
echo "nextwatch: \"$channame\""
fi
do_cleanup
exit 0
;;
extinfo)
wget -q -O /tmp/dbox2irssi-epg-info "http://$dboxip/control/epg?eventid=$chaneventid"
epginfo=$(cat /tmp/dbox2irssi-epg-info)
if [ "$epginfo" != "" ]
then
echo "nw: $epginfo"
echo "($chanstart Uhr bis $chanstop Uhr auf \"$channame\")"
else
echo "nw: \"$channame\""
fi
do_cleanup
exit 0
;;
nextinfo)
wget -q -O /tmp/dbox2irssi-epg-info "http://$dboxip/control/epg?eventid=$chaneventid"
epginfo=$(cat /tmp/dbox2irssi-epg-info)
if [ "$epginfo" != "" ]
then
echo "nextwatch: $epginfo"
echo "($chanstart Uhr bis $chanstop Uhr auf \"$channame\")"
else
echo "nextwatch: \"$channame\""
fi
do_cleanup
exit 0
esac
# if we make it here, somethings wrong :(
echo "
somethings wrong, parameter "$2" is not valid."
show_help
do_cleanup
Code: Alles auswählen
chmod +x dbox2nw
Code: Alles auswählen
./dbox2nw <Ip-der-dbox> <Parameter>
- nowwatch - Kurze "Now Watch" Ausgabe
extinfo - Ausführliche EPG Ausgabe
nextwatch - Kurze "Next Watch" Ausgabe
nextinfo - Ausführliches EPG der nächsten Sendung
Code: Alles auswählen
./dboxnw 192.168.0.15 nowwatch
nw: "Tagesschau" (12:45 Uhr bis 13:15 Uhr auf "Das Erste")
Code: Alles auswählen
./dboxnw 192.168.0.15 extinfo
nw: hundkatzemaus
Panther-Chamäleons ("Furcifer pardalis") sind mittelgroße Chamäleons. Die handtellergroßen Tiere stammen aus den Wäldern Madagaskars und leben dort in den Bäumen und im Strauchwerk. Ihre Farbe changiert zwischen grün, grau/braun oder violett.
(12:50 Uhr bis 13:30 Uhr auf "VOX")
Code: Alles auswählen
/exec /pfad/zum/script/dbox2nw <IP> <Parameter>
Code: Alles auswählen
/exec -o /pfad/zum/script/dbox2nw <IP> <Parameter>
Bitte achtet darauf, das in vielen Channels solche Scripte nicht grade gern gesehen sind. Gegen ein sinngerechtes einsetzen als Antwort auf die Frage "Was schaustn grad" wird wohl auch dort keiner was haben, nur macht mich nicht verantwortlich, wenn ihr bei "Abuse" gebanned werdet!