Les Chuck Norris Facts dans votre signature email grâce à FORTUNE

Publié le 29 juillet 2008 par Gnomeinwonderland

Ca y est, j'ai craqué. 2 fois.
A force tomber sur des citations issues des Chuck Norris facts, j'ai fini par lire le TOP 30 qui est désopilant. Craquage n°1.
 
Et là, tout d'un coup, j'ai voulu faire une chose qui m'avait toujours rebuté : mettre en signature de mes emails, au hasard, une de ces "facts". C'est le craquage n°2.
 
De mémoire, il fallait utiliser le logiciel fortune, qui comme tous les logiciels sous Linux ne savent faire que ce qu'ils savent faire ;-)  et en plus, un truc strictement inutile, consommateur de temps-processeur, etc. Un truc, par définition, pratiquement interdit.
 
Une rapide réflexion m'a amené à conclure que fortune devait être ridiculement petit en taille et en impact sur mon ordinateur, car voué à être utilisé une fois tous les quart d'heure en étant appelé par cron, qui de toutes façons est toujours chargé en mémoire (et heureusement encore, tiens...).
 
Alors à l'aide de ma distribution Ubuntu, je me suis lancé dans la découverte de fortune et de la création de signatures automatiques et aléatoires pour envoyer dans mes emails avec Thunderbird. Un p'tit tutoriel sur là-dessus, ça vous dirait ?


Étape 1 : récupérer des fortunes Chuck Norris Facts

"Google est mon ami", et je suis tombé sur l'excellent blog (que je vous recommande) papygeek, et plus particulièrement dans un billet où l'on parle d'un plugin pour Wordpress contenant un fichier de fortunes des Chuck Norris facts.
 
Téléchargez l'archive ZIP du plugin, le fichier pg_fortune.zip, depuis cette page. Profitez-en aussi pour y lire les explications sur le principe de fortune, ça m'évitera de répéter la même chose ou de faire du plagiat  ;-)
 
Ouvrez un terminal, puis rendez-vous là où vous avez déposé le fichier puis dézippez-le :
unzip pg_fortune.zip
Le fichier des fortunes des Chuck Norris Facts se trouve dans le répertoire  pg_fortune/fortunes/ et le fichier s'appelle chuck_norris.

Étape 2 : conversion du fichier de fortunes en UTF-8

Passez en root une bonne fois pour toutes :

sudo -i
<votre mot de passe>

On vérifie ce qu'il y a dedans par un less chuck_norris ce qui donne :

La position "Chuck Norris" a <E9>t<E9> retir<E9>e du kamasutra, elle faisait trop de morts.
%
Il n'y a pas de b<EA>te dans le G<E9>vaudan: c'est juste Chuck Norris qui faisait du camping sauvage.
%
Un jour, une saison a insult<E9> Chuck Norris, il n'y a plus que quatre saisons depuis...
%
Chuck Norris n'a pas particip<E9> <E0> la guerre des boutons. La preuve, il n'y a pas eu de morts.
%
Chuck Norris a tu<E9> sa m<E8>re lors de son premier coup de pied . Il n'<E9>tait pas encore n<E9>.
%
Chuck Norris <E0> une LiveBox qui fonctionne.
[etc.]

On a bien des citations séparées par un signe "%" sur un ligne séparatrice.  Mais on a aussi des caractères bizarres, des <E9> par exemples qui sembles vouloir remplacer le caractère "é". Ça, c'est un quelque chose de classique : le fichier n'a pas été encodé en UTF-8, et utilise un autre charset. C'est un problème, puisque sous Linux Ubuntu, l'UTF-8 est l'encodage par défaut. Il va donc falloir le convertir.
 
Après avoir recherché longtemps une façon élégante (=en ligne de commande) de connaître l'encodage du fichier chuck_norris, je me suis résolu à utiliser l'éditeur Bluefish, que connaissent tous les développeurs web utilisant Linux. Celui-ci me précise que l'encodage utilisé est "windows-1252". Rien que le nom, déjà... ;-)
 
Maintenant il faut s'assurer d'être dans le même répertoire que le fichier chuck_norris, et utiliser iconv.
 
iconv -f windows-1252 -t utf-8 -o fortunes-Chuck-Norris
Maintenant faites un less fortunes-Chuck-Norris
et vous constatez qu'il n'y a plus de problèmes avec les caractères spéciaux, dont les accents.
Déplacez votre fichier converti dans le répertoire officiel des fortunes, donnez-lui des droits appropriés, et rendez-vous dans ce répertoire :
chmod 644 fortunes-Chuck-Norris
chown root.root fortunes-Chuck-Norris
mv fortunes-Chuck-Norris /usr/share/games/fortunes/
cd /usr/share/games/fortunes/ 

Étape 3 : rendre l'accès aléatoire aux citations

Il faut ensuite préparer le fichier pour que son accès soit fait de manière aléatoire, car fortune est un petit logiciel idiot : il ne s'occupe pas de randomiser les citations. Utilisez le programme strfile, qui s'occupe délivrer les données dans un fichier de manière aléatoire quand on y accède :
strfile -r fortunes-Chuck-Norris
maintenant faites un ls -l pour constater que les fichiers de fortune déjà présent on des liens symboliques. Alors on fait de même pour notre fichier de fortunes Chuck Norris :
ln -s fortunes-Chuck-Norris fortunes-Chuck-Norris.u8
Fermez votre session root : exit
et maintenant, faites un  fortune fortunes-Chuck-Norris
 ...pour lire une fortune Chuck Norris Fats au hasard...
 

Étape 4 : générer périodiquement une fortune

Retournez dans votre répertoire home
Si on fait fortune fortunes-Chuck-Norris > signature.txt on obtient le fichier /home/<utilisateur>/signature.txt contenant une fortune Chuck Norris Facts
 
Si je veux générer une nouvelle fortune différente tous les quart d'heures, je dois utiliser cron et lui demander d'utiliser cette commande. Éditez votre crontab
crontab -e
et insérez-y la ligne ci-dessous :
00,15,30,45   *   *   *   *   /usr/games/fortune fortunes-Chuck-Norris > ~/signature.txt
Notez que dans la crontab on  précise le chemin complet des applications, sinon cela risque de poser un problème...
Puis selon que vous utilisez Nano, Vi ou un autre éditeur pour éditer votre crontab, sauvez vos changements puis quittez l'éditeur.
Il faut ensuite relancer le service d'ordonnancement des tâches :  sudo /etc/init.d/cron restart
 
Voila, à partir de maintenant, tous les quart d'heures, j'aurais une nouvelle fortune Chuck Norris Facts dans un fichier /home/<utilisateur>/signature.txt 

Étape 5 : intégrez la signature aléatoire à Thunderbird

...il suffit simplement d'indiquer à Thunderbird que vous souhaitez utiliser le fichier /home/<utilisateur>/signature.txt comme signature des emails que vous envoyez !
Sous Thunderbird - Linux évidemment, sélectionnez votre compte à modifier puis allez dans édition/paramètres des comptes vous trouverez l case à cocher et le champs "Apposer cette signature" :
 
Désignez l'emplacement de votre fichier (pour moi il se trouve ailleurs et porte un autre nom).
Validez tout, écrivez un nouveau message, et... maintenant, tous les quart d'heures, une nouvelle fortune Chuck Norris Facts apparaîtra aléatoirement.
 
Elle est quand-même pas mieux la vie après ça ?  ;-)