Surveillance de flux RSS (Script)

Voici la « suite » du poste Envoie de mail autonome qui en est donc une utilisation.

Je l’ai écrit afin de surveiller la mise en vente du EEE Pc de chez Asus qui était annoncé en exclue chez deux VPIstes, Materiel.net et LDLC.com. Connaissant la date de sortie officiel mais pas les dates de pré-commandes supposés et au vu de la demande pour ce produit, un petit script pour surveiller la mise en pré-commande afin d’être dans les premiers à le commander me semblais intéressant.

De conception très simple, j’en fais part comme d’une base à adapter pour les personnes qui pensent ne pas être capable de réaliser un script. Le principe est simple, on récupère le fichier RSS des deux VPIste, on cherche dedans une chaîne de caractères et si celle-ci est présente, on l’envoie par mail…

Le voici donc, détails à la suite :

#!/bin/bash

wget http://www.materiel.net/rss/nouveaute.rss
wget http://feeds.feedburner.com/ldlc/com/rss/nouveautes

> temp.txt
cat nouveaute* | grep EEE >> temp.txt
cat nouveaute* | grep eee >> temp.txt
cat nouveaute* | grep 701 >> temp.txt

if [ -s temp.txt ]
then
./send_myemail.sh mail_expediteur mail_destinataire « sujet » « temp.txt » | telnet smtp_de_votre_FAI 25
fi

rm nouveaute*
rm temp.txt

La première ligne est indispensable afin de spécifier que c’est un script et avec quoi l’exécuter. Les deux lignes suivantes permettent de récupérer les flux RSS, sous la forme ‘wget l’adresse_du_flux‘.

On crée ensuite un fichier vide nommé temp.txt et viens le moment de chercher nos chaînes de caractères. Si vous êtes adeptes de la console, la syntaxe vous est familière, pour les autres petits détails :

« cat » indique que l’on veux afficher le contenu du fichier qui suit, en l’occurrence tout les fichiers placés dans le même dossiers que le scripts qui commencent par ‘nouveaute’ qu’importe ce qui suis (dans notre cas cela permet de regarder dans nouveaute.rss et nouveautes). Le pipe « | » permet de re-diriger le résultat de la commande vers la commande suivante : « grep » qui elle va rechercher réellement la chaîne de caractère qui suit. »>> » signifie que l’on rajoute le résultat à la fin du fichier spécifié. Ces 3 lignes permettent donc telles quelles de chercher ‘eee’ ‘EEE’ et 701 et de placer les lignes correspondantes dans le fichier temp.txt.

Vient ensuite une action conditionnelle ‘if‘. Si temp.txt est non vide (-s) alors sera executé ce qui se situe entre ‘then‘ et ‘fi‘. Pour le détail de cette ligne (envoie du résultat par mail), reporter vous à Envoie de mail autonome.

On supprime ensuite les fichiers que l’on à crées afin qu’ils ne soient pas pris en compte dans la prochaine exécution du script.

N’oubliez pas de rendre le script exécutable (chmod +x). Le but étant de vérifier régulièrement un flux rss, vous pouvez rajouter une ligne à votre cron afin qu’il lance le script toute les 5 mn par exemple. À noter que tant que le script trouvera la chaîne de caractère dans les fichiers récupérés il vous enverra les lignes correspondantes par mail…

Laisser un commentaire