#!/bin/bash

VLCBIN="/usr/bin/vlc"
RCPORT="32455"
TMPFILE="/tmp/mtv3katsomo.expect"
WMCTRLBIN="/usr/bin/wmctrl"
EXPECTBIN="/usr/bin/expect"
GREPBIN="/bin/grep"
SLEEPBIN="/bin/sleep"
ZENITYBIN="/usr/bin/zenity"

if [ ! -f $ZENITYBIN ]; then
  echo "Asenna Zenity! (sudo apt-get install zenity etc.)"
  exit
fi

if [ ! -f $VLCBIN ] || [ ! -f $WMCTRLBIN ] || [ ! -f $EXPECTBIN ] || [ ! -f $GREPBIN ] || [ ! -f $SLEEPBIN ]; then
  $ZENITYBIN --error --text "Kaikkia riippuvuuksia ei löydy!\r\r\rRiippuvuudet: vlc, wmctrl, expect, zenity, sleep ja grep (ja bash tietenkin)\r\r\rJos käytät jotain Debian-johdannaista (esim. Ubuntuna), niin\rsaat asennettua nämä komennolla:\rsudo apt-get install vlc wmctrl expect grep zenity sleep"
  exit
fi

osote=`$ZENITYBIN --entry --text "Anna videon HTTP-osoite:" --title "MTV3 Katsomo"`

echo $osote|grep -q "http://"
if [ "$?" != "0" ]; then
  $ZENITYBIN --error --text "Virheellinen osoite\!"
  exit
fi

$ZENITYBIN --info --text "Odota, videotoistoa käynnistetään.." &
zeninpidi=$!

touch $TMPFILE
chmod +x $TMPFILE

echo "#!$EXPECTBIN
spawn telnet 127.0.0.1 $RCPORT
expect \"> \"
send \"add $osote\\r\"
expect \"> \"
set count 5;
while {\$count > 0 } {
  send \"info\r\"
  expect \"| Type: Video\" {
    sleep 1
    send \"next\r\"
    sleep 1
    expect \"> \"
    break
  } \"> \" {
    sleep 1
  }
  set count [expr \$count-1];
}
sleep 1
send \"quit\r\"" > $TMPFILE

$VLCBIN --extraintf rc --rc-host 127.0.0.1:$RCPORT &

while [ True ]; do
  $WMCTRLBIN -l|grep -q "`echo $HOSTNAME` VLC media player"
  if [ "$?" == "0" ]; then
    break
  fi
  $SLEEPBIN .5
done

$SLEEPBIN 1

$TMPFILE > /dev/null 2>&1

$SLEEPBIN 1

rm $TMPFILE

kill -9 $zeninpidi
