Vraiment excellents tout les deux :lol:
Lariviere, les dessins sont de mieux en mieux :cool: et l'humour toujours aussi bien ( j'adore celui de la violence 🙂 )
J'ai continué ( fini ? ) mon script.
Donc ce script récupère les images de
http://www.snut.fr (rss 🙂) (en ne prenant que celle qui ne sont pas téléchargée 😉 ), met en fond d'écran la dernière. S'il n'y en a pas de nouvelles, il en pioche une autre aléatoirement dans celles qui sont déjà téléchargée ( en ne mettant pas celle qui sont déjà passée :p )
Conseil d'utilisation :
Enregistrer le contenu de ce script dans un fichier appélé snut-wall par exemple, que vous rendrez executable avec clic droit propriété etc..., vous le placez dans le dossier ~/.kde/Autostart/ et ainsi à chaque démarrage il fera tout ce qui est cité plus haut 😛 .
Mettez aussi un lanceur vers ce script sur un tableau de bord, comme ça vous pourrez changer de fond automatiquement à tout moment !
#!/bin/bash
## Ce script récupère les dessins de Snut pour les mettre en fond d'écran
## Toutes les images qu'il récupère viennent de http://www.snut.fr
## Script écrit par Grogro
# fichier "listepc" : liste des noms des images déjà téléchargée
# fichier "utilises" : liste des fonds déjà utilisés
# $listepc : variable contenant les 10 dernière ligne du fichier "listepc"
# $listerss : variable contenant les 10 lignes des images du flux rss
# $aleatoire : 0=choix de la dernière image ; 1=choix aléatoire
# $ligne : ligne de code d'une image
# $url : url ce cette image
# $nom : nom de cette image
# $fond : nom de l'image qui sera utilisée
present() {
echo $1 est il present dans $2 ?
IFS=$'\n'; a=1; while read -r ligne[a++]; do :; done <$2
present=`for ((a=1;a<=${#line[*]};a++)); do case "${ligne[a]}" in *$1*) echo -en "$a\t-\t"; echo "${ligne[a]}" ;; esac; done`
if ( test -n "$present" ) then
echo oui
return 0
else
echo non
return 1
fi
}
# création du dossier de stockage des images
cd ~
mkdir .snut-wall
cd .snut-wall
# S'ils n'existent pas déjà, création des fihchiers listes
touch utilises
touch listepc
# Stockage de cette liste dans $listepc
listepc=`tail --bytes=+0 listepc`
# Stockage de la dernière image utilisée dans $fond
fond=`tail -1 ./utilises`
# Par défaut, le choix est la dernière image et non pas aléatoire
aleatoire=0
# récupération du code du flux rss
rm rss.php
wget http://www.snut.fr/rss.php
# recherche et stockage de la liste des lignes des images sur le flux dans $listerss
IFS=$'\n'; a=1; while read -r line[a++]; do :; done <rss.php
listerss=`for ((a=1;a<=${#line[*]};a++)); do case "${line[a]}" in *'<p><img'*) echo -en "$a\n";; esac; done`
echo liste rss = $listerss
for ((I=1;I<=10;I++))
do
# Récupération des lignes une à une à partir de listerss
ligne=`echo $listerss | cut -f$I --delimiter=' '`
echo ligne = $ligne
# Récupération de l'url à partir de la ligne
url=${line[$ligne]}
url=${url##*'<p><img src="'}
url=${url%%'"'*}
echo url = $url
# Récupération du nom à partir de l'url
nom=${url##*'/'}
echo nom = $nom
if ( present $nom listepc ); then
# Si non présent, sortie de la boucle et si rien à télécharger : mise en mode aléatoire
if ( test $I = 1 ); then
aleatoire=1
break
else
break
fi
# Si non présent, téléchargement de l'image et màj du fichier listepc
else
echo $nom nest pas présent dans liste
wget $url
echo $nom >> ./listepc
# Si c'est la première image, enregistrer dans la variables $fond car c'est la dernière en date
if ( test $I = 1 ); then
dcop kdesktop KBackgroundIface setWallpaper $HOME/.snut-wall/$nom 1
# Pour gnome ? :
# gconftool -t str -s /desktop/gnome/background/picture_filename $HOME/.snut-wall/$fond
echo $nom >> ./utilises
fi
fi
done
# Mise en fond dans le cas où c'est aléatoire :
if ( test $aleatoire = 1 ); then
# Si toute les images sont passées en fond : remise à zéro du fichier utilises
if ( test `cat utilises | wc -l` = `cat listepc | wc -l` ); then
>utilises
echo $fond >> utilises
fi
n=`cat listepc | wc -l`
while ( present $fond utilises ) do
# i nombre aléatoire entre 1 et $n
echo i = $i
i=$( expr $RANDOM / $( expr 32768 / $n ) )
i=$(($i + 1))
fond=`echo $listepc | cut -f$i --delimiter=' '`
done
dcop kdesktop KBackgroundIface setWallpaper $HOME/.snut-wall/$fond 1
# Pour gnome ? :
# gconftool -t str -s /desktop/gnome/background/picture_filename $HOME/.snut-wall/$fond
echo $fond >> ./utilises
fi
Comme vous pouvez le voir il est encore foireux (notamment pour la selection aléatoire) mais il marche !
Il peut sans doute s'adapter à n'importe quel blog, pour peu que le flux rss utilise la balise '<p><img' (je n'y connais rien, je ne sais pas si c'est possible autrement...)
Il s'adapte peut-être à gnome... commentez les deux lignes "dcop kdesktop..." et décommentez les 2 "gconftool..."
En espérant que ça vous plaise 🙂
Et encore bravo à vous snut et lariviere ! Continuez !