mercredi 27 juillet 2011

Thunderbird - Gestion des pièces jointes Ter

Aller, pour éviter de surcharger le billet précédent voici ma dernière modif :

Comme me l'a fait remarqué Gyls 29 avec le script de déplacement des pièces jointes dans les dossiers correspondants, les pièces jointes disparaissent de l'affichage à l'écran.

La solution est donc de ne pas déplacer les pièces jointes (commande mv) mais de les copier (commande cp).

Ceci entraîne deux problèmes :
1) ça finit par prendre de la place toutes ces pièces jointes, donc je propose d'effacer le dossier temporaire de renommage des pièces jointes à chaque démarrage de l'ordi.

2) si il y a plusieurs mails à la suite les pièces jointes déjà reçues sont à nouveau renommées  et copiées à nouveau dans le dossier photo ce qui pose problème (redondance des photos)

La solution consiste à copier les photo dans un autre dossier temporaire, les renommer dans ce dossier là puis les déplacer. Ainsi si un autre e-mail arrive les anciennes PJ seront renommées de la même façon que la première fois et donc seront copier pour remplacer celle déjà existante = pas de doublons.

Oulà, c'est vraiment pas super clair mon affaire. Un dessin vaut mieux qu'un long discours :

1) Attachement extractor copie les PJ dans le dossier ".renommer" (Ex: photo1.jpg copiée dans le dossier renommer)
2) Attachement Extractor ouvre les PJ
3) On copie les PJ dans un autre dossier temporaire ".renomer2" (Ex: photo1.jpg dans les dossier .renommer et .renommer2)
4) On renomme les PJ du dossier temporaire n°2 = ".renommer2" en rajoutant la date (Ex: photo1.jpg toujours présente dans le dossier " .renommer" et dans le dossier ".renommer2" elle change de nom et s'appelle 2011_07_28_photo1.jpg. Comme photo1.jpg du dossier ".renommer" n'a pas changée ni de place ni de nom elle est toujours ouverte par Attachment Extractor)
5) On déplace toutes les photos du dossier ".renommer2" vers le dossier de destination "Photos" (Ex: photo1.jpg toujours dans le dossier ".renommer" et 2011_07_28_photo1.jpg dans le dossier "Photos" et le dossier ".renommer2" est maintenant vide.)

Enfin, voilà ce qui se passe si on reçoit un deuxième mail avec un autre PJ :
1) Attachement Extractor copie  la nouvelle pièce jointe photo2.jpg (Ex: dossier ".renommer" contient : "photo1.jpg" et" photo2.jpg" / ".renommer2"=vide / "Photos"=2011_07_28_photo1.jpg)
2) AE ouvre "photo2.jpg"
3) on copie les 2 PJ dans ".renommer2" (la nouvelle = photo2.jpg et l'ancienne = photo1.jpg encore présente dans ".renommer")
4) On renomme les PJ du dossier ".renommer2"  en rajoutant la date.
5) On déplace les 2 PJ dans le dossier "Photos" (Ex: dossier ".renommer2" = 2011_07_28_photo1.jpg + 2011_07_28_photo2.jpg et "Photos"=2011_07_28_photo1.jpg. Comme photo1 a le même nom dans le dossier ".renommer2" et "Photos" celle du dossier" .renommer2" remplace celle du dossier "Photos" et au final il n'y a qu'une copie de photo1 et 1 copie de photo2 dans le dossier "Photos".)

Enfin, au redémarrage de l'ordi on efface le contenu du dossier ".renommer"

RQ 1: je sais c'est pas un dessin, mais bon c'est pas facile à dessiner non plus!
RQ 2 : Dans ma tête ça avait l'air simple mais une fois écrit c'est une solution vraiment toute moche!

Alors comme un bout de code vaut mieux qu'un long discours :

Code pour copie des PJ et renommer:
#!/bin/bash
sleep 30
# sleep 30 permet d'attendre que toutes les PJ soit extraient

#on se place dans le dossier .renommer
cd ~/Photos/.renommer

#on copie toutes (*) les PJ du dossier .renommer dans .renommer2
cp * ~/Photos/.renommer2

#on se place dans le dossier .renommer2
cd ~/Photos/.renommer2
#et on renomme les photos avec la date
rename 's/^/use POSIX qw(strftime);strftime("%Y-%m-%d_", localtime(time))/e' *

#on déplace les différents types de fichiers dans les dossiers correspondants
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;


Code pour effacer le dossier .renommer à chaque démarrage (à lancer par "Applications aux démarrage"):
#!/bin/bash

rm ~/Photos/.renommer/*

exit; 0

Ouf, maintenant ça à l'air de marcher!  Ca nécessite juste deux dossiers cachés qui servent comme dossiers temporaires.

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.