Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#151 Le 28/03/2009, à 11:36

Lancelin

Re : get-canal, le retour...

Je croyais que tu prenais les liens sur un autre site. Et oui j'avais remarqué que ça concerne principalement les guignols. Pas de bol, je ne regarde que les guignols et groland !

Ok pour l'authentification.

Quant au menu tu fais pour le mieux. Ta solution me conviendrait parfaitement. L'essentiel est qu'on puisse lire une vidéo parmi toutes celles présentes dans la playlist.

@+

#152 Le 31/03/2009, à 12:52

Ras'

Re : get-canal, le retour...

Mise à jour ce matin pour les 64 bits smile (ou avant mais je m'en suis rendu compte que ce matin ^^)

Donc maintenant ça à l'air de marcher, mais par contre si une émission est en train de se dl, je peux pas chercher un truc dans la liste déroulante sinon ça se ferme direct :\
Par contre je peux sans problème chercher une autre émission après que celle là soit dl, ou télécharger en même temps plusieurs diffusions de la même émission.
Je posterais des logs plus tard (la fleeeemmme)

EDIT :
PS : il déchire sa race de sa maman ton script !

Et il abuse pas trop du CPU (je précise vu qu'apparement c'était un problème avant)

Dernière modification par Ras' (Le 31/03/2009, à 12:55)


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#153 Le 31/03/2009, à 19:34

redisded

Re : get-canal, le retour...

Ras' a écrit :

Mise à jour ce matin pour les 64 bits smile (ou avant mais je m'en suis rendu compte que ce matin ^^)

Donc maintenant ça à l'air de marcher, mais par contre si une émission est en train de se dl, je peux pas chercher un truc dans la liste déroulante sinon ça se ferme direct :\
Par contre je peux sans problème chercher une autre émission après que celle là soit dl, ou télécharger en même temps plusieurs diffusions de la même émission.
Je posterais des logs plus tard (la fleeeemmme)

Je veux bien parce que j'ai jamais eu le pb hmm

Ras' a écrit :

EDIT :
PS : il déchire sa race de sa maman ton script !

Merci wink

Ras' a écrit :

Et il abuse pas trop du CPU (je précise vu qu'apparement c'était un problème avant)

Héhé re-merci à Ansuzpeorth qui m'a fait découvrir inotail wink

Allez puisque ca à l'air de te plaire, j'ai avancé d'une version mais Beudbeud est trop occupé pour faire le paquet en ce moment et moi trop incompétent sur le sujet. Je vous le (les) livrent tel quel en attendant (il y à deux scripts, un get-canl, et un canal dans la crontab qui doivent impérativement etre dans le meme dossier et garder leurs noms d'origine.Pour le changelog, je vous laisse regarder au tout début du script.

canal.sh

#!/bin/bash
export TEMP_DIR="/tmp/get-canal_crontab"
CONF_DIR="/home/"$USER"/.get-canal.conf"
DOWNLOAD_DIR="$(grep DOWNLOAD_DIR= $CONF_DIR/get-canal.cfg | cut -d"=" -f2)"
export PROGRESSBAR='
<window title="get-canal" window_position="1">
  <vbox>
    <text>
      <input>echo "Téléchagerment des émissions du $date"</input>
    </text>
    <progressbar>
      <input>inotail -f $TEMP_DIR/progress_bar_crontab.log</input>
    </progressbar>
    <hbox>
      <button>
        <input file icon="exit"></input>
        <label>Quitter</label>
        <action>kilall $0</action>
      </button>
    </hbox>
  </vbox>
</window>
'
export POPUP='
<window title="get-canal" window_position="1">
  <vbox>
    <text>
      <input>echo "Les émissions suivantes ont été trouvées pour le $date"</input>
    </text>
    <tree headers_visible="false">
      <label>Vidéos téléchargées</label>
      <input>cat "$TEMP_DIR/videos.ok"</input>
    </tree>
    <hbox>
      <button>
        <input file icon="exit"></input>
        <label>Quitter</label>
        <action type="exit">OK</action>
      </button>
    </hbox>
  </vbox>
</window>
'
SHOW_LIST () {
STREAM_URL="http://www.vosflux.tv/emission/$1/rss"
wget "$STREAM_URL" -O - | iconv -f ISO-8859-15 -t UTF-8 > "$TEMP_DIR/index.$1"
TITRES="$(grep "<title>" "$TEMP_DIR/index.$1" | sed -e 's/<\/*title>//g' -e 's/^[ \t]*//' | sed '1d')"
	DATES="$(grep "<link>" "$TEMP_DIR/index.$1" | cut -d"?" -f2 | sed -e 's/<link>//g' | sed -e '/_AUTO_/s/.*\(..\)\(..\)\(..\)_AUTO_.*/\3-\2-\1/g' -e '/_CAN_/s/.*\(..\)\(..\)\(..\)_CAN_.*/\3-\2-\1/g' | sed '1d')"
	VIDEOS="$(grep "<link>" "$TEMP_DIR/index.$1" | cut -d"?" -f2 | sed -e 's/<\/*link>//g' | sed '1d')"

	i="1"
	n=$(echo -e "$TITRES" | wc -l)

	while [ "$i" -le "$n" ] ; do
		echo "$(echo "$TITRES" | head -$i | tail -1) du $(echo -e "$DATES" | head -$i | tail -1)|$(echo -e "$VIDEOS" | head -$i | tail -1)" | sed -e 's/ /_/g'  >>$TEMP_DIR/videos.$1
		i=$(( $i + 1 ))
	done
}

# Fonction de téléchargement de la vidéo sélectionnée.
GET_VIDEO () {
TITRE="$(grep "$date" "$TEMP_DIR/videos.$2" | cut -d"|" -f1 | head -$nb | tail -1 | sed -e 's/ /_/g').flv"
wget -cO "$DOWNLOAD_DIR/$TITRE" "$1" 2>&1 | while read line ; do
	echo $line | sed 's/^[ \t]*//' | tr -s " " | cut -d" " -f7 | grep -v [[:alpha:]] | sed -e 's/%//g' -e 's/»/100/g'
	echo $TITRE : $(echo $line | sed 's/^[ \t]*//' | tr -s ' ' | cut -d" " -f8,9)
done >>$TEMP_DIR/progress_bar_crontab.log
echo "$TITRE" >>$TEMP_DIR/videos.ok
}
mkdir "$TEMP_DIR"
export date=$(date +%d.%m.%y --date '1 day ago')

for id in $@ ; do 
	SHOW_LIST $id
	if grep "$date" "$TEMP_DIR/videos.$id" ; then
		ps aux | grep PROGRESSBAR | grep -v grep || gtkdialog --program=PROGRESSBAR &
		GET_VIDEO "$(grep "$date" "$TEMP_DIR/videos.$id" | cut -d"|" -f2 | head -$nb | tail -1)" "$id"
	fi
done
kill -9 $(ps aux | grep -v "grep" | grep "PROGRESSBAR" | tr -s ' ' | cut -d" " -f2)
gtkdialog --program=POPUP
rm -rf "$TEMP_DIR"

get-canal.sh

#!/bin/bash
############################################################################################################################################################
# Script de téléchargements des emissions réccurentes de Canal +.				   
# Ce script utilise les flux rss du site http://www.vosflux.tv/site/ pour l'indexation des vidéos. 
#												   
# Ce script est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier selon les	   
# termes de la Licence Publique Générale GNU ( GNU GPL ) publiée par la Free Software  Foundation.
#  
# Version actuelle : 0.6.0												   
#							       				   												   
#											by Redisded 
#
#									Historique des versions :
# - Version 0.6.0
#	Les changements de configuration sont désormais effectifs immédiatement.
#	Ajout d'un menu options
#	Ajout d'une fenêtre "A propos".
#	Suppression des onglets.
#	Remaniement des boutons sous la playlist.
#	Suppression des boutons de sauvegarde à coté des barres de progressions.
#	Ajout de la possibilité de créer un événement crontab pour télécharger quotidiennement les vidéos préférées.
#	Ajout d'un pseudo menu contextuel sur la playlist permettant de lire, sauvegarder, ou supprimer de la playlist la video séléctionnée.
#
# - Version 0.5 (22/03/09)
#	Modification du code de récupération des vidéos suite à la disparition des flux sur www.vosflux.tv.
#	Optimisation du code (utilisation de fonctions pour les actions gtkdialog).
#	Création d'un paquet deb (Merci à Beudbeud pour la création du paquet).
#	Suppression du bouton stop sous la playlist, remplacé par un bouton "vider la playlist".
#	Modification de la liste des videos (le lien n'apparait plus, juste le titre).
# - Version 0.4 (20/02/09)
#	Ajout de la possibilité de créer une playlist qu'il est possible de lancer via la GUI.
#	Ajout d'un logo dans la barre de titre (Merci a Ras' pour la création de l'image.)
#	Amélioration du fonctionnement des barres de progressions grace à inotail (Merci à AnsuzPeorth pour ses conseils avisés ;) ). 
#	Reprise des téléchargements lancés puis annulés (au cours de la meme session uniquement).
#	suppression de la fréquence de rafraichissement des barres de progression.
#	Correction de divers bugs.
#		   
# - Version 0.3 (18/02/09)
#	Ajout de quelques émissions recemment apparues sur le site www.vosflux.tv.					   
#	Ajout d'une gestion de la fréquence de rafraichissement des barres de progression pour moduler la charge cpu.
#	Correction d'un bug dans la configuration.						   
#	Correction d'un bug empêchant le renommage du script.
#	Affichage de la dernière liste des videos affichées au lancement du script.					   
#	Légère modification de l'interface principale.						   
#	Correction orthographique.								   
# - Version 0.2 (17/02/09)									   
#	Modification des barres de chargements pour atténuer une surcharge cpu.			   
# - Version 0.1 (16/02/09)									   
#	Version originale. Permet le téléchargement des vidéos de chaque emission.    		   
#												   
############################################################################################################################################################

##### Fonction de déclaration des variables du script principal. #####
DECLARE_VARIABLES () {
# Déclaration du dossier contenant le script
export DIR=$(dirname $0)
# Déclaration du nom du script.
export SCRIPT=$(basename $0)
# Emplacement du dossier de configuration
export CONF_DIR="/home/"$USER"/.get-canal.conf"
# Emplacement du dossier temporaire.
export TEMP_DIR="/tmp/get-canal.tmp"
# Déclaration de la variable servant à gérer les numéros des téléchargements dans la file d'attente.
export DL_NUM="1"
# Déclaration du répertoire de téléchargement des vidéos.
export DOWNLOAD_DIR="$(grep DOWNLOAD_DIR= $CONF_DIR/get-canal.cfg | cut -d"=" -f2)"
# Déclaration du player vidéo.
export VIDEO_PLAYER="$(grep VIDEO_PLAYER= $CONF_DIR/get-canal.cfg | cut -d"=" -f2)"
# Déclaration du message information.
export INFOS="Script de téléchargements des emissions réccurentes de Canal +.				   
Ce script utilise les flux rss du site http://www.vosflux.tv/site/ pour l'indexation des vidéos. 
												   
Ce script est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier selon les	   
termes de la Licence Publique Générale GNU ( GNU GPL ) publiée par la Free Software  Foundation.
  
Version actuelle : 0.6.0												   
							       				   												   
											by Redisded 

									Historique des versions :
- Version 0.6.0
	Les changements de configuration sont désormais effectifs sans necessiter de re-démarrage.
	Ajout d'un menu options.
	Ajout d'une fenêtre \"A propos\".
	Suppression des onglets.
	Remaniement des boutons sous la playlist.
	Suppression des boutons de sauvegarde à coté des barres de progressions.
	Ajout de la possibilité de créer un événement crontab pour télécharger quotidiennement les vidéos préférées.
	Ajout d'un pseudo menu contextuel sur la playlist permettant de lire, sauvegarder, ou supprimer de la playlist la video séléctionnée.

 - Version 0.5 (22/03/09)
	Modification du code de récupération des vidéos suite à la disparition des flux sur www.vosflux.tv.
	Optimisation du code (utilisation de fonctions pour les actions gtkdialog).
	Création d'un paquet deb (Merci à Beudbeud pour la création du paquet).
	Suppression du bouton stop sous la playlist, remplacé par un bouton \"vider la playlist\".
	Modification de la liste des videos (le lien n'apparait plus, juste le titre).
 - Version 0.4 (20/02/09)
	Ajout de la possibilité de créer une playlist qu'il est possible de lancer via la GUI.
	Ajout d'un logo dans la barre de titre (Merci a Ras' pour la création de l'image.)
	Amélioration du fonctionnement des barres de progressions grace à inotail (Merci à AnsuzPeorth pour ses conseils avisés ;) ). 
	Reprise des téléchargements lancés puis annulés (au cours de la meme session uniquement).
	suppression de la fréquence de rafraichissement des barres de progression.
	Correction de divers bugs.
		   
 - Version 0.3 (18/02/09)
	Ajout de quelques émissions recemment apparues sur le site www.vosflux.tv.					   
	Ajout d'une gestion de la fréquence de rafraichissement des barres de progression pour moduler la charge cpu.
	Correction d'un bug dans la configuration.						   
	Correction d'un bug empêchant le renommage du script.
	Affichage de la dernière liste des videos affichées au lancement du script.					   
	Légère modification de l'interface principale.						   
	Correction orthographique.								   
 - Version 0.2 (17/02/09)									   
	Modification des barres de chargements pour atténuer une surcharge cpu.			   
 - Version 0.1 (16/02/09)									   
	Version originale. Permet le téléchargement des vidéos de chaque emission."    		   
# Déclaration du popup apparaissant pendant les temps de chargements.
export POPUP='
<window window_position="1" decorated="false" skip_taskbar_hint="true">
  <vbox>
    <text>
      <input>echo "$MESS"</input>
    </text>
  </vbox>
</window>
'
# Déclaration de la fenêtre About.
export ABOUT='
<window title="About get-canal" window_position="1" icon-name="get-canal" skip_taskbar_hint="true">
  <vbox>
    <tree headers_visible="false">
      <label>Infos</label>
      <height>600</height><width>800</width>
      <input>cat "$TEMP_DIR/about"</input>
    </tree>
    <hbox>
      <button>
        <input file icon="exit"></input>
        <label>Quitter</label>
        <action type="exit">OK</action>
      </button>
    </hbox>
  </vbox>
</window>
'
# Déclaration du pseudo-menu contextuel sur la playlist.
export CONTEXT_MENU='
<window window_position="2" decorated="false" skip_taskbar_hint="true">
  <tree headers_visible="false" hover_expand="true" hover_selection="true" skip_taskbar_hint="true">
    <label>menu_contextuel</label>
    <item>sauvegarder</item>
    <item>lire</item>
    <item>enlever</item>
    <item>annuler</item>
    <variable>CONTEXT_MENU_ACTION</variable>
    <action signal="button-press-event" type="exit">exit1</action>
    <action signal="leave-notify-event" type="exit">exit2</action>
  </tree>
</window>
'
# Déclaration de l'en-tête de la playlist.
export TEXT_PLAYLIST="#EXTM3U"
}
DECLARE_VARIABLES

##### Déclaration des fonctions utilisées par gtkdialog. #####
# Fonction de lancement de la fenêtre principale.
EXEC_GET_CANAL () {
gtkdialog --program=GET_CANAL > >(LOOP)
}

# Fonction qui permet d'utiliser les fonctions dans gtkdialog
LOOP () {
while read line ; do
    echo "$line" | grep SHOW_LIST && $line
    echo "$line" | grep GET_VIDEO && $line &
    echo "$line" | grep SAVE_FILE && $line
    echo "$line" | grep DELETE_FILE && $line
    echo "$line" | grep ADD_PLAYLIST && $line
	echo "$line" | grep EXEC_CONFIG && $line &
	echo "$line" | grep EXEC_CRONTAB && $line &
	echo "$line" | grep EXEC_CONTEXT_MENU && $line &
	echo "$line" | grep SAVE_ALL_FILES_FROM_PLAYLIST && $line &
	echo "$line" | grep KILL_CONTEXT_MENU && $line
	echo "$line" | grep CLEAN_AND_EXIT && $line 
done
}

# Fonction de nettoyage des processus résiduels et du dossier temporaire.
CLEAN_AND_EXIT () {
# "Kill" des processus résiduels.
for i in $(ps aux | grep "wget -cO /tmp/get-canal.tmp/" | grep -v grep | tr -s ' ' | cut -d" " -f2) ; do
	kill -9 $i
done
for i in $(ps aux | grep "inotail -f /tmp/get-canal.tmp/progress_bar" | grep -v grep | tr -s ' ' | cut -d" " -f2) ; do
	kill -9 $i
done

# Suppression du dossier temporaire.
rm -rf "$TEMP_DIR"

# Arret du script.
exit 0
}

# Fonction de gestion des numéros des vidéos dans la file d'attente des téléchargements.
NB_PROGRESSBAR () {
while true ; do
	if grep -q $DL_NUM $TEMP_DIR/progress_bar.list ; then
		DL_NUM=$(( $DL_NUM + 1 ))
	else
		break
	fi
done
}

# Fonction d'affichage de la liste des vidéos pour l'emission choisie par l'utilisateur.
SHOW_LIST () {
export MESS="Chargement de la liste des vidéos. Veuillez patientez..." ; gtkdialog --program=POPUP & pid=$!
if [ -f "$TEMP_DIR/index.$1" ] ; then
	rm -f "$TEMP_DIR/show_list.action" ; kill -9 $pid
else
	STREAM_URL="http://www.vosflux.tv/emission/$1/rss"
	wget -v "$STREAM_URL" -O - | iconv -f ISO-8859-15 -t UTF-8 >"$TEMP_DIR/index.$1"
	TITRES="$(grep "<title>" "$TEMP_DIR/index.$1" | sed -e 's/<\/*title>//g' -e 's/^[ \t]*//' | sed '1d')"
	DATES="$(grep "<link>" "$TEMP_DIR/index.$1" | cut -d"?" -f2 | sed -e 's/<link>//g' | sed -e '/_AUTO_/s/.*\(..\)\(..\)\(..\)_AUTO_.*/\3-\2-\1/g' -e '/_CAN_/s/.*\(..\)\(..\)\(..\)_CAN_.*/\3-\2-\1/g' | sed '1d')"
	VIDEOS="$(grep "<link>" "$TEMP_DIR/index.$1" | cut -d"?" -f2 | sed -e 's/<\/*link>//g' | sed '1d')"

	i="1"
	n=$(echo -e "$TITRES" | wc -l)

	while [ "$i" -le "$n" ] ; do
		echo "$(echo "$TITRES" | head -$i | tail -1) du $(echo -e "$DATES" | head -$i | tail -1)|$(echo -e "$VIDEOS" | head -$i | tail -1)" | sed -e 's/ /_/g'  >>$TEMP_DIR/videos.$1
		i=$(( $i + 1 ))
	done
	rm -f "$TEMP_DIR/show_list.action" ; kill -9 $pid
fi
}

# Fonction de téléchargement de la vidéo sélectionnée.
GET_VIDEO () {
export MESS="Lancement du téléchargement..." ; gtkdialog --program=POPUP & pid=$!
while [ -f "$TEMP_DIR/action.tmp" ] ; do
	sleep 0.5
done
touch "$TEMP_DIR/action.tmp"
NB_PROGRESSBAR
if [ "$DL_NUM" -gt "10" ] ; then
	kill -9 $pid
	notify-send -t 3000 -i stop "Impossible de lancer plus de 10 téléchargements simultanés" ; rm -f "$TEMP_DIR/action.tmp" ; exit 0
else
	ID=$(head -1 "$TEMP_DIR/show_list" | sed -e 's/.*(\(.*\))/\1/g')
	TITRE="$1.flv"
	for i in $(seq 1 $DL_NUM) ; do
		if grep "$TITRE" "$TEMP_DIR/progress_bar$i.log" ; then
			notify-send -t 3000 -i stop "La vidéo $TITRE est déjà dans la liste des téléchargement !"
			kill -9 $pid ; rm -f "$TEMP_DIR/action.tmp" ; exit 0
		fi
	done
	
	if  [ -f "$DOWNLOAD_DIR/$TITRE" ] || [ -f "$TEMP_DIR/videos/$TITRE" ] ; then
		touch "$TEMP_DIR/progress_bar$DL_NUM.log"
		echo -e "100\n$TITRE : Terminé" >$TEMP_DIR/progress_bar$DL_NUM.log
		echo "$DL_NUM" >>$TEMP_DIR/progress_bar.list ; kill -9 $pid ; rm -f "$TEMP_DIR/action.tmp" ;  exit 0
	fi	
	
	echo "$DL_NUM" >>$TEMP_DIR/progress_bar.list
	touch "$TEMP_DIR/progress_bar$DL_NUM.log"
	kill -9 $pid ; rm -f "$TEMP_DIR/action.tmp"
	wget -cO "$TEMP_DIR/$TITRE" "$(grep "$1" "$TEMP_DIR/videos.$ID" | cut -d"|" -f2)" 2>&1 | while read line ; do
		echo $line | sed 's/^[ \t]*//' | tr -s " " | cut -d" " -f7 | grep -v [[:alpha:]] | sed -e 's/%//g' -e 's/»/100/g'
		echo $TITRE : $(echo $line | sed 's/^[ \t]*//' | tr -s ' ' | cut -d" " -f8,9)
	done >>$TEMP_DIR/progress_bar$DL_NUM.log
	while [ -f "$TEMP_DIR/action.tmp" ] ; do
		sleep 0.5
	done
	touch "$TEMP_DIR/action.tmp"
	if [ ! -f "$TEMP_DIR/dl_$DL_NUM" ] ; then
		mv "$TEMP_DIR/$TITRE" "$TEMP_DIR/videos/$TITRE"
		notify-send -t 3000 -i info "Téléchargement terminé : $TITRE"
		touch "$TEMP_DIR/progress_bar$DL_NUM.log"
		echo -e "100\n$TITRE : Terminé" >$TEMP_DIR/progress_bar$DL_NUM.log
	else
		rm -f "$TEMP_DIR/dl_$DL_NUM"
	fi
	rm -f "$TEMP_DIR/action.tmp"
fi
}

# Fonction de sauvegarde de la vidéo sélectionnée.
SAVE_FILE () {
while [ -f "$TEMP_DIR/action.tmp" ] ; do
	sleep 0.5
done
touch "$TEMP_DIR/action.tmp"
titre=$(grep ".*\.flv" "$TEMP_DIR/progress_bar$1.log" | cut -d" " -f1 | uniq)
if [ "$titre" = "" ] ; then
	export MESS="Aucune vidéo à sauvegarder !" ; gtkdialog --program=POPUP & sleep 1.5 ; rm -f "$TEMP_DIR/action.tmp" ; kill -9 $!
elif ps aux | grep "wget -cO /tmp/get-canal.tmp/$titre" | grep -v "grep" ; then
	export MESS="Veuillez attendre la fin du téléchargement !" ; gtkdialog --program=POPUP & sleep 1.5 ; rm -f "$TEMP_DIR/action.tmp" ; kill -9 $!
elif [ -f "$DOWNLOAD_DIR"/"$titre" ] ; then
	notify-send -t 3000 -i stop "L'émission $titre à déja été sauvegardée !"
else
	if grep "$titre" "$TEMP_DIR/playlist.info" ; then
		download_dir=$(echo "$DOWNLOAD_DIR" | sed -e 's/\//\\\//g')
		temp_dir=$(echo "$TEMP_DIR" | sed -e 's/\//\\\//g')
		sed -i "/$titre/s/$temp_dir\/videos/$download_dir/g" $TEMP_DIR/playlist.m3u
	fi
	mv "$TEMP_DIR/videos/$titre" "$DOWNLOAD_DIR/$titre" && notify-send -t 3000 -i "filesave" "Emission sauvegardée : $titre" || notify-send -t 3000 -i stop "Impossible de sauvegarder la vidéo : $titre"
rm -f "$TEMP_DIR/action.tmp"
fi
}

# Fonction de sauvegarde de toutes les vidéos présentes dans la playlist.
SAVE_ALL_FILES_FROM_PLAYLIST () {
while [ -f "$TEMP_DIR/action.tmp" ] ; do
	sleep 0.5
done
touch "$TEMP_DIR/action.tmp"
for i in $(cat "$TEMP_DIR/playlist.info") ; do
	if [ -f "$DOWNLOAD_DIR/$i" ] ; then
		notify-send -t 3000 -i stop "l'émission $i à déja été sauvegardée."
	else
		mv "$TEMP_DIR/videos/$i" "$DOWNLOAD_DIR/$i" && notify-send -t 3000 -i "filesave" "Emission sauvegardée : $i" || notify-send -t 3000 -i stop "Impossible de sauvegarder la vidéo : $i"
	fi
done
rm -f "$TEMP_DIR/action.tmp"
}

# Fonction servant à enlever la vidéo sélectionnée de la liste des téléchargements.
DELETE_FILE () {
while [ -f "$TEMP_DIR/action.tmp" ] ; do
	sleep 0.5
done
echo delete_file >$TEMP_DIR/action.tmp
titre=$(grep ".*\.flv" "$TEMP_DIR/progress_bar$1.log" | cut -d" " -f1 | uniq)
if [ "$titre" = "" ] ; then
	export MESS="Aucune vidéo à supprimer !" ; gtkdialog --program=POPUP & pid=$! ;  sleep 1.5 ; kill -9 $pid
elif ps aux | grep "wget -cO /tmp/get-canal.tmp/$titre" | grep -v "grep" ; then
	touch "$TEMP_DIR/dl_$1"
	kill -9 $(ps aux | grep "wget -cO /tmp/get-canal.tmp/$titre" | grep -v "grep" | tr -s ' ' |cut -d " " -f2) || notify-send "error $titre"
	progress_bar_list=$(grep -v "$1" "$TEMP_DIR/progress_bar.list")
	echo -e "$progress_bar_list" >$TEMP_DIR/progress_bar.list
	touch "$TEMP_DIR/progress_bar$DL_NUM.log"
	echo -e "0\n " >$TEMP_DIR/progress_bar$1.log
	notify-send -t 3000 -i stop "Téléchargement annulé : $titre"
else
	progress_bar_list=$(grep -v "$1" "$TEMP_DIR/progress_bar.list")
	echo -e "$progress_bar_list" >$TEMP_DIR/progress_bar.list
	touch "$TEMP_DIR/progress_bar$DL_NUM.log"
	echo -e "0\n " >$TEMP_DIR/progress_bar$1.log
fi
rm -f "$TEMP_DIR/action.tmp"
}

# Fonction de modification de la playlist
ADD_PLAYLIST () {
titre=$(grep ".*\.flv" "$TEMP_DIR/progress_bar$1.log" | cut -d" " -f1 | uniq)
if [ "$titre" = "" ] ; then
	export MESS="Aucune vidéo à ajouter !" ; gtkdialog --program=POPUP & sleep 1.5 ; kill -9 $!
elif ps aux | grep "wget -cO /tmp/get-canal.tmp/$titre" | grep -v "grep" ; then
	export MESS="Veuillez attendre la fin du téléchargement !" ; gtkdialog --program=POPUP & sleep 1.5 ; kill -9 $!
elif cat $TEMP_DIR/playlist.m3u | grep "$titre" ; then
	notify-send -t 3000 -i stop "L'émission $titre est déja présente dans votre playlist !"
else
	if [ -f "$DOWNLOAD_DIR/$titre" ] || [ -f "$TEMP_DIR/videos/$titre" ] ; then
		echo "$titre" >>/$TEMP_DIR/playlist.info
	else
		notify-send "La video $titre est introuvable ! Veuillez la re-télécharger."
	fi
	echo "$TEXT_PLAYLIST" >$TEMP_DIR/playlist.m3u
	cat "/$TEMP_DIR/playlist.info" | while read line ; do
		if [ -f "$DOWNLOAD_DIR/$line" ] ; then
			echo "$DOWNLOAD_DIR/$line" >>$TEMP_DIR/playlist.m3u
		elif [ -f "$TEMP_DIR/videos/$line" ] ; then
			echo "$TEMP_DIR/videos/$line" >>$TEMP_DIR/playlist.m3u
		fi
	done
fi
rm -f "$TEMP_DIR/playlist.action"
}

# Fonction de création des combobox heures et minutes pour la création de crontab
COMBOBOX_CRONTAB () {
if [ "$1" = "h" ] ; then
	for i in $(seq 0 23) ; do
		echo "$i h" | awk '{print "<item>"$0"</item>"}'
	done
elif [ "$1" = "m" ] ; then
	for i in $(seq 0 59) ; do
		echo "$i m" | awk '{print "<item>"$0"</item>"}'
	done
else
	echo "<item>erreur de fonction combobox</item>"
fi
}

# Fonction de mise à jour de la crontab
CRONTAB_UPDATE () {
if ! crontab -l | grep "USER=\"$USER\"" ; then
	echo "USER=$USER" >$TEMP_DIR/crontemp
	crontab -l >>$TEMP_DIR/crontemp
	cat "$TEMP_DIR/crontemp" | crontab -
	crontab -l >$TEMP_DIR/crontemp2
	diff $TEMP_DIR/crontemp $TEMP_DIR/crontemp2
	if [ $? = 0 ] ; then
		cat "$TEMP_DIR/crontemp" | crontab -
	fi
fi
if ! crontab -l | grep "DISPLAY=\":0.0\"" ; then
	echo "DISPLAY=\":0.0\"" >$TEMP_DIR/crontemp
	crontab -l >>$TEMP_DIR/crontemp
	cat "$TEMP_DIR/crontemp" | crontab -
	crontab -l >$TEMP_DIR/crontemp2
	diff $TEMP_DIR/crontemp $TEMP_DIR/crontemp2
	if [ $? = 0 ] ; then
		cat "$TEMP_DIR/crontemp" | crontab -
	fi
fi
if crontab -l | grep "#get-canal_crontab#" ; then
	crontab -l | grep -v "#get-canal_crontab#" >$TEMP_DIR/crontemp
	cat "$TEMP_DIR/crontemp" | crontab -
	crontab -l >$TEMP_DIR/crontemp2
	diff $TEMP_DIR/crontemp $TEMP_DIR/crontemp2
	if [ $? = 0 ] ; then
		cat "$TEMP_DIR/crontemp" | crontab -
	fi
fi
crontab -l >$TEMP_DIR/crontemp
emissions=$(cat $TEMP_DIR/emissions_crontab | while read line ; do echo -n "$line " | sed -e 's/.*(\(.*\))/\1/g' ; done)
MINUTE=$(echo "$MINUTES" | cut -d" " -f1)
HEURE=$(echo "$HEURES" | cut -d" " -f1) 
echo "$MINUTE $HEURE * * * $PWD/canal.sh $emissions #get-canal_crontab#" >>$TEMP_DIR/crontemp	
cat "$TEMP_DIR/crontemp" | crontab -
crontab -l >$TEMP_DIR/crontemp2
diff $TEMP_DIR/crontemp $TEMP_DIR/crontemp2
if [ $? = 0 ] ; then
	cat "$TEMP_DIR/crontemp" | crontab -
fi
}

# Fonction de lancement de la configuration et de rechargement des variables.
EXEC_CONFIG () {
VARIABLES=`gtkdialog --program=MAIN_CONFIG`
eval $VARIABLES
if [ "$EXIT" = "OK" ] ; then
	config=$(grep -v "DOWNLOAD_DIR=" "$CONF_DIR/get-canal.cfg")
	echo -e "$config\nDOWNLOAD_DIR=$FILE_DIRECTORY" >$CONF_DIR/get-canal.cfg
	config=$(grep -v "VIDEO_PLAYER=" "$CONF_DIR/get-canal.cfg")
	echo -e "$config\nVIDEO_PLAYER=$VIDEO_PLAYER" >$CONF_DIR/get-canal.cfg
	DECLARE_VARIABLES
	kill -9 $(ps aux | grep -v grep | grep "gtkdialog --program=GET_CANAL" | tr -s ' ' | cut -d" " -f2)
	EXEC_GET_CANAL
fi
}

# Fonction de lancement de la configuration et de rechargement des variables.
EXEC_CRONTAB () {
VARIABLES=`gtkdialog --program=MAIN_CRONTAB`
eval $VARIABLES
if [ "$EXIT" = "OK" ] ; then
	if ! grep . "$TEMP_DIR/emissions_crontab" ; then
		notify-send -t 3000 -i stop "Aucune emission choisie, opération annulée."
	else
		CRONTAB_UPDATE
	fi
fi
}

# Fonction d'execution du pseudo menu contextuel.
EXEC_CONTEXT_MENU () {
if [ "$1" != "" ] ; then
	VARIABLES=`gtkdialog --program=CONTEXT_MENU`
	eval $VARIABLES
	PLAYLIST="$1"
	if [ "$EXIT" = "exit1" ] ; then
		case $CONTEXT_MENU_ACTION in 
			sauvegarder)
				if [ -f "$DOWNLOAD_DIR/$PLAYLIST" ] ; then
					notify-send -t 3000 -i stop "l'émission $PLAYLIST à déja été sauvegardée."
				else
					mv "$TEMP_DIR/videos/$PLAYLIST" "$DOWNLOAD_DIR/$PLAYLIST" && notify-send -t 3000 -i "filesave" "Emission sauvegardée : $PLAYLIST" || notify-send -t 3000 -i stop "Impossible de sauvegarder la vidéo : $PLAYLIST"
				fi
				;;
			lire)
				if [ -f "$TEMP_DIR/videos/$PLAYLIST" ] ; then
					$VIDEO_PLAYER $TEMP_DIR/videos/$PLAYLIST &	
				else
					$VIDEO_PLAYER $DOWNLOAD_DIR/$PLAYLIST &
				fi
				;;
			enlever)
				  sed -i "/$PLAYLIST */d" "$TEMP_DIR/playlist.info" ; sed -i "/$PLAYLIST */d" "$TEMP_DIR/playlist.m3u"
				;;
		esac
	fi
fi
rm -f $TEMP_DIR/context_menu.action
}

##### Déclaration des fenêtres gtkdialog. #####
# Déclaration de la fenêtre configuration.
export MAIN_CONFIG='
<window headers_visible="false" title="Configuration de '$SCRIPT'" window_position="1" icon-name="get-canal">
  <vbox>
    <frame Répertoire de téléchargement des fichiers>
      <hbox>
        <entry accept="directory" activates_default="true">
          <label>Choisissez un répertoire</label>
          <default>'$PWD'</default>          
          <variable>FILE_DIRECTORY</variable>
        </entry>
        <button>
          <input file stock="gtk-open"></input>
          <action type="fileselect">FILE_DIRECTORY</action>
        </button>
      </hbox>
    </frame>
    <frame Lecteur vidéo préféré>
      <combobox case-sensitive="false" value-in-list="true">
        <variable>VIDEO_PLAYER</variable>
        <item>kaffeine</item>
        <item>mplayer -playlist</item>
        <item>totem</item>
        <item>vlc</item>
        <item>xine</item>
      </combobox>
    </frame>
    <hbox>
      <button ok></button>
      <button cancel></button>
    </hbox>
  </vbox>
</window>
'

# Déclaration de la fenetre de gestion de la crontab.
export MAIN_CRONTAB='
<window title="Création d'\''un évenement cron" window_position="1" icon-name="get-canal">
  <vbox>
    <hbox>
      <frame Liste des émissions>
        <tree headers_visible="false">
          <label>Double-cliquez sur les vidéos que vous souhaitez télécharger</label>
          <item>+ Clair (226)</item>
          <item>Action discrète (594)</item>
          <item>Canal presque (593)</item>
          <item>Chris Esquerre (230)</item>
          <item>Dimanche+ (228)</item>
          <item>Groland magzine (45)</item>
          <item>L'\''édition spéciale (229)</item>
          <item>L'\''effet papillon (13)</item>
          <item>La boite à question (44)</item>
          <item>La matinale (227)</item>
          <item>La semaine de Guillon (595)</item>
          <item>Le buzz du jour (47)</item>
          <item>Le grand journal (14)</item>
          <item>Le meilleur du hier (48)</item>
          <item>Le petit journal actu (43)</item>
          <item>Le petit journal people (42)</item>
          <item>Le zapping (46)</item>
          <item>Les bonus de Guillaume (592)</item>
          <item>Les guignols (36)</item>
          <item>Pépites sur le net (41)</item>
          <item>Salut les terriens! (12)</item>
          <item>SAV des emissions (40)</item>
          <item>Têtes à claques (231)</item>
          <variable>EMISSION</variable>
          <action>if ! grep "$EMISSION" "$TEMP_DIR/emissions_crontab" ; then echo "$EMISSION" >>"$TEMP_DIR/emissions_crontab" ; fi</action>
          <action type="refresh">LISTE</action>
        </tree>
      </frame>
      <frame Emissions à télécharger>
        <tree headers_visible="false">
          <height>400</height><width>200</width>
          <label>Double-cliquez sur une émission pour la supprimer</label>
          <input>cat "$TEMP_DIR/emissions_crontab"</input>
          <variable>LISTE</variable>
          <action>sed -i "/$LISTE */d" "$TEMP_DIR/emissions_crontab"</action>
          <action type="refresh">LISTE</action>
        </tree>
      </frame>
    </hbox>
    <hbox>
    <text>
      <label>Choisissez l'\''heure d'\''execution du script :</label>
    </text>
      <combobox>
        '"$(COMBOBOX_CRONTAB h)"'
        <variable>HEURES</variable>
      </combobox>
      <combobox>
        '"$(COMBOBOX_CRONTAB m)"'
        <variable>MINUTES</variable>
      </combobox>
    </hbox>
    <frame Crontab actuelle>
      <hbox>
        <entry editable="false">
          <input>if crontab -l | grep "#get-canal_crontab#" ; then echo $(crontab -l | grep "#get-canal_crontab#") ; else echo "Pas d'\''évenement planifié pour get-canal." ; fi</input>
          <variable>CRONTAB</variable>
        </entry>
        <button>
          <input file icon="delete"></input>
          <label>Supprimer</label>
          <action>crontab -l | grep -v "#get-canal_crontab#" >$TEMP_DIR/crontemp ; cat "$TEMP_DIR/crontemp" | crontab - ; crontab -l >$TEMP_DIR/crontemp2 ; diff $TEMP_DIR/crontemp $TEMP_DIR/crontemp2 ; if [ $? = 0 ] ; then cat "$TEMP_DIR/crontemp" | crontab - ; fi</action>
          <action type="refresh">CRONTAB</action>
        </button>
      </hbox>
    </frame>
    <hbox>
      <button ok></button>
      <button cancel></button>
    </hbox>
  </vbox>
</window>
'
# Déclaration de la fenêtre principale.
export GET_CANAL='
<window title="'$SCRIPT'" window_position="1" icon-name="get-canal">
  <vbox>
    <menubar>
      <menu>
          <menuitem stock="gtk-preferences">
            <action>echo EXEC_CONFIG &</action>
          </menuitem>
          <menuitem>
            <label>Crontab</label>
            <action>echo EXEC_CRONTAB &</action>
          </menuitem>
          <menuitem stock="gtk-about">
            <action>echo "$INFOS" >$TEMP_DIR/about ; gtkdialog --program=ABOUT &</action>
          </menuitem>
        <label>Options</label>
        </menu>
      </menubar>
      <hbox>
        <vbox>
          <text wrap="true" width-chars="32" use_markup="true">
            <label>Choisissez une émission puis cliquez sur la loupe.</label>
          </text>
          <combobox case-sensitive="false" value-in-list="true">
            <item>+ Clair (226)</item>
            <item>Action discrète (594)</item>
            <item>Canal presque (593)</item>
            <item>Chris Esquerre (230)</item>
            <item>Dimanche+ (228)</item>
            <item>Groland magzine (45)</item>
            <item>L'\''édition spéciale (229)</item>
            <item>L'\''effet papillon (13)</item>
            <item>La boite à question (44)</item>
            <item>La matinale (227)</item>
            <item>La semaine de Guillon (595)</item>
            <item>Le buzz du jour (47)</item>
            <item>Le grand journal (14)</item>
            <item>Le meilleur du hier (48)</item>
            <item>Le petit journal actu (43)</item>
            <item>Le petit journal people (42)</item>
            <item>Le zapping (46)</item>
            <item>Les bonus de Guillaume (592)</item>
            <item>Les guignols (36)</item>
            <item>Pépites sur le net (41)</item>
            <item>Salut les terriens! (12)</item>
            <item>SAV des emissions (40)</item>
            <item>Têtes à claques (231)</item>
            <variable>EMISSION</variable>
          </combobox>
          <button>
            <input file icon="gtk-find"></input>
            <action>echo "$EMISSION" >$TEMP_DIR/show_list ; sed -i "/EMISSION/s/=.*/=$EMISSION/g" $CONF_DIR/get-canal.cfg ; echo SHOW_LIST $(echo "$EMISSION" | sed -e '\''s/.*(\(.*\))/\1/g'\'') ; touch "$TEMP_DIR/show_list.action" ; while [ -f "$TEMP_DIR/show_list.action" ] ; do sleep 0.5 ; done</action>
            <action type="refresh">VIDEO</action>
          </button>
          <text wrap="true" width-chars="32" use_markup="true">
            <label>"  Double-cliquez sur une vidéo pour la télécharger."</label>
          </text>
          <tree headers_visible="false">
            <label>Titre</label>
            <input>cat $TEMP_DIR/videos.$(head -1 "$TEMP_DIR/show_list" | sed -e '\''s/.*(\(.*\))/\1/g'\'') | cut -d "|" -f1</input>
            <variable>VIDEO</variable>
            <action>echo GET_VIDEO $VIDEO</action>
          </tree>
        </vbox>
        <frame Téléchargements>
          <hbox>
            <progressbar width_request="350">
              <input>inotail -f $TEMP_DIR/progress_bar1.log</input>
            </progressbar>
            <button>
              <input file icon="redo"></input>
              <action>touch "$TEMP_DIR/playlist.action" ; echo ADD_PLAYLIST "1" ; while [ -f "$TEMP_DIR/playlist.action" ] ; do sleep 0.5 ; done</action>
              <action type="refresh">PLAYLIST</action>
            </button>
            <button>
              <input file icon="stop"></input>
              <action>echo DELETE_FILE "1" &</action>
            </button>
          </hbox>
          <hbox>
            <progressbar width_request="350">
              <input>inotail -f $TEMP_DIR/progress_bar2.log</input>
            </progressbar>
            <button>
              <input file icon="redo"></input>
              <action>touch "$TEMP_DIR/playlist.action" ; echo ADD_PLAYLIST "2" ; while [ -f "$TEMP_DIR/playlist.action" ] ; do sleep 0.5 ; done</action>
              <action type="refresh">PLAYLIST</action>
            </button>
            <button>
              <input file icon="stop"></input>
              <action>echo DELETE_FILE "2" &</action>
            </button>
          </hbox>
          <hbox>
            <progressbar width_request="350">
              <input>inotail -f $TEMP_DIR/progress_bar3.log</input>
            </progressbar>
            <button>
              <input file icon="redo"></input>
              <action>touch "$TEMP_DIR/playlist.action" ; echo ADD_PLAYLIST "3" ; while [ -f "$TEMP_DIR/playlist.action" ] ; do sleep 0.5 ; done</action>
              <action type="refresh">PLAYLIST</action>
            </button>
            <button>
              <input file icon="stop"></input>
              <action>echo DELETE_FILE "3" &</action>
          </button>
          </hbox>
          <hbox>
            <progressbar width_request="350">
              <input>inotail -f $TEMP_DIR/progress_bar4.log</input>
            </progressbar>
            <button>
              <input file icon="redo"></input>
              <action>touch "$TEMP_DIR/playlist.action" ; echo ADD_PLAYLIST "4" ; while [ -f "$TEMP_DIR/playlist.action" ] ; do sleep 0.5 ; done</action>
              <action type="refresh">PLAYLIST</action>
            </button>
           <button>
              <input file icon="stop"></input>
              <action>echo DELETE_FILE "4" &</action>
            </button>
          </hbox>
          <hbox>
            <progressbar width_request="350">
              <input>inotail -f $TEMP_DIR/progress_bar5.log</input>
            </progressbar>
           <button>
              <input file icon="redo"></input>
              <action>touch "$TEMP_DIR/playlist.action" ; echo ADD_PLAYLIST "5" ; while [ -f "$TEMP_DIR/playlist.action" ] ; do sleep 0.5 ; done</action>
              <action type="refresh">PLAYLIST</action>
            </button>
            <button>
              <input file icon="stop"></input>
              <action>echo DELETE_FILE "5" &</action>
            </button>
          </hbox>
          <hbox>
            <progressbar width_request="350">
              <input>inotail -f $TEMP_DIR/progress_bar6.log</input>
            </progressbar>
            <button>
              <input file icon="redo"></input>
              <action>touch "$TEMP_DIR/playlist.action" ; echo ADD_PLAYLIST "6" ; while [ -f "$TEMP_DIR/playlist.action" ] ; do sleep 0.5 ; done</action>
              <action type="refresh">PLAYLIST</action>
            </button>
            <button>
              <input file icon="stop"></input>
              <action>echo DELETE_FILE "6" &</action>
            </button>
          </hbox>
          <hbox>
            <progressbar width_request="350">
              <input>inotail -f $TEMP_DIR/progress_bar7.log</input>
            </progressbar>
            <button>
              <input file icon="redo"></input>
              <action>touch "$TEMP_DIR/playlist.action" ; echo ADD_PLAYLIST "7" ; while [ -f "$TEMP_DIR/playlist.action" ] ; do sleep 0.5 ; done</action>
              <action type="refresh">PLAYLIST</action>
            </button>
            <button>
              <input file icon="stop"></input>
              <action>echo DELETE_FILE "7" &</action>
            </button>
          </hbox>
          <hbox>
            <progressbar width_request="350">
              <input>inotail -f $TEMP_DIR/progress_bar8.log</input>
            </progressbar>
            <button>
              <input file icon="redo"></input>
              <action>touch "$TEMP_DIR/playlist.action" ; echo ADD_PLAYLIST "8" ; while [ -f "$TEMP_DIR/playlist.action" ] ; do sleep 0.5 ; done</action>
              <action type="refresh">PLAYLIST</action>
            </button>
            <button>
              <input file icon="stop"></input>
              <action>echo DELETE_FILE "8" &</action>
          </button>
          </hbox>
          <hbox>
            <progressbar width_request="350">
              <input>inotail -f $TEMP_DIR/progress_bar9.log</input>
            </progressbar>
            <button>
              <input file icon="redo"></input>
              <action>touch "$TEMP_DIR/playlist.action" ; echo ADD_PLAYLIST "9" ; while [ -f "$TEMP_DIR/playlist.action" ] ; do sleep 0.5 ; done</action>
              <action type="refresh">PLAYLIST</action>
            </button>
            <button>
              <input file icon="stop"></input>
              <action>echo DELETE_FILE "9" &</action>
            </button>
          </hbox>
          <hbox>
            <progressbar width_request="350">
              <input>inotail -f $TEMP_DIR/progress_bar10.log</input>
            </progressbar>
            <button>
              <input file icon="redo"></input>
              <action>touch "$TEMP_DIR/playlist.action" ; echo ADD_PLAYLIST "10" ; while [ -f "$TEMP_DIR/playlist.action" ] ; do sleep 0.5 ; done</action>
              <action type="refresh">PLAYLIST</action>
            </button>
            <button>
              <input file icon="stop"></input>
              <action>echo DELETE_FILE "10" &</action>
            </button>
          </hbox>
        </frame>
        <frame Playlist>
          <tree headers_visible="false" hover_expand="true" hover_selection="true">
            <width>200</width><height>250</height>
            <label>Titre</label>
            <input>cat $TEMP_DIR/playlist.info</input>
            <variable>PLAYLIST</variable>
            <action signal="button-press-event">echo EXEC_CONTEXT_MENU $PLAYLIST</action>
            <action signal="enter-notify-event" type="refresh">PLAYLIST</action>
          </tree>
          <hbox>
            <button>
              <label>Tout lire</label>
              <action>'$VIDEO_PLAYER' "$TEMP_DIR/playlist.m3u"</action>
            </button>
            <button>
              <label>Tout sauvegarder</label>
              <action>echo SAVE_ALL_FILES_FROM_PLAYLIST</action>
            </button>
             <button>
              <label>Tout enlever</label>
              <action>rm -f "$TEMP_DIR/playlist.info" ; touch "$TEMP_DIR/playlist.info" ; echo "$TEXT_PLAYLIST" >$TEMP_DIR/playlist.m3u</action>
              <action type="refresh">PLAYLIST</action>
           </button>
          </hbox>
        </frame>
      </hbox>
    <hbox>
      <button>
        <input file icon="exit"></input>
        <label>Quitter</label>
		<action>echo CLEAN_AND_EXIT</action>
        <action type="exit">OK</action>
      </button>
    </hbox>   
  </vbox>
  <action signal="delete-event">echo CLEAN_AND_EXIT</action>
</window>
'
##### Execution du script. #####
# Vérification de l'existance d'un dossier de configuration et lancement éventuel de la fenêtre de configuration.
if [ ! -d "$CONF_DIR" ] ; then
	mkdir "$CONF_DIR"
	VARIABLES=`gtkdialog --program=MAIN_CONFIG`
	eval $VARIABLES
	if [ "$EXIT" != "OK" ] ; then
		exit 1
	fi
	if grep "DOWNLOAD_DIR=" "$CONF_DIR/get-canal.cfg" ; then
		config=$(grep -v "DOWNLOAD_DIR=" "$CONF_DIR/get-canal.cfg")
		echo -e "$config\nDOWNLOAD_DIR=$FILE_DIRECTORY" >$CONF_DIR/get-canal.cfg
	else
		echo "DOWNLOAD_DIR=$FILE_DIRECTORY" >>$CONF_DIR/get-canal.cfg
	fi
	export DOWNLOAD_DIR="$FILE_DIRECTORY"
	if grep "VIDEO_PLAYER=" "$CONF_DIR/get-canal.cfg" ; then
		config=$(grep -v "VIDEO_PLAYER=" "$CONF_DIR/get-canal.cfg")
		echo -e "$config\nVIDEO_PLAYER=$VIDEO_PLAYER" >$CONF_DIR/get-canal.cfg
	else
		echo "VIDEO_PLAYER=$VIDEO_PLAYER" >>$CONF_DIR/get-canal.cfg
	fi
else
	export DOWNLOAD_DIR=$(grep "DOWNLOAD_DIR=" "$CONF_DIR/get-canal.cfg" | cut -d"=" -f2)
	export VIDEO_PLAYER=$(grep "VIDEO_PLAYER=" "$CONF_DIR/get-canal.cfg" | cut -d"=" -f2)
	if [ "$DOWNLOAD_DIR" = "" ] || [ "$VIDEO_PLAYER" = "" ] ; then
		touch "$CONF_DIR/get-canal.cfg"
		VARIABLES=`gtkdialog --program=MAIN_CONFIG`
		eval $VARIABLES
		if [ "$EXIT" != "OK" ] ; then
			exit 1
		fi
		if grep "DOWNLOAD_DIR=" "$CONF_DIR/get-canal.cfg" ; then
			config=$(grep -v "DOWNLOAD_DIR=" "$CONF_DIR/get-canal.cfg")
			echo -e "$config\nDOWNLOAD_DIR=$FILE_DIRECTORY" >$CONF_DIR/get-canal.cfg
		else
			echo "DOWNLOAD_DIR=$FILE_DIRECTORY" >>$CONF_DIR/get-canal.cfg
		fi
		export DOWNLOAD_DIR="$FILE_DIRECTORY"
		if grep "VIDEO_PLAYER=" "$CONF_DIR/get-canal.cfg" ; then
			config=$(grep -v "VIDEO_PLAYER=" "$CONF_DIR/get-canal.cfg")
			echo -e "$config\nVIDEO_PLAYER=$VIDEO_PLAYER" >$CONF_DIR/get-canal.cfg
		else
			echo "VIDEO_PLAYER=$VIDEO_PLAYER" >>$CONF_DIR/get-canal.cfg
		fi
	fi
fi
if ! grep "EMISSION=.*" "$CONF_DIR/get-canal.cfg" ; then
	echo "EMISSION=+ Clair (226)" >>$CONF_DIR/get-canal.cfg
fi

# Préparation du dossier temporaire.
if [ ! -d "$TEMP_DIR" ] ; then
	mkdir -p $TEMP_DIR/videos
else 
	rm -rf $TEMP_DIR/* ; mkdir -p $TEMP_DIR/videos
fi
touch $TEMP_DIR/progress_bar.list
touch $TEMP_DIR/playlist.info
for i in $(seq 1 10) ; do
	 touch $TEMP_DIR/progress_bar$i.log
done

# Chargement de la liste de la dernière emission affichée.
SHOW_LIST $(grep EMISSION= $CONF_DIR/get-canal.cfg | cut -d"\"" -f2 | sed -e 's/.*(\(.*\))/\1/g')
echo $(grep EMISSION= $CONF_DIR/get-canal.cfg | cut -d"\"" -f2) >$TEMP_DIR/show_list

# Lancement de la fenêtre principale.
EXEC_GET_CANAL

Hors ligne

#154 Le 23/08/2009, à 09:49

Yop69

Re : get-canal, le retour...

Je ne saisi pas tout ce que fait ces script. J'imagine que ca récupère les vidéos de canal. Mais comment utiliser les scripts ?
J'ai lu la page 1 mais je suis déjà largué ... sad

Désolé

Hors ligne

#155 Le 24/08/2009, à 23:12

Yop69

Re : get-canal, le retour...

Juste pour info, ce flux rss récupère toutes les vidéos de canal+ et ca marche au poil :

http://www.eric-beuque.com/services/rss … videos.php

Hors ligne

#156 Le 12/10/2009, à 18:51

utodeb

Re : get-canal, le retour...

Salut,

Il marche chez vous le script ?

Je suis un peu perdu pour savoir quel est le dernier script...

++


Smile today tomorrow will be worse
Simple comme Ubuntu n°2 10.04 LTS

Hors ligne

#157 Le 12/10/2009, à 19:36

Gras_du_Bide

Re : get-canal, le retour...

Regarde ici.

GdB

Hors ligne

#158 Le 13/10/2009, à 06:53

utodeb

Re : get-canal, le retour...

Ok merci.


Smile today tomorrow will be worse
Simple comme Ubuntu n°2 10.04 LTS

Hors ligne