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.

#126 Le 11/03/2009, à 20:28

redisded

Re : get-canal, le retour...

Bonsoir à tous,
pur ceux que ca interesse, j'ai remanié le petit script que j'avait posté sur cette meme page plus haut, qui permettait de télécharger automatiquement les videos via la crontab.
J'utilise cette fois-ci des flux disponibles sur le site feed43.com.
Malheureusement, seule 4 emissions sont dispos :
Groland, les guignols, le zapping, et les SAV des emissions. Bon étant donné que ca doit etre les 4 qui interessent le plus de monde, je poste donc ca pour ceux que ca interesse :

#!/bin/bash
TEMP_DIR="$PWD/tmp"
DOWNLOAD_DIR="$PWD"

SHOW_LIST () {
STREAM_URL="http://feed43.com/$1.xml"
wget "$STREAM_URL" -O "$TEMP_DIR/index.$1"
TITRES="$(sed -e 's/<\/title//g' "$TEMP_DIR/index.$1" | grep "title" | cut -d">" -f2 | sed '1d')"
VIDEOS="$(sed -e 's/<\/link//g' "$TEMP_DIR/index.$1" | grep "link" | cut -d">" -f2 | sed '1d')"
i="1"
n=$(echo -e "$TITRES" | wc -l)
while [ "$i" -le "$n" ] ; do
	echo "$(echo "$TITRES" | head -$i | tail -1)|$(echo -e "$VIDEOS" | head -$i | tail -1)"  >>$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"
}
mkdir "$TEMP_DIR"
date=$(date +%d.%m.%y --date '1 day ago')

for id in $@ ; do 
	SHOW_LIST $id
	if grep "$date" "$TEMP_DIR/videos.$id" ; then
		GET_VIDEO "$(grep "$date" "$TEMP_DIR/videos.$id" | cut -d"|" -f2 | head -$nb | tail -1)" "$id"
	fi
done
rm -rf "$TEMP_DIR"

Vous devez toujours renseigner vous meme le dossier de destination, par contre, pour changer la date, vous devrez mettre des points à la place des tirets (cf. http://forum.ubuntu-fr.org/viewtopic.ph … 7#p2444867)
Il ne faut plus cette fois-ci donner d'id en arguments du script, mais le nom des emissions tels qu'il est dans les pages feed43.
Je vous donne donc la ligne qui vous permet de télécharger les 4 emissions, il vous suffit de retirer celles qui ne vous interessent pas :

/chemin_du_script/nom_du_script "groland_magzine" "sav_emissions" "zapping" "guignols"

En espérant que cela puisse en dépanner quelques-uns en attendant peut etre un retour des videos sur vosflux.tv ou un partage de la technique de la récupération des liens par son auteur. (http://www.artcad.ch/site/blog/index.ph … -tv-&cos=1)

Hors ligne

#127 Le 24/03/2009, à 19:54

redisded

Re : get-canal, le retour...

Bonsoir à tous,
Le script est ànouveau fonctionnel malgré la disparition des flux sur www.vosflux.tv.
J'en ai également profité pour implémenter les fonctions vu que maitre Totor nous à appris à les intégrer à gtkdialog.
J'ai enfin qulque peu modifié les boutons sous la playlist : le bouton stop à disparu au profit d'un bouton permettant de vider la playlist.
Concernant les autres chaines, j'avait commencer à en traiter environ la moitié, mais la structure des flux à changée récemment, réduisant à néant tout mes efforts dans ce sens. Cela m'ayant légerement démotivé, et étant donné que je viens de retrouver une activité professionnel, je ne pense pas me relancer la dessus mais me concentrer uniquement sur canal; Désolé pour tout ceux à qui j'ai pu donner de faux éspoirs.
J'éspere que vous apprécierez cette nouvelle version, n'hésitez pas à me faire part de toutes suggestions ou remarque, et surtout n'hésitez pas à en profiter pârce que je ne sait pas vraiment combien de temp ca va marcher wink
Cordialement,
Redisded.

Edit : oups petit oubli : pour mettre le script à jour, effectuer simplement vos mises à jours régulieres si vous avez l'icone présent dans la barre d'outil, sinon, tapez dans un terminal :

sudo apt-get update && sudo apt-get upgrade

Merci à Beudbeud pour la mise en paquet.

Dernière modification par redisded (Le 24/03/2009, à 19:57)

Hors ligne

#128 Le 24/03/2009, à 21:07

Ras&#039;

Re : get-canal, le retour...

Vaut mieux un script qui fasse une chose, et qui la fasse bien wink
Après si le code est clair, rien n'empêche à d'autres motivé de l'adapter pour que la même interface existe pour des émissions d'arte ou autre chaines.

Bref, cool qu'il soit revenu, je vais enfin pouvoir tester smile


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

#129 Le 24/03/2009, à 21:55

Ras&#039;

Re : get-canal, le retour...

Hum...
Y'a du gros de fait au niveau de l'interface, c'est clair, et félicitaion pour ça.
Par contre, ça marche pô :\

Je cherche le zapping par exemple, je double clique sur le premier fichier, ça me le met à droite, mais si je clique sur la flèche ou sur la disquette, ça me met "la vidéo machin machin est introuvable"
En même temps le nom est un truc du genre "vosfluxtv.vignette/interdit/chaipasquoi", y'a peut être un lien ?

Sinon une possibilité d'amélioration, la playlist. Genre créer un fichier texte de playlist pour télécharger en 3 clicks toutes les vidéos du jour (ou les dernières vidéos de la playlist même si elle ne sont pas d'aujourd'hui). Parce que là faut cliquer plein de fois c'est pas hyper optimisé, surtout si on regarde les mêmes vidéos tous les jours...
A vrai dire j'avais fait mon script dans le but de télécharger en un click toutes les vidéos de canal tous les jours (qui pouvait être automatisé via cron d'ailleurs), là c'est pas tout à fait le même genre de soft, c'est un peu un miro-like.

Enfin je suis peut être le seul à voir ça comme ça...


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

#130 Le 24/03/2009, à 22:41

redisded

Re : get-canal, le retour...

Bonsoir Ras',
je vais me coucher la car suis crevé donc je répondrai demain pour ce qui est de l'ergonomie du script, cependant, pour le fait ke ca ne fonctionne pas, le pb que tu as, c'est ce que l'ancienne version du script me fait, donc comme beudbeud à changé de dépot à un moment, peut tu déja bien vérifié que tu utilise le dépot suivant :

deb http://scriptsbash.xdir.org/apt/ intrepid universe

si c'est bien le cas, peut tu poster le log qui va bien? wink
bonne nuit à tous.

EDIT : En attendant, j'avait posté en haut de cette page un petit script à placer dans la crontab qui fonctionne pour quatre emissions; j'essairai de l'étendre aux autres emissions dans les prochains jours.

Dernière modification par redisded (Le 24/03/2009, à 22:44)

Hors ligne

#131 Le 25/03/2009, à 20:20

redisded

Re : get-canal, le retour...

Bonsoir à tous,

Ras' a écrit :

Sinon une possibilité d'amélioration, la playlist. Genre créer un fichier texte de playlist pour télécharger en 3 clicks toutes les vidéos du jour (ou les dernières vidéos de la playlist même si elle ne sont pas d'aujourd'hui). Parce que là faut cliquer plein de fois c'est pas hyper optimisé, surtout si on regarde les mêmes vidéos tous les jours...
A vrai dire j'avais fait mon script dans le but de télécharger en un click toutes les vidéos de canal tous les jours (qui pouvait être automatisé via cron d'ailleurs), là c'est pas tout à fait le même genre de soft, c'est un peu un miro-like.

Enfin je suis peut être le seul à voir ça comme ça...

Alors, je ne pense pas pour commencer que tu soit le seul à voir les choses sous cet angle wink
D'ailleurs, au début j'avais moi-meme dit que je tenterais de refaire un script comme le tiens, qui me téléchargerais les videos tout les jours; mais en fait apres j'ai commencé à mettre le nez dans gtkdialog qui m'a bien plus mais qui demande pas mal de temp pour etre pris en main; ceci explique en grande partie le changement d'orientation. De plus, j'ai une utilisation du script un peu différente de la tienne : en général, je me fait une petite session le we ou je regarde tte les emissions de la semaine qui m'interesse; Donc le script me convient assez bien comme ca dans la mesure ou je télé charge plusieures vidéos sur la meme emissions a chaque fois (bon je t'accorde cependant que ca peut demander pas mal de clik wink ). Enfin j'ai assez fréquement des pb de places sur mes DD donc je ne souhaite pas spécialement conservé les emmissions. Voila donc pour tenter de justifier le pourquoi du comment.
Cependant, j'avais annoncé que je ferais tout de meme le necessaire pour automatiser les téléchargements, et je maintien wink. Je voudrait juste fignoller encore quelque détails sur la gui et apres promis je me met dessus; je pense reprendre le meme principe de fonctionnement que ton script, l'user ira dans les options paramétrer une fois les emissions à télécharger et l'heure de lancement du script, et une entrée sera créé dans la crontab; Si au passage vous avez des suggestions ou des idées d'amélioration sur ce principe, n'hésitez pas.
Par contre, comme dit plus haut sur cette page, je vient de reprendre le boulot donc je vais avoir beaucoup moins de temp alors je ne m'engage pas sur les délais. En révanche j'essairait de trouver ce we le temp d'élargir le script du haut de la page aux autres emissions afin qu'une solution temporaire soit disponible pour télécharger automatiquement vos emissions préférés.
En ésperant avoir éclairé ta lanterne, fais moi savoir si le script ne fonctionne tjrs pas chez toi. a+

Hors ligne

#132 Le 25/03/2009, à 20:41

Ras&#039;

Re : get-canal, le retour...

J'avais bien mis le dépot et fait l'update&&upgrade, mais ça marchais pas, je viens de rententer et c'est pareil...

Par contre j'arrive pas à choper le log :\
bash-x get-canal.sh > log ? parce que ça me donne pas le log complet (et j'suis trop fatigué pour réfléchir à une autre méthode)


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

#133 Le 25/03/2009, à 21:01

redisded

Re : get-canal, le retour...

re,
pour le log, la commande suivante fonctionne chez moi (attention, il ne faut pas mettre l'estension .sh):

bash -x get-canal 2&>log

sinon, apres verif, j'ai encore les 2 dépots dans mon sources.list, et je ne sait plus lequel est le bon:/ Etant donné que tes symptomes sont ceux de l'ancienne version et que ce détail me titille un peu je poste ici le script directement, si jamais tu peut faire le test avec, on sera au moins fixé sur ce point (Je redemande quel est le bon dépot a Beudbeud des que je peut le chopper sur msn).
En tout cas, si le script suivant fonctionne, essai avec ce dépot :

deb http://depot.tuxgasy.fr/ ./
#!/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 0.5												   
#							       				    #												   
#											Redisded 
#				Historique des versions :
# - 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 des variables du script principal. #####
# 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 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 l'en-tête de la playlist.
export TEXT_PLAYLIST="#EXTM3U"
##### Déclaration des fonctions utilisées par gtkdialog. #####
# 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
done
}

# 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
echo $DL_NUM
}

# 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 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")
	sleep 0.5
	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"
}

##### Déclaration des fenêtres gtkdialog. #####
# Déclaration de la fenêtre configuration.
export MAIN_CONFIG='
<window 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 fenêtre principale.
export MAIN_PROGRAMM='
<window title="'$SCRIPT'" window_position="1" icon-name="get-canal">
  <vbox>
    <notebook labels="Téléchargements|Options">
      <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="filesave"></input>
              <action>echo SAVE_FILE "1"</action>
              <action type="refresh">PLAYLIST</action>
            </button>
            <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="filesave"></input>
              <action>echo SAVE_FILE "2"</action>
            </button>
            <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="filesave"></input>
              <action>echo SAVE_FILE "3"</action>
            </button>
            <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="filesave"></input>
              <action>echo SAVE_FILE "4"</action>
            </button>
            <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="filesave"></input>
              <action>echo SAVE_FILE "5"</action>
            </button>
            <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="filesave"></input>
              <action>echo SAVE_FILE "6"</action>
            </button>
            <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="filesave"></input>
              <action>echo SAVE_FILE "7"</action>
            </button>
            <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="filesave"></input>
              <action>echo SAVE_FILE "8"</action>
            </button>
            <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="filesave"></input>
              <action>echo SAVE_FILE "9"</action>
            </button>
            <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="filesave"></input>
              <action>echo SAVE_FILE "10"</action>
            </button>
            <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">
            <width>200</width><height>250</height>
            <label>Titre</label>
            <input>cat $TEMP_DIR/playlist.info</input>
            <variable>PLAYLIST</variable>
            <action>sed -i "/$PLAYLIST */d" "$TEMP_DIR/playlist.info" ; sed -i "/$PLAYLIST */d" "$TEMP_DIR/playlist.m3u"</action>
            <action type="refresh">PLAYLIST</action>
          </tree>
          <hbox>
            <button>
              <input file icon="player_play"></input>
              <action>'$VIDEO_PLAYER' "$TEMP_DIR/playlist.m3u" & echo $!>$TEMP_DIR/video_player.pid</action>
            </button>
            <button>
              <label>Vider la playlist</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>
      <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>
            <label>Valider</label>
            <action>CFG=$(grep -v "DOWNLOAD_DIR=" "$CONF_DIR/get-canal.cfg") ; echo "DOWNLOAD_DIR=$FILE_DIRECTORY\n$CFG" >$CONF_DIR/get-canal.cfg ; sed -i "s/VIDEO_PLAYER=.*/VIDEO_PLAYER=$VIDEO_PLAYER/g" "$CONF_DIR/get-canal.cfg"</action>
          </button>
        </hbox>
      </vbox>
    </notebook>
    <hbox>
      <button>
        <input file icon="exit"></input>
        <label>Quitter</label>
        <action type="exit">OK</action>
      </button>
    </hbox>
  </vbox>
</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
if [ ! -f "/usr/share/icons/gnome/32x32/actions/get-canal.svg" ] ; then
	xterm -e 'echo "Veuillez indiquez votre mot de passe sudo pour la copie du logo dans le dossier /usr/share/icons/gnome/32x32/actions" ; sudo wget -O "/usr/share/icons/gnome/32x32/actions/get-canal.svg" "http://ibidems.free.fr/ras/script/logo64x64.svg"'
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.
gtkdialog --program=MAIN_PROGRAMM > >(LOOP)


# "Kill" des processus résiduels.
for i in $(seq 1 10) ; do
	touch "$TEMP_DIR/dl_$i"
done
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
rm -rf "$TEMP_DIR"
killall $(basename $SCRIPT)
exit 0

tiens moi au courant, a+

Hors ligne

#134 Le 26/03/2009, à 20:41

redisded

Re : get-canal, le retour...

Bonsoir,
apres vérification aupres de Beudbeud, le bon dépot est :

deb http://scriptsbash.xdir.org/apt/ intrepid universe

.
Donc si tu peut envoyer le log wink

Sinon Beubeud à tésté le script sous jaunty, il semble fonctionner également.
Au passage, si tu peut préciser ta version d'ubuntu.
A+

Hors ligne

#135 Le 27/03/2009, à 10:51

Ras&#039;

Re : get-canal, le retour...

Euh... Si on met pas l'extension .sh le script ne se lance pas...
C'est le ./ avant qu'il ne faut pas mettre...


Sinon voilà le log : http://la.boite.libre.free.fr/log.txt
J'ai tenté de télécharger un zapping et un guignol, sans succès.

Dernière modification par Ras' (Le 27/03/2009, à 10:51)


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

#136 Le 27/03/2009, à 18:02

redisded

Re : get-canal, le retour...

Ras' a écrit :

Euh... Si on met pas l'extension .sh le script ne se lance pas...
C'est le ./ avant qu'il ne faut pas mettre...

Arf, donc tu n'utilise pas la version paquet je pense. Car je te confirme qu'une fois le paquet installé, il suffit de taper get-canal dans un terminal pour que le script se lance. As-tu une entrée pour le script dans le menu son et vidéos? je jette un coup d'oeil à ton log de suite.

Edit : je confirme, le numéro de version de ton log est le 0.4, et la derniere version est la 0.5. Est-tu bien sur que tu as installé le paquet? Sinon, si tu souhaite passer directement par le script sans installer le paquet, tu peut prendre le dernier que j'ai posté.
Petit rappel, pour installer le script :

sudo apt-get install get-canal

Bon c'est un petit rappel pour tout le monde parce que toi, je pense que tu connait wink

Dernière modification par redisded (Le 27/03/2009, à 18:07)

Hors ligne

#137 Le 27/03/2009, à 18:49

Ras&#039;

Re : get-canal, le retour...

Mwai, c'était pas clair aussi ^^

pour télécharger le script , cliquez simplement sur le lien ci-dessous :
http://dedisred.free.fr/scripts/get-canal/get-canal.sh

pensez ensuite à rendre le script executable via la commande :

Code:

chmod u+x get-canal.sh

Moi j'ai cru qu'une fois get-canal.sh rendu exécutable il fallait le lancer comme un script classique (./get-canal)
J'ai peut être lu le post en diagonale...

Celà dit, j'ai installé le paquet du coup, et lancé get-canal comme ça, et ça marche toujours pas :\


Et ça y est je comprends plus rien...
Quand je lance get-canal dans un terminal ça marche (enfin, ça marche pas mais le soft se lance et trouve des vidéos, même s'il ne les télécharge pas), par contre quand je fais bash -x get-canal 2&>log, le soft se lance, mais si je cherche des vidéos, il ne trouve rien... Du coup c'est pas génial pour te montrer.
Un log quand même : http://la.boite.libre.free.fr/log


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

#138 Le 27/03/2009, à 20:11

angeline

Re : get-canal, le retour...

Bonjour/soir (de L'Amerique du Sud)
Si ça peux faire avancer le truc:

sudo apt-get install get-canal

Renvoie:

Lecture des listes de paquets... Fait
Erreur de segmentatione des dépendances... 0%

En tout cas Merci encore de bien vouloir vous pencher sur ce programme génial.


ıɔǝɔ ǝɯɯoɔ xnǝıɯ ʇsǝ,ɔ nʇunqnʞ

Hors ligne

#139 Le 27/03/2009, à 20:13

redisded

Re : get-canal, le retour...

re,
arf désolé c'est vrai que c'etait pas clair parce que le paquet n'à pas été créé des le début.
Par contre, ce qui est bizarre, c'est que ton log concerne encore la version 0.4...
Au risque de me répéter, tu es bien sur ce dépot? :

deb http://scriptsbash.xdir.org/apt/ intrepid universe

As-tu le meme résultat en passant par l'entrée dans le menu?
Est-ce que tu pourrait essayer le script que j'ai posté plus haut directement?
Et enfin, pourrait tu vérifier via synaptic la version du paquet installé sur ta machine?
on va trouver... wink

EDIT : dans la foulée, j'avais oublié : voici une version modifié du script à placer dans la crontab.
Il doit etre suivi de l'id de toute les emissions que vous voulez télécharger. Pour mémoire, les id sont les nombres entre parentheses apres le nom des emissions dans le script principal. Vous pouvez également retrouvez ces id dans l'url de chaque emissions sur le site www.vosflux.tv.
Derniere précision : je vient de me rendre compte que le script ne fonctionne pas si votre nom d'utilisateur n'est pas renseigné dans la crontab, rajoutez donc une ligne comme celle-ci :

USER="red"

en remplacant red par votre nom d'utilisateur au début de votre crontab.
voici donc le fichier :

#!/bin/bash
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)"

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"
}
mkdir "$TEMP_DIR"
date=$(date +%d.%m.%y --date '1 day ago')

for id in $@ ; do 
	SHOW_LIST $id
	if grep "$date" "$TEMP_DIR/videos.$id" ; then
		GET_VIDEO "$(grep "$date" "$TEMP_DIR/videos.$id" | cut -d"|" -f2 | head -$nb | tail -1)" "$id"
	fi
done
rm -rf "$TEMP_DIR"

Les videos seront rangées directement dans le dossier de téléchargement du script principal.
Je vais voir pour rajouter un classement par dossier et pour intégrer la création de l'entrée crontab dans le script principal.

Dernière modification par redisded (Le 27/03/2009, à 20:29)

Hors ligne

#140 Le 27/03/2009, à 20:24

Ras&#039;

Re : get-canal, le retour...

ras@ras-laptopoulos:~$ cat /etc/apt/sources.list
[...]
# canal
deb http://scriptsbash.xdir.org/apt/ intrepid universe

Même résultat en passant par le menu.
Par contre je suis en 0.4.1beta :\ update && upgrade ne modifie rien à ça :\

Au passage, tu peux mettre le numéro de la version quelque part dans l'onglet option wink
Ou faire un onglet info avec la licence, l'auteur, le numéro de version, et des petites choses qu'on peut avoir envie de savoir... ( des easter eggs tongue )

Ah oui, je suis sous hardy 8.04.2, je sais pas si ça change un truc au niveau du dépot mais on m'a toujours dit que le nom de la distrib n'était pas important (quoique c'est peut être pas important dans l'autre sens, genre avoir un dépot hardy sous intrepid ?)

Dernière modification par Ras' (Le 27/03/2009, à 20:27)


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

#141 Le 27/03/2009, à 20:41

redisded

Re : get-canal, le retour...

angeline a écrit :

Bonjour/soir (de L'Amerique du Sud)
Si ça peux faire avancer le truc:

sudo apt-get install get-canal

Renvoie:

Lecture des listes de paquets... Fait
Erreur de segmentatione des dépendances... 0%

En tout cas Merci encore de bien vouloir vous pencher sur ce programme génial.

Bonsoir,
pourrait-tu stp nous poster le retour de la commande suivante? :

cat /etc/apt/sources.list

Pourrait-tu également nous dire sous quelle version d'ubuntu tu tourne?

@Ras' :Arf bon alors je vais vois avec Beudbeud car c'est lui qui s'est occupé du paquet, je n'y connait rien perso, donc la je ne sait pas trop quoi te répondre:/ Je poste des que j'ai pu le joindre.En attendant, je pense que ca ne coute rien de tester en remplacant le "intrepid" par "hardy" dans ton sources.list.
Et toujours en attendant, le script du post 133 devrait fonctionner.(Idem pour angeline d'ailleurs).
Vous devrez dans ce cas installer vous-meme les dépendances suivantes :

sudo apt-get install inotail gtkdialog libnotify-bin

Dernière modification par redisded (Le 27/03/2009, à 20:43)

Hors ligne

#142 Le 27/03/2009, à 21:04

angeline

Re : get-canal, le retour...

Bonsoir, voici:

 deb http://archive.canonical.com/ubuntu hardy partner
# deb-src http://archive.canonical.com/ubuntu hardy partner

deb http://security.ubuntu.com/ubuntu hardy-security main restricted
deb http://security.ubuntu.com/ubuntu hardy-security universe
deb http://security.ubuntu.com/ubuntu hardy-security multiverse

## MEDIBUNTU
deb http://fr.packages.medibuntu.org/ hardy free non-free


## Wine
# voir http://www.winehq.org/site/download-deb
deb http://wine.budgetdedicated.com/apt hardy main

## Dépôts de sources (uniquement utiles pour télécharger les sources avec
## apt-get source. Dans ce cas enlever les #)
# deb-src http://wine.budgetdedicated.com/apt hardy main
deb http://apt.wicd.net hardy extras
deb http://scriptsbash.xdir.org/apt/ intrepid universe

Donc je suis encore sous Hardy Heron, et je ne pense pas qu'un script ne soit
pas utilisable sur 2 versions si proches....   mais je peux me tromper.


ıɔǝɔ ǝɯɯoɔ xnǝıɯ ʇsǝ,ɔ nʇunqnʞ

Hors ligne

#143 Le 27/03/2009, à 21:15

redisded

Re : get-canal, le retour...

Bon bah meme réponse qu'à Ras'  alors : Désolé mais il va falloir attendre que j'ai des nouvelles de Beudbeud car je suis incompétent sur ce point.
Cependant, peut etre une piste ici :
http://forum.ubuntu-fr.org/viewtopic.ph … 07#p355707
Sinon, tu peut en attendant essayer d'utiliser directement le script du post 133.

Dernière modification par redisded (Le 27/03/2009, à 21:15)

Hors ligne

#144 Le 27/03/2009, à 21:30

redisded

Re : get-canal, le retour...

re,
Bon bah je pense savoir d'ou vient ton pb Ras' (ce qui veut pas dire que cela va le résoudre),
j'ai tésté l'install du script sur une de mes machine avec ubuntu64, et ca m'install également l'ancienne version. seule la version i386 semble avoir été mise à jour. Je présume donc que tu tourne également sous une version 64bits... Je prévient Beudbeud pour qu'il fasse le necessaire.

Dernière modification par redisded (Le 27/03/2009, à 21:30)

Hors ligne

#145 Le 27/03/2009, à 21:52

Ras&#039;

Re : get-canal, le retour...

Ah oui tiens, j'avais oublié de préciser que j'étais en 64 ^^
Comme j'ai jamais vraiment eu de problème avec ça j'ai rarement besoin de le préciser wink

Merci smile


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

#146 Le 27/03/2009, à 21:53

beudbeud

Re : get-canal, le retour...

oki je regarde pour la version 64bits


Télécharger les émissions de Arte +7 avec Arte +7 recorder
Theme pour Ubuntu Bisigi Project

Vostro 1510 Ubuntu 10.04

Hors ligne

#147 Le 27/03/2009, à 22:08

Lancelin

Re : get-canal, le retour...

Salut !

Après avoir tout effacé lorsque ça ne marchait plus je viens de réinstaller le script en me servant du tuto de beudbeud sur la page 5, #115. Et ça marche comme avant... Au premier lancement rien ne se passe, au deuxième le chargement de la vidéo s'interrompt et le script disparaît et au troisième tout est bon, il faut un petit rôdage big_smile

Bonne nuit à tous !

#148 Le 28/03/2009, à 10:25

redisded

Re : get-canal, le retour...

Bonjour à tous,
Beudbeud à mis à jour la derniere version du paquet qui est donc désormais également disponible pour les architectures 64bits.

Lancelin a écrit :

Salut !

Après avoir tout effacé lorsque ça ne marchait plus je viens de réinstaller le script en me servant du tuto de beudbeud sur la page 5, #115. Et ça marche comme avant... Au premier lancement rien ne se passe, au deuxième le chargement de la vidéo s'interrompt et le script disparaît et au troisième tout est bon, il faut un petit rôdage big_smile

Bonne nuit à tous !

Arf je vient d'avoir un souci de ce genre sur mon deuxieme pc; au premier lancement, le script s'est fermé brutalement en cours de téléchargement.Mais maintenant il fonctionne sans pb; j'ai re-télécharger une dizaine de vidéos mais impossible de le refaire planter; du coup difficile de voir d'ou vient le pb hmm

Dernière modification par redisded (Le 28/03/2009, à 10:30)

Hors ligne

#149 Le 28/03/2009, à 10:49

Lancelin

Re : get-canal, le retour...

Salut !

Je viens effectivement d'avoir la mise à jour de Get-canal et à ce propos serait-il possible qu'il soit authentifié (je ne sais pas comment) car je suppose que c'est lui qui a provoqué la fenêtre d'avertissement et l'espèce de bug graphique très moche bien que sans conséquence ?

Pour le script lui-même ce n'est effectivement qu'un rôdage, si tu fais une désinstallation/réinstallation le problème réapparaîtra...

Je ne sais plus si je l'ai déjà demandé mais pourrais-tu faire en sorte qu'on puisse lire une vidéo sélectionnée dans la playlist ?
De même, pour effacer une vidéo de la playlist on fait un double-clic, est-il possible de faire un menu contextuel avec "Supprimer cette vidéo de la playlist", "Lire la vidéo sélectionnée", etc ?

Sais-tu à quel moment la liste des vidéos est mise à jour ? Sur le site de Canal+ on peut lire les Guignols d'hier (27/03) alors qu'avec Get-canal la plus récente est du 26/03.

Bon courage !

#150 Le 28/03/2009, à 11:16

redisded

Re : get-canal, le retour...

Lancelin a écrit :

Salut !

Je viens effectivement d'avoir la mise à jour de Get-canal et à ce propos serait-il possible qu'il soit authentifié (je ne sais pas comment) car je suppose que c'est lui qui a provoqué la fenêtre d'avertissement et l'espèce de bug graphique très moche bien que sans conséquence ?

Pour le script lui-même ce n'est effectivement qu'un rôdage, si tu fais une désinstallation/réinstallation le problème réapparaîtra...

Je ne sais plus si je l'ai déjà demandé mais pourrais-tu faire en sorte qu'on puisse lire une vidéo sélectionnée dans la playlist ?
De même, pour effacer une vidéo de la playlist on fait un double-clic, est-il possible de faire un menu contextuel avec "Supprimer cette vidéo de la playlist", "Lire la vidéo sélectionnée", etc ?

Sais-tu à quel moment la liste des vidéos est mise à jour ? Sur le site de Canal+ on peut lire les Guignols d'hier (27/03) alors qu'avec Get-canal la plus récente est du 26/03.

Bon courage !

Bonjour,
Pour l'authentification, Beudbeud m'en à déja parler, cela devrait arriver.
Pour le menu contextuel, je ne pense pas que cela soit possible avec gtkdialog; je refléchirais cependant a des alternatives.Je pourrait en revanche inserer un menu du type "Fichier Edition ..." comme on en trouve en haut de la plupart des soft, et inserer les différentes actions dedans. A ce moment la, j'assignerais au double click la lecture de la video. Est-ce une solution qui pourrait te convenir?

Concernant la mise à jour de la liste des emissions, elle est toujours calquée sur le site www.vosflux.tv; Si les liens vers les videos ne sont plus disponibles, tu peut constater en te rendant sur le site que les vignettes des videos sont cependant toujours mises à jour. Je ne suis pas l'admin de ce site donc je ne peut malheureusement rien faire contre ces petits retards. (Bizarrement, j'ai constaté que cela concernait principalement les guignols).

Hors ligne