dimanche 27 mars 2011

Thunderbird - Gestion des pièces jointes - bis

Un problème se présente à l'utilisation : Comme mamie se sert bien de son e-mail et que c'est sympa de lui envoyer des photos par mail, tout le monde le fait! Résultat son dossier Photos est plein de photo rangées n'importe comment! (N.B: les photos reçues par mails sont copiées automatiquement dans son dossier "Photos" voir : Gestion des pièces jointes )

Or, quand mamie veut retrouver la dernière photo qu'on lui a envoyé, elle est obligée de parcourir tout le dossier pour tomber dessus. Ne trouvant pas ça très pratique, Mamie m'a demandé si c'était possible que les photos soit classées dans l'ordre où elle les reçoit.

Bon, avec Attachement Extractor, normalement il y a une possibilité pour renommer les pièces jointes mais ça n'a pas l'air de marcher. Et je ne sais pas si ça le fait avec la routine d'extraction automatique.
Donc, comme à chaque fois, si l'ordinateur ne fait pas ce qu'on veut, il suffit d'écrire un petit script bash pour le faire marcher à la baguette! 

- Oh non pas un script horrible de la mort qui tue qu'on comprends rien :-(
- Mais non, t'inquiète le script fait que 3 lignes
- Ah c'est cool alors :-)
- Mais non, t'inquiète, il y a une ligne qui est vraiment horrible! Gnak! Gnak! Gnak!!!
- Ca m'aurait étonné ...  :-(


Donc comme promis voici le petit script :
Code:
#!/bin/bash
sleep 30
cd ~/Photos/.renommer
rename 's/^/use POSIX qw(strftime);strftime("%Y-%m-%d_", localtime(time))/e' *
mv * ~/Photos
exit 0;

Explication :
1) Avec cd on se met dans le bon répertoire : les photos extraitent du mail sont envoyées dans le dossier caché .renommer
2) On utilise la fonction rename pour modifier le nom de la photo. C'est là que ça se complique :
rename 's/ancien nom/nouveau nom/' ficheràrenommer
Le changement de nom se fait avec une expression perl. Et là on fait appel à POSIX pour renvoyer la date du jour.
s permet de substituer l'ancien nom au nouveau nom
l'^ permet de prendre tout les noms en entier
use POSIX bla bla : j'ai pas tout compris, j'ai fait un peu au pif en m'inspirant de trucs trouvés sur internet.
strftime("%Y-%m-%d_", localtime(time) renvoie la date comme ça : 2011-03-27_
le e à la fin, je sais pas ce qu'il fout là
l'* permet d'appliquer le renommage à tous les fichiers contenus dans le dossier.

Au final ça donne nomphoto.jpg > 2011-03-27_nomphoto.jpg

3) mv (move)permet de déplacer la totalité des photos maintenant renommées dans le dossier photos.

Ce script est lancé par le script de notification d'arrivée d'un message sur thunderbird (Gestion des pièces jointes).

Et voilà, maintenant les pièces jointes extraites (photos) sont classées par jour de réception. Les nouvelles pièces jointes seront à la fin du dossier photos (ou au début si on classe le dossier par ordre décroissant ce qui est plus simple pour mamie = elle ouvre le dossier et voit tout en haut les dernières photos).


EDIT : Gérer les différents types de pièces jointes

Le fait de renommer les pièces jointes peut-être l'occasion de les redistribuer dans les différents dossiers de Mamie. En effet, plus ça va, plus les gens lui envoient des trucs différents : photos mais aussi diaporama ppt (ou libreoffice ;-) bien sûr!), vidéo, fichier google earth etc...

Je lui ai donc créé un dossier différent avec une icône différente pour chaque type de fichier. Mais c'est pas très pratique car toutes les pièces jointes arrivent dans le dossier photo.
Là solution est très simple ... si si, vraiment très simple :

Il suffit de rajouter au script précédent une ligne pour chaque type d'extension et utiliser la commande move (mv) pour envoyer chaque type de fichier dans le dossier correspondant.

Comme c'est pour les photos qu'il y a le plus d'extensions différentes, je gère les autres type d'extensions et à la fin j'envoie les fichiers restants dans le dossier photo = *.* ou tout simplement *

Pour le script ça donne ça maintenant :
Code:
#!/bin/bash
sleep 30
cd ~/Photos/.renommer
rename 's/^/use POSIX qw(strftime);strftime("%Y-%m-%d_", localtime(time))/e' *

mv *.wmv ~/Vidéo
mv *.avi ~/Vidéo
mv *.flv ~/Vidéo
mv *.mkv ~/Vidéo
mv *.mp4 ~/Vidéo
mv *.mpg ~/Vidéo
mv *.mpeg ~/Vidéo
mv *.mov ~/Vidéo
mv *.vob ~/Vidéo
mv *.asf ~/Vidéo

mv *.kml ~/Lieux
mv *.kmz ~/Lieux

mv * ~/Photos

exit 0;


Ordinateur pour grand-parents, ordinateur pour papy, ordinateur pour personnes âgée, linux pour mamie, linux pour papy, linux pour personne âgée, linux pour grands-parents.