#!/bin/bash 
#  Script di Elrond, con la collaborazione di c.realkiller
#+ Ultimo aggiornamento: 27/12/2009
#+ Per suggerimenti e consigli visita http://forum.ubuntu-it.org/index.php/topic,316995.0.html

########## DEFINIZIONE VARIABILI UTILIZZATE NELLO SCRIPT ##########
#  User agent del riproduttore. Serve solo per riprodurre le dirette RAI.
#+ NON modificare se non sai quello che fai!
USER_AGENT="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.3) Gecko/20090910 Firefox/3.5.3"

#  Player utilizzato. NOTA BENE: è possibile usare solo `vlc', `mplayer' o `gmplayer'.
#+ Modificalo come preferisci fra le 3 opzioni possibili. Ricorda inoltre che `mplayer'
#+ e `gmplayer' non permettono di riprodurre correttamente i TG regionali.
PLAYER=`zenity --list --height=200 --width=150 --title="SELECT PLAYER" --text="quale player vuoi usare?" --column="PLAYER"\
                "vlc" "gmplayer" "mplayer"`

#  Nome dell'emulatore di terminale usato per visualizzare il televideo. Se non è
#+ impostato nessun valore viene usato `xterm' di defualt.
TERMINALE=xterm
########## FINE DEFINIZIONE VARIABILI ##########
########## INIZIO DEFINIZIONE DELLE FUNZIONI USATE NELLO SCRIPT ##########
while [ $? -eq 0 ]; do
# Funzione per scegliere l'operazione da eseguire all'inizio
function scelta_operazione(){
	operazione=`zenity --width=200 --height=250 --list --column "scelta" --title="select stream tv or radio" --text="Vuoi vedere la TV o ascoltare la radio?" "STREAM TV" "STREAM RADIO" "TG REGIONE" "TELEVIDEO"`
}

# Funzione per scegliere la stazione radio da riprodurre
function scelta_stazione(){
	stazione=`zenity --list --height=400 --width=300 --title="Televisione" --text="Quale canale vuoi ascoltare?" --column="Canale"\
        "Radio Uno" "Radio Due" "Radio Tre" "Isoradio" "RDS" "Radio 105" "RTL 102.5" "Radio Capital" "Radio Deejay" "Radio24" \
	"Controradio" "Radio Popolare" "Radio Onda Rossa" "Radio onda d'Urto" "Radio Città Aperta" "Radio Blackout" "Radio Sherwood" \
	"Virgin radio" "Virgin rock classico" "Virgin rock extreme" "Virgin rock alternative" "Virgin woodstock" "Virgin revolver"`
}

# Funzione per scegliere la il canale televisivo da riprodurre
function scelta_canale(){
	canale=`zenity --list --height=400 --width=300 --title="Televisione" --text="Quale canale vuoi vedere?" --column="Canale"\
	"Rai Uno" "Rai Due" "Rai Tre" "Rete 4" "Canale 5" "Italia 1" "Rai 4" "Rai News 24" "Rai Sport Più" "Rai Edu1" "Rai Storia" "RaiSat Extra" \
	"RaiSat Premium" "RaiSat Cinema" "RaiSat YoYo" "Rai gulp" "Sportitalia" "All Music" "RTL 102.5" "NRK1" "NRK2" "NRK Rogaland" \
	"Arcoiris TV" "Antena 1" "France24 English" "etvsatellite" "CBL Channel" "[3]CHANNEL ONE" "SAT 2000" "Ultimo Tg1" "Ultimo Tg2" \
	"Ultimo Tg3"`
}

# Funzione per scegliere la regione di cui riprodurre l'ultimo TG regionale di RAI 3
function seleziona_regione(){
	regione=`zenity --list --height=400 --width=300 --title="Tg Regione" --text="Seleziona la regione:" --column="Regione" "Abruzzo"\
	"Basilicata" "Calabria" "Campania" "Emilia-Romagna" "Friuli-Venezia Giulia" "Lazio" "Liguria" "Lombardia" "Marche" "Molise"\
	"Piemonte" "Puglia" "Sardegna" "Sicilia" "Toscana" "Trentino-Alto Adige" "Umbria" "Valle d'Aosta" "Veneto"`
}

#  Funzione per riprodurre le dirette (televisive e radiofoniche).
#+ Viene riprodotto l'indirizzo passato come argomento alla funzione
function riproduci_diretta(){
if [ $PLAYER = vlc ]; then
	$PLAYER -v --http-user-agent "$USER_AGENT" "$1" # comandi da usare per riprodurre il canale se si usa VLC
else
	$PLAYER -prefer-ipv4 -user-agent "$USER_AGENT" -playlist "$1"	#  comandi da usare per riprodurre il canale 
									#+ negli altri casi, cioè se si usa `mplayer'
									#+ o `gmplayer'
fi
}

# Funzione per vedere la versione testuale di televideo in un terminale
function televideo(){
	if [ -z $TERMINALE ]; then	#  se la variabile `TERMINALE' è vuota
		TERMINALE=xterm		#+ usa come emulatore di terminale `xterm' per default
	fi
	$TERMINALE -e "w3m http://www.televideo.rai.it/televideo/pub/solotesto.jsp"	#  apre `w3m' alla pagina della
}											#+ versione testuale di Televideo

# Funzione per riprodurre l'ultimo TG regionale di RAI 3 della regione passata come argomento alla funzione
function riproduci_regione(){
	indirizzo=`wget -O /dev/stdout http://www.tgr.rai.it/SITOTG/TGR_popupvideo/1,8506,tgr%5Eabruzzo,00.html -o /dev/null | grep ${1}tgr | cut -d \' -f2` # l'elenco degli indirizzi dei video si trova nella pagina scaricata da `wget'
	$PLAYER http://www.inforegioni.rai.it/ram/regioni/${1}/tgr/"$indirizzo" # riprodute l'indirizzo ottenuto
}

########## FINE DEFINIZIONE FUNZIONI ##########
########## INIZIO DELLO SCRIPT VERO E PROPRIO ##########


scelta_operazione # sceglie l'operazione da eseguire (vedere tv, ascoltare radio, vedere tg regionale, guardare televideo)
case "$operazione" in
	"STREAM TV") seleziona_canale ;;
	"STREAM RADIO") seleziona_stazione ;;
	"TG REGIONE") TG_regione ;;
	"TELEVIDEO") televideo ;;
esac
if [ "$?" = "0" ]; then 
	break
fi

if [ "$operazione" = "STREAM RADIO" ]; then	#  Se l'operazione scelta è l'ascolto della radio
	scelta_stazione				#+ usa la funzione per selezionare la stazione da riprodurre
	case $stazione in
		"Radio Uno") riproduci_diretta rtsp://live.media.rai.it/broadcast/radiouno.rm ;;
		"Radio Due") riproduci_diretta rtsp://live.media.rai.it/broadcast/radiodue.rm ;;
		"Radio Tre") riproduci_diretta rtsp://live.media.rai.it/broadcast/radiotre.rm ;;
		"Isoradio") riproduci_diretta rtsp://live.media.rai.it/broadcast/isoradio.rm ;;
		"RDS") riproduci_diretta mms://fastreal.fastweb.it/RDS ;;
		"Radio 105") riproduci_diretta mms://151.1.245.6/1 ;;
	        "RTL 102.5") riproduci_diretta mms://151.1.245.36/rtl102.5hq/  ;;
		"Radio Capital") riproduci_diretta mms://live.mediaserver.kataweb.it/capital?MSWMExt=.asf ;;
		"Radio Deejay") riproduci_diretta mms://live.mediaserver.kataweb.it/radiodeejay?MSWMext=.asf ;;
                "Radio24") riproduci_diretta mms://62.196.2.90/Radio24 ;;
		"Controradio") riproduci_diretta http://streaming.controradio.emmi.it:8190/ ;;
		"Radio Popolare") riproduci_diretta http://www.radiopopolare.it/liveU.asx ;;
		"Radio Onda Rossa") riproduci_diretta http://radio.dyne.org:8000/ondarossa.mp3 ;;
		"Radio onda d'Urto") riproduci_diretta http://www.radiondadurto.org:8000/listen.pls ;;
		"Radio Città Aperta") riproduci_diretta mms://stream.greynetweb.it/rca?MSWMExt=.asf ;;
		"Radio Blackout") riproduci_diretta http://stream.teknusi.org:8000/blackout.mp3 ;;
		"Radio Sherwood") riproduci_diretta http://62.101.68.185:8000/sherwood.ogg ;;
		"Virgin radio") riproduci_diretta mmsh://151.1.245.1/20?MSWMExt=.asf ;;
		"Virgin rock classico") riproduci_diretta mms://151.1.245.1/24 ;;
		"Virgin rock extreme") riproduci_diretta mms://151.1.245.1/25 ;;
		"Virgin rock alternative") riproduci_diretta mms://151.1.245.1/36 ;;
		"Virgin woodstock") riproduci_diretta mms://151.1.245.1/13 ;;
		"Virgin revolver") riproduci_diretta mms://151.1.245.1/34 ;;  
        esac
elif [ "$operazione" = "STREAM TV" ]; then	#  Se invece si sceglie di vedere la televisione
	scelta_canale				#+ usa la funzione per selezionare il canale da riprodurre
	case $canale in
		"Rai Uno") riproduci_diretta http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=983 ;;
		"Rai Due") riproduci_diretta http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=984 ;;
		"Rai Tre") riproduci_diretta http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=986 ;;
                "Rete 4") riproduci_diretta mms://live.mediashopping.it/enc2-c3 ;;
                "Canale 5") riproduci_diretta mms://live.mediashopping.it/enc2-c1 ;;
                "Italia 1") riproduci_diretta mms://live.mediashopping.it/enc2-c2 ;;
		"Rai 4") riproduci_diretta http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=75708 ;;
		"Rai News 24") riproduci_diretta http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=1 ;;
		"Rai Sport Più") riproduci_diretta http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=4145 ;;
		"Rai Edu1") riproduci_diretta http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=24268 ;;
		"Rai Storia") riproduci_diretta http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=24269 ;;
		"RaiSat Extra") riproduci_diretta http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=72382 ;;
		"RaiSat Premium") riproduci_diretta http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=72916 ;;
		"RaiSat Cinema") riproduci_diretta http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=72381 ;;
		"RaiSat YoYo") riproduci_diretta http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=72918 ;;
		"Rai gulp") riproduci_diretta http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=4119 ;;
		"Sportitalia") riproduci_diretta mms://mms.cdn-tiscali.com/sportitalia ;;
		"All Music") riproduci_diretta mms://live.mediaserver.kataweb.it/retea?MSWMExt=.asf ;;
		"RTL 102.5") riproduci_diretta mms://151.1.245.36/rtl102.5vs ;;
		"NRK1") riproduci_diretta mms://mms-icanal-live.online.no/nrk_tv_webvid03_l ;;
		"NRK2") riproduci_diretta mms://mms-icanal-live.online.no/nrk_tv_webvid05_h ;;
		"NRK Rogaland") riproduci_diretta mms://straumV.nrk.no/nrk_tv_rogaland_247_mbr ;;
		"Arcoiris TV") riproduci_diretta mms://193.41.7.40/vive-adsl ;;
		"Antena 1") riproduci_diretta mms://81.196.2.232/pp1 ;;
		"France24 English") riproduci_diretta mms://stream1.france24.yacast.net/f24_liveen ;;
		"etvsatellite") riproduci_diretta mms://streaming.e-tv.it/etvsatellite ;;
		"CBL Channel") riproduci_diretta mms://151.1.245.71/cblfilm-live ;;
		"[3]CHANNEL ONE") riproduci_diretta mms://84.233.254.2/3Channel ;;
		"SAT 2000") riproduci_diretta mms://89.119.94.130/Sat2000 ;;
		"Ultimo Tg1") riproduci_diretta http://link.rai.it/x/vod/ue/wmx/ultimo_tg1.asx ;;
		"Ultimo Tg2") riproduci_diretta http://link.rai.it/x/vod/ue/wmx/ultimo_tg2.asx ;;
		"Ultimo Tg3") riproduci_diretta http://link.rai.it/x/vod/ue/wmx/ultimo_tg3.asx ;;
		esac 
elif [ "$operazione" = "TG REGIONE" ]; then	#  Se invece è stato scelto il tg regionale
	seleziona_regione			#+ avvia la funzione per selezionare la regione
	case "$regione" in
		"Abruzzo") riproduci_regione abruzzo ;;
		"Basilicata") riproduci_regione basilicata ;;
		"Calabria") riproduci_regione calabria ;;
		"Campania") riproduci_regione campania ;;
		"Emilia-Romagna") riproduci_regione emiliaromagna ;;
		"Friuli-Venezia Giulia") riproduci_regione friuli ;;
		"Lazio") riproduci_regione lazio ;;
		"Liguria") riproduci_regione liguria ;;
		"Lombardia") riproduci_regione lombardia ;;
		"Marche") riproduci_regione marche ;;
		"Molise") riproduci_regione molise ;;
		"Piemonte") riproduci_regione piemonte ;;
		"Puglia") riproduci_regione puglia ;;
		"Sardegna") riproduci_regione sardegna ;;
		"Sicilia") riproduci_regione sicilia ;;
		"Toscana") riproduci_regione toscana ;;
		"Trentino-Alto Adige") riproduci_regione trentino ;;
		"Umbria") riproduci_regione umbria ;;
		"Valle d'Aosta") riproduci_regione valdaosta ;;
		"Veneto") riproduci_regione veneto ;;
	esac

fi
done
