#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 (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...
Mise à jour ce matin pour les 64 bits
(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
EDIT :
PS : il déchire sa race de sa maman ton script !
Merci
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
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é ...
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 :
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