#!/bin/bash # Author : lebarjoe~@~yahoo.fr # Contributors : jrd@animeka.com # Creation Date : 07/11/2008 # Modification Date : 20/11/2008 # Licence : LGPL 2 or later # Version : v0.2 #================================ # You can define a .free-on-desktop.rc file for customizing some variables defines hereafter. # Vous pouvez définir un fichier .free-on-dekstop.rc pour personnaliser les variables définies ci-après. [ -f ~/.free-on-desktop.rc ] && source ~/.free-on-desktop.rc ##################################################################### # Home folder FREE=${FREE:-/home/$USER/Desktop} # Where to put Free TV launchers PATH_TV=${PATH_TV:-$FREE/tv} # Where to put Free radios launchers PATH_RADIO=${PATH_RADIO:-$FREE/radio} # Where to stock icons PATH_ICONS=${PATH_ICONS:-$FREE/.free-logo} # Player to use PLAYER=${PLAYER:-'mplayer -vf pp=li'} #PLAYER_NO_VIDEO='-vo null' # Options for radios PLAYER_NO_VIDEO=${PLAYER_NO_VIDEO:-} # How to tell the player to play a specific audio track PLAYER_TRACK_AUDIO_ID=${PLAYER_TRACK_AUDIO_ID:--aid} # Launchers are indexed by name (false) or by id+name (true) INDEX_BY_NUMBER=${INDEX_BY_NUMBER:-true} #or false ##################################################################### export FREE PATH_TV PATH_RADIO PATH_ICONS PLAYER PLAYER_NO_VIDEO PLAYER_TRACK_AUDIO_ID INDEX_BY_NUMBER rm -rf $PATH_TV $PATH_RADIO $PATH_ICONS mkdir -p $PATH_TV $PATH_RADIO $PATH_ICONS # Get playlist.m3u from Free server PLS=$(mktemp -t free-playlist.XXXXXX) wget -nc -q -O - 'http://mafreebox.freebox.fr/freeboxtv/playlist.m3u'|grep -v '#EXTM3U' > $PLS # Get default icon for TV & Radio wget -nc -q -P$PATH_ICONS 'http://gentoo.sn41g2.free.fr/zenwalk/free_multiposte/radio.png' wget -nc -q -P$PATH_ICONS 'http://gentoo.sn41g2.free.fr/zenwalk/free_multiposte/tv.png' export NAME='' export ID=0 export VIDEO=1 export AID='' cat $PLS|while read LINE; do if [[ $(echo "$LINE"|grep -q '#EXTINF'&&echo 'OK') ]]; then NAME=$(echo "$LINE"|cut -d- -f2-|cut -d' ' -f2-) ID=$(echo "$LINE"|cut -d' ' -f1|cut -d, -f2) elif [[ $(echo "$LINE"|grep -q '#EXTVLCOPT'&&echo 'OK') ]]; then OPT=$(echo "$LINE"|cut -d: -f2-) if [[ "$OPT" == "no-video" ]]; then VIDEO=0 elif [[ $(echo "$OPT"|grep -q 'audio-track-id'&&echo 'OK') ]]; then AID=$(echo "$OPT"|cut -d= -f2) fi elif [[ $(echo "$LINE"|grep -q '^rtsp://'&&echo 'OK') ]]; then ( echo "===$ID/$NAME===" if [[ $VIDEO == 1 ]]; then # TV PATH_DESKTOP=$PATH_TV LOGO=$PATH_ICONS/$ID.png LOGOURL="http://www.free.fr/im/data/tv/$ID.png" wget -nc -q -O $LOGO $LOGOURL if [ $? -ne 0 ]; then NAME2=$(echo "$NAME"|sed -e 's/ /_/g' -e 's/é/e/g' -e 's/è/e/g' -e 's/ê/e/g' -e 's/ô/o/g' -e 's/î/i/g' -e 's/>//g' -e 's/_-_/_/g' -e 's/\///g'|tr '[:upper:]' '[:lower:]') LOGOURL="http://www.lyngsat-logo.com/hires/${NAME2:0:1}${NAME2:0:1}/$NAME2.png" wget -nc -q -O $LOGO $LOGOURL if [ $? -ne 0 ]; then LOGO=$PATH_ICONS/$ID.jpeg LOGOURL="http://www.lyngsat-logo.com/logo/tv/${NAME2:0:1}${NAME2:0:1}/$NAME2.jpg" wget -nc -q -O $LOGO $LOGOURL if [ $? -ne 0 ]; then rm -f $PATH_ICONS/$ID.png $PATH_ICONS/$ID.jpeg LOGO=$PATH_ICONS/tv.png fi fi fi else # Radio PATH_DESKTOP=$PATH_RADIO LOGO=$PATH_ICONS/$ID.png NAME2=$(echo "$NAME"|sed -e 's/ /_/g' -e 's/é/e/g' -e 's/è/e/g' -e 's/ê/e/g' -e 's/ô/o/g' -e 's/î/i/g' -e 's/>//g' -e 's/_-_/_/g' -e 's/\///g'|tr '[:upper:]' '[:lower:]') LOGOURL="http://www.lyngsat-logo.com/hires/${NAME2:0:1}${NAME2:0:1}/$NAME2.png" wget -nc -q -O $LOGO $LOGOURL if [ $? -ne 0 ]; then LOGO=$PATH_ICONS/$ID.jpeg LOGOURL="http://www.lyngsat-logo.com/logo/radio/${NAME2:0:1}${NAME2:0:1}/$NAME2.jpg" wget -nc -q -O $LOGO $LOGOURL if [ $? -ne 0 ]; then rm -f $PATH_ICONS/$ID.png $PATH_ICONS/$ID.jpeg LOGO=$PATH_ICONS/radio.png fi fi fi CMD="$PLAYER" if [[ $VIDEO == 0 ]]; then CMD="$CMD $PLAYER_NO_VIDEO" fi if [[ "$AID" != "" ]]; then CMD="$CMD $PLAYER_TRACK_AUDIO_ID $AID" fi CMD="$CMD '$LINE'" NAME2=$(echo "$NAME"|sed -e 's:/:_:g' -e 's:%:pourcent:g') if [ $ID -gt 10000 ]; then ID=$(($ID - 10000)) fi if [[ $INDEX_BY_NUMBER == true ]]; then NAME3="`printf '%03d' $ID` - $NAME2" else NAME3="$NAME2" fi echo "[Desktop Entry]" > $PATH_DESKTOP/$ID.desktop echo "Version=1.0" >> $PATH_DESKTOP/$ID.desktop echo "Encoding=UTF-8" >> $PATH_DESKTOP/$ID.desktop echo "Type=Application" >> $PATH_DESKTOP/$ID.desktop echo "Name=$NAME3" >> $PATH_DESKTOP/$ID.desktop echo "Comment=$NAME2" >> $PATH_DESKTOP/$ID.desktop echo "Categories=Application" >> $PATH_DESKTOP/$ID.desktop echo "Exec=$CMD" >> $PATH_DESKTOP/$ID.desktop echo "Icon=$LOGO" >> $PATH_DESKTOP/$ID.desktop echo "Terminal=false" >> $PATH_DESKTOP/$ID.desktop echo "StartupNotify=true" >> $PATH_DESKTOP/$ID.desktop ) & NAME='' ID=0 VIDEO=1 AID='' fi done rm -f $PLS