Outils pour utilisateurs

Outils du site


linux:scripts_bash:vrac

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
linux:scripts_bash:vrac [17/03/2009 23:40] – recup journaux france culture daniellinux:scripts_bash:vrac [22/07/2010 17:29] (Version actuelle) daniel
Ligne 86: Ligne 86:
 commande && echo -e $OK || echo -e $KO commande && echo -e $OK || echo -e $KO
 </code> </code>
 +
 +
 +
  
 ===== Récupérer les journaux de france culture ===== ===== Récupérer les journaux de france culture =====
Ligne 110: Ligne 113:
  
 echo -e "\nOn va essayer de récupérer \e[0;47m\e[0;32m$mp3\e[0;00m\n" echo -e "\nOn va essayer de récupérer \e[0;47m\e[0;32m$mp3\e[0;00m\n"
-wget "$mp3" -O fc${h}.mp3 +wget "$mp3" -O fc${h}.mp3 && rm -f fc${h}.xml 
 +</code> 
 + 
 +Et avec zenity (à peaufiner...) 
 +<code bash> 
 +#!/bin/bash 
 + 
 +# les urls des rss, à modifier si ça devait changer... 
 +urls=([7]=http://radiofrance-podcast.net/podcast09/rss_10055.xml [12]=http://radiofrance-podcast.net/podcast09/rss_10059.xml [18]=http://radiofrance-podcast.net/podcast09/rss_10060.xml [22]=http://radiofrance-podcast.net/podcast09/rss_10061.xml) 
 + 
 +# qq tests 
 +which zenity >/dev/null 
 +# Attention avec $?, 0 => OK, on change 
 +[ $? -eq 0 ] && zenok=TRUE || zenok=FALSE  
 + 
 +which notify-send >/dev/null 
 +[ $? -eq 0 ] && notifok=TRUE || notifok=FALSE 
 +# faudrait plutôt se baser sur le test [ -z "$TERM"
 +  
 + 
 +# les fonctions 
 + 
 +get_heure() { 
 +  if [ $# -eq 0 ] && [ "$zenok" = "TRUE"
 +  then 
 +    ret=$(zenity --title='Lequel ?' --text="Attention, pas de barre de progression,\nça télécharge puis s'ouvrira tout seul" --height=250 --list --radiolist \ 
 +      --column='' --column='Journal de' \ 
 +      'FALSE' 7h \ 
 +      'TRUE' 12h30 \ 
 +      'FALSE' 18h \ 
 +      'FALSE' 22h) 
 +    [ -z "$ret" ] && exit 0 # clic sur annuler 
 +    case "$ret" in 
 +      7h)     h=7;; 
 +      12h30) h=12;; 
 +      18h)   h=18;; 
 +      22h)   h=22;; 
 +      *) set_msg "Heure $ret inconnue" && exit 1;; 
 +    esac 
 +  else 
 +    [ $# -ne 1 ] && echo "Il faut passer un argument (7,12,18,22) pour le journal choisi)" && exit 1 
 +    h=$1 
 +  fi 
 +  return $h 
 +
 +  
 +set_msg() { 
 +  [ $notifok = "TRUE" ] && notify-send -t 1000 $1 || echo $1 
 +}     
 +  
 +check_heure() { 
 +  url='' 
 +  for i in ${!urls[*]} 
 +  do 
 +    [ $1 -eq $i ] && url=${urls[i]} && h=$i 
 +  done 
 +  [ -z "$url" ] && set_msg "Vous devez donner un journal existant (7, 12, 18 ou 22)" && exit 1 
 +
 +  
 +ask2continue() { 
 +  if [ $zenok = TRUE ] 
 +  then 
 +     zenity --question --text="$1" 
 +     [ $? != "0" ] && exit 0 
 +  else 
 +    echo $1 
 +    echo "Continuer ? (o/n)" 
 +    read rep 
 +    [ "$rep" != 'o' ] && echo "Abandon" && exit 0 
 +  fi 
 +
 +  
 +get_url() { 
 +  xml="/tmp/fc${h}.xml" 
 +  wget $url -O "$xml" 
 +  mp3=$(sed -nre ' 
 +    { 
 +      :boucle 
 +      N 
 +      $! b boucle 
 +    } 
 +    s#.*http://([^<]*)</guid>.*#http://\1#p' < $xml) 
 +  
 +  jour=$(date '+%d.%m.%Y'
 +  [ "$(echo $mp3|grep -c $jour)" != '1' ] && ask2continue "Apparemment ce n'est pas le journal du jour : $mp3\nOn continue quand même ?" 
 +  
 +  # si abandon on est déjà sorti 
 +  fich=/tmp/fc${h}.mp3 
 +  wget "$mp3" -O $fich 
 +  if [ $? ] 
 +  then 
 +    rm -f fc${h}.xml 
 +    set_msg "On a récupéré un mp3 ($fich)" 
 +    xdg-open $fich 
 +#    rm -f $fich # xdg rend la main tout de suite 
 +  fi 
 +
 +  
 +# et le main 
 +get_heure $* 
 +h=$? 
 +check_heure $h 
 +get_url $url
 </code> </code>
  
linux/scripts_bash/vrac.1237329649.txt.gz · Dernière modification : 17/03/2009 23:40 de daniel