| précédent :: suivant |
| Auteur |
Message |
Continent Vlr Nomade


Sexe:  Age: 26 Inscrit le: 08 Aoû 2005 Messages: 272 Ville Pays: Weßling
|
Posté le: Jeudi 22 Mai 0:53 Titre: Surveiller les blogs de vos amis |
|
|
Difficulté: Niveau intermédiaire
Objectif: Être alerté par mail lorsque vos amis publient de nouvelles notes.
Principe: Lire chacune de leurs pages, y récupérer ce qui ressemble à des liens
vers des billets, comparer ces liens à ceux récupérés lors de la dernière
tentative, faire un résumé des nouveautés et l'envoyer par mail, et enfin
remplacer l'ancienne liste par la nouvelle pour la prochaine itération.
Première étape: Récupérer la liste des adresse des blogs de vos amis. La page
http://www.vivelesrondes.com/VotrePseudo/profile contient toutes les
informations nécessaires à ce sujet. On commence donc par la télécharger:
| Code: | | wget http://www.vivelesrondes.com/VotrePseudo/profile |
Ceci va créer un fichier profile dans le répertoire en cours, duquel nous
pourrons extraire la liste d'amis.
| Code: | | grep '/profile/' profile | On récupère toutes les lignes contenant
/profile/ dans le fichier profile, c'est à dire les deux lignes contenant la
liste de vos amis pour la première, et la liste de ceux qui vous ont comme amis
dans la seconde.
On n'en garde que la première, c'est à dire la liste des
liens vers les profils de vos amis.
On remplace les virgules par des retours à la ligne.
C'est plus simple d'avoir un ami par ligne.
| Code: | | sed 's/\/profile//g' | On remplace les liens vers les profils par des
liens vers les pages d'accueil de blogs (En enlevant simplement la partie
"/profile" dans chaque lien).
| Code: | | wget -i - -O blogs.txt --force-html | Enfin, on télécharge toutes ces pages d'accueil, et on enregistre le tout dans un fichier nommé blogs.txt
Résumé de la première étape:
| Code: | | grep '/profile/' profile | head -n1 | sed 's/,/\n/g' | sed 's/\/profile//g' | wget -i - -O blogs.txt --force-html |
Deuxième étape: Récupérer tout ce qui peut ressembler à un lien vers un billet.
Ils sont de la forme "http://www.vivelesrondes.com/<pseudo>/<Numéro>"
| Code: | | grep -E 'http://www.vivelesrondes.com/[A-Za-z0-9]+/[0-9]+/' blogs.txt > links.new | On enregistre cette liste de liens dans un fichier nommé
links.new que l'on pourra comparer avec le fichier links.old créé à l'itération
précédente.
Troisième étape: On compare la nouvelle liste avec l'ancienne pour trouver les
changements depuis la dernière vérification.
| Code: | | diff links.old links.new | On obtient les nouveaux billet (rajoutés),
ainsi que les anciens billets disparus de la page principale, qui ne nous
intéressent pas.
On ne garde que les lignes commencant par > , car elles
indiquent ce qui a été rajouté.
| Code: | | sed 's/^>//g' | sed 's/ /\n/g' | sed "s/'/\n/g" | sed 's/"/\n/g' |
Grand nettoyage: On supprime le > du début de ligne, on remplace les espaces et
les guillements simples et doubles par des retours à la ligne, pour isoler les
adresses internet sur leurs lignes. (Toujours plus simple de travailler par
lignes)
On ne garde que les lignes contenant une adresse
internet.
| Code: | | grep -v post_comment > mail.txt | On retire les liens proposant de
poster un nouveau commentaire, et on enregistre cette liste de liens dans un
fichier mail.txt prêt à être envoyé par mail.
Résumé de la troisième étape:
| Code: | | diff links.old links.new | grep '^> ' | sed 's/^>//g' | sed 's/ /\n/g' | sed "s/'/\n/g" | sed 's/"/\n/g' | grep http | grep -v post_comment > mail.txt |
Quatrième étape: Envoyer le mail
| Code: | | /bin/mail -s "Mise a jour des blogs VLR" "Votre_Adresse@mail.com" < mail.txt | Rien de bien magique. Tout a déjà été préparé, y'a juste à envoyer.
| Code: | | mv links.new links.old | On met à jour notre base de connaissances,
afin de pouvoir comparer depuis le nouvel état dans la prochaine itération.
Cinquième étape: Planifier l'exécution.
On rajoute une ligne dans les tâches planifiées.
| Code: | 00 08 * * * /home/user/update.sh >/dev/null
00 20 * * * /home/user/update.sh >/dev/null | On demande une exécution tous les jours à 8h et 20h.
Résumé: Le fichier update.sh complet
| Code: |
#!/bin/bash
rm -f blogs.txt profile mail.txt
echo "Fetching list of friends"
wget http://www.vivelesrondes.com/VotrePseudo/profile
echo "Fetching pages (This could take a while)"
grep '/profile/' profile | head -n1 | sed 's/,/\n/g' | sed 's/\/profile//g' | wget -i - -O blogs.txt --force-html
echo "Querying titles"
grep -E 'http://www.vivelesrondes.com/[A-Za-z0-9]+/[0-9]+/' blogs.txt > links.new
echo "Checking for update"
diff links.old links.new | grep '^> ' | sed 's/^>//g' | sed 's/ /\n/g' | sed "s/'/\n/g" | sed 's/"/\n/g' | grep http | grep -v post_comment > mail.txt
echo "Sending the mail"
/bin/mail -s "Mise a jour des blogs VLR" "Votre.Adresse@Mail.com" < mail.txt
echo "Updating new state"
mv links.new links.old
|
N'oubliez pas de modifier VotrePseudo et Votre.Adresse@Mail.com.
Pour rendre le script exécutable.
Voilà. Il ne vous reste plus qu'à passer sous Linux. |
|
| ^ |
|
 |
momentsdesolitude Vlr Contributeur


Sexe:  Age: 27 Inscrit le: 02 Mar 2008 Messages: 799 Ville Pays: toulouse
Mes vêtements : A vendre (12) Vendus (4)
|
Posté le: Jeudi 22 Mai 10:09 Titre: Surveiller les blogs de vos amis |
|
|
et voila encore un truc où je ne comprend riiiiiien  |
|
| ^ |
|
 |
Amnesis Vlr Vétéran


Sexe:  Age: 28 Inscrit le: 11 Oct 2006 Messages: 5138 Ville Pays: dans mon nid douillet, entre mon canard et ma poussinette...
Mes vêtements : A vendre (1) Vendus (1)
|
Posté le: Jeudi 22 Mai 10:27 Titre: Surveiller les blogs de vos amis |
|
|
niveau intermediaire t'es gentil
je suis donc en dessous de intermediaire  |
|
| ^ |
|
 |
Continent Vlr Nomade


Sexe:  Age: 26 Inscrit le: 08 Aoû 2005 Messages: 272 Ville Pays: Weßling
|
Posté le: Jeudi 22 Mai 15:10 Titre: Surveiller les blogs de vos amis |
|
|
Pourtant j'ai mis un résumé à la fin. Il y a juste à copier-coller, rendre exécutable et le planifier.
Après, personne n'est obligé de comprendre les moindres détails. |
|
| ^ |
|
 |
momentsdesolitude Vlr Contributeur


Sexe:  Age: 27 Inscrit le: 02 Mar 2008 Messages: 799 Ville Pays: toulouse
Mes vêtements : A vendre (12) Vendus (4)
|
Posté le: Vendredi 23 Mai 10:55 Titre: Surveiller les blogs de vos amis |
|
|
| Continent a écrit: | Pourtant j'ai mis un résumé à la fin. Il y a juste à copier-coller, rendre exécutable et le planifier.
Après, personne n'est obligé de comprendre les moindres détails. |
oui c'est sur que c'est pas obligé de comprendre ds les moindres details n'empeche je suis admirative devant ceux qui les comprennent.
en tout les cas merci pour le copié collé je verrais quand j'aurais des amis
momentsdesolitude en mode rémi sans amis  |
|
| ^ |
|
 |
Ocean Vlr Vétéran


Sexe:  Age: 25 Inscrit le: 04 Aoû 2005 Messages: 5401 Ville Pays: au milieu des poissons
Mes vêtements : A vendre (5) Vendus (5)
|
Posté le: Samedi 24 Mai 0:33 Titre: Surveiller les blogs de vos amis |
|
|
| momentsdesolitude a écrit: | | Continent a écrit: | Pourtant j'ai mis un résumé à la fin. Il y a juste à copier-coller, rendre exécutable et le planifier.
Après, personne n'est obligé de comprendre les moindres détails. |
oui c'est sur que c'est pas obligé de comprendre ds les moindres details n'empeche je suis admirative devant ceux qui les comprennent.
en tout les cas merci pour le copié collé je verrais quand j'aurais des amis
momentsdesolitude en mode rémi sans amis  |
Tu peux rajouter dans la section "gérer mes contacts" des blogs de personnes que tu souhaites suivre régulièrement tu sais.  |
|
| ^ |
|
 |
momentsdesolitude Vlr Contributeur


Sexe:  Age: 27 Inscrit le: 02 Mar 2008 Messages: 799 Ville Pays: toulouse
Mes vêtements : A vendre (12) Vendus (4)
|
Posté le: Lundi 26 Mai 0:22 Titre: Surveiller les blogs de vos amis |
|
|
merci Océan  |
|
| ^ |
|
 |
|