#!/bin/bash
#
# Simppeli streami-ripperi by Katja (fly5.kapsi.fi)
# Tehty Yle Areenan videoille (areena.yle.fi)
#
## Asennus:
# cd $HOME
# wget -O ripperi http://fly5.kapsi.fi/misc/scripts/omat/ripperi
# sudo cp -i ripperi /usr/bin/ripperi
# sudo chmod +x /usr/bin/ripperi
# rm $HOME/ripperi
#
## Kaytto:
# Joko "ripperi osoite nimi", "ripperi osoite" tai ihan
# pelkastaan "ripperi", se kysyy sen osoitetta ja nimea.
# Jos nimea ei anneta, niin se koetetaan poimia sivulta.
#
## Asetuksia:
# mihin videot tallennetaan
hakemisto="$HOME/Streamit"

##
# ala tasta eteenpain muokkaa ilman hyvaa syyta
##

pid=$$

# valiaikaistiedostot
temppi1="/tmp/rip-$pid"
temppi2="/tmp/rip2-$pid"

# ^ pid mukana et voi lataa montaa kerral

# jepjep
urli=$1
nimi=$2

# loytyyko mimms
if [ -z "`which mimms`" ]; then
	echo "Asenna ensin mimms."
	exit
fi

# tehaan hakemisto videoille ja mennaan sinne
mkdir -p $hakemisto
cd $hakemisto

# onko maaritetty ripperi urlia, jos ei niin kysyy sita
if [ -z "$urli" ]; then
read -p "Anna osoite? " urli
fi

# tarvii osoitteen tai ei teha mitaan
if [ -z "$urli" ]; then
echo "Ei voi ladata videota ilman osoitetta."
exit
fi

# ladataan se sivu meille
wget -q ${urli} -O ${temppi1}

# onko sita nimea
if [ -z "$nimi" ]; then
echo ""
echo "Paina enteria, jos haluat etta nimi haetaan sivulta."
read -p "Nimi? " nimi 
fi

if [ -n "$nimi" ]; then
nimi="`echo ${nimi} | sed 's/ //g' | sed 's/^[ \t]*//' | sed 's/!/./g;s/:/./g;s/;//g' | sed "s/'//g"`"
fi

# Yrittaa hakee sivulta nimen.. hullua parsimista, paasis varmaan vahemmalla jos osais :P
if [ -z "$nimi" ]; then
nimi="`grep -a1 '<span class=\"smaller' ${temppi1} | sed 's/^[ \t]*//' \
 | sed -n '3p' | sed 's/ //g' | sed 's/^[ \t]*//' \
 | sed 's/!/./g;s/:/./g;s/;//g' | sed \"s/'//g\" | sed -e :a -e 's/<[^>]*>//g;/</N;//ba' | sed 's/[ \t]*$//'`"
fi

if [ -z "$nimi" ]; then
echo "Jotain vikaa nimen kanssa."
exit
fi

echo "Nimi on: $nimi"

tiedosto="${nimi}.wmv"

# pengotaan vahan
osote=`grep "object type=\"video/x-ms-wmv\"" ${temppi1} | cut -d\" -f4`

# haetaan..
wget -q ${osote} -O ${temppi2}

# jokohan paastas  ite videoon..
filu=`grep wmv ${temppi2} | sed 's/<REF[^>]*HREF="//' | sed 's/"[^>][/]>//g' | grep -v areena-virhe-klippi | sed 's/http/mms/' | head -n 1`

if [ -z "$filu" ]; then
echo "Jotain vikaa penkomisen kohdalla."
exit
fi

echo -e "Ladataan: $filu\n\t=> $tiedosto\n"

# haetaan filu
mimms "$filu" $tiedosto

if [ "$?" -eq 0 ]; then
echo -e "\nLataus ok."
else
echo "MiMMS mokas jotain."
exit
fi

if [ -z "$tiedosto" ]; then
	echo "Tiedosto katos?"
exit
else
echo "Video tallennettu: $hakemisto/$tiedosto"
fi

# siistitaan jaljet
echo -e "\nSiistitaan.."
rm ${temppi1}
rm ${temppi2}

echo "..ok."

exit

##
# Muutosloki:
# 28.06.2007 - eka versio, tuntus toimivan
##
# Tehtavaa:
# - vois siistii koodii
##
