je pensais le poster dans la section "les scripts, c’est ici"
Mais oui, je peux ici quand même!!! c’est ‘fini’ en tout cas, ça marche, mais c’est améliorable.
Je vais chercher la page de base (avant l’image) et je regarde si j’ai l’image. Mais cela me fait recharger la page à chaque fois. Ça me plaît pas de trop. Mais j’ai fait ça sur un bout de table.
Voila le code:
#!/bin/bash
# -------------------------------------------------------------------------
# image en fond d'écran avec nitrogen renouvelable tous les jours
# Utilisation:
# placer le script dans /usr/local/bin
# chmod +x /usr/local/bin/change_walpaper3.sh
# installer la crontab sans oublier l'export du DISPLAY:
# 0 * * * * export DISPLAY=:0.0 && /usr/local/bin/change_walpaper3.sh
# la cron tab est évaluée toutes les heures. Je ne sais pas quand la nasa renouvelle son image.
# -------------------------------------------------------------------------
# chaque jour, une image nouvelle!
# http://apod.nasa.gov/apod/ap120917.html
# l'image est dans la page html la date est dans le nom de la page: 120917 -> 17 septembre 2012
# la page de base est récupérée, puis on regarde si l'image est déjà présente. si c'est le cas, on s'arrete la.
# En cas d'erreur, je bascule sur un script qui récupère un autre fond d'écran.
# -------------------------------------------------------------------------
# R. Suinot <remi@suinot.org> le 01 Oct 2012
# -------------------------------------------------------------------------
log="/tmp/change_walpaper3.log"
fichier_temporaire="/tmp/page_temporaire.html"
dossier_images="$HOME/Images/Wallpapers/"
adresse="http://apod.nasa.gov/apod/"
adresse_page="http://apod.nasa.gov/apod/ap"$(date +%y)$(date +%m)$(date +%d)".html"
# adresse_page="http://apod.nasa.gov/apod/ap120917.html"
heure=$(date +%y)$(date +%m)$(date +%d)
wget $adresse_page -O $fichier_temporaire
temp=$(stat -c%s $fichier_temporaire)
if [[ $temp > 1000 ]]
then
echo "$(date) -> $temp" >> $log
# j'ai récupéré la page du jour, il faut trouver l'image incluse dedans, à présent!
image_du_site=$( grep "IMG SRC" $fichier_temporaire | cut -d \" -f 2)
image_locale=$( cut -d / -f3 <<< $image_du_site)
adr_image=$adresse$image_du_site
echo " +-> image= $adr_image." >> $log
echo " +-> image source= $image_du_site." >> $log
echo " +-> image destination= $image_locale." >> $log
cd $dossier_images
if [[ -e $image_locale ]]
then
echo "déjà changé" >> $log
else
wget $adr_image -O $image_locale
temp=$(stat -c%s $image_locale)
echo " +-> $temp" >> $log
if [[ $temp > 1000 ]]
then
rm world_sunlight_Wallpaper.jpg
mogrify -fill white -pointsize 16 -annotate +5+820 "$heure" $image_locale
cp $image_locale world_sunlight_Wallpaper.jpg
nitrogen --restore
echo " +-> ok!" >> $log
else
echo " +-> Pas de nouvelle image, chargement de la météo" >> $log
/bin/bash ~/bin/change_walpaper2.sh
fi
fi
rm $fichier_temporaire
else
echo " +-> Pas de nouvelle image, chargement de la météo" >> $log
/bin/bash ~/bin/change_walpaper2.sh
fi
echo "---- fin de cession ------" >> $log
le fichier de log dans /tmp/ en fait, c’est juste pour voir ce qu’il ce passe en cas de soucis, ce peut être enlevé.
Toute(s) solution(s)/optimisation(s) est(sont) acceptées à la condition d’expliquer la manip. J’ai eu du mal avec cette ligne, par exemple:
image_locale=$( cut -d / -f3 <<< $image_du_site)
Et comme je suis gentil, je vous donne une seconde adresse pour des images, cette fois ci, c’est une page avec l’image directement: opentopia.com/images/cams/wo … ngular.jpg
je pense que ça vaudrait le coup de récupérer toute les heures ou deux heures, sur un mois, puis faire une animation, mais je ne me suis jamais (pas encore) lancé.
edit: le nom de fichier world_sunlight_Wallpaper.jpg est utilisé pour image de fond d’écran, car c’était celui utilisé de base par mon fils. Nitrogen le réutilise à chaque fois avec la commande --restore on aurait pu utiliser un autre nom, mais la facilité …
Cordialement.
Rémi.