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.

4 commentaires:

  1. En fait si je comprends bien le soucis de base et sa chronologie :
    1- autoextract enregistre les pièces jointes
    2- autoextract ouvre les fichiers qu'il vient d'enregistrer
    3- le script renomme le fichier ouvert donc il se ferme
    4- le script déplace le nouveau fichier

    ce qu'il faudrait faire :
    1- autoextract enregistre les pièces jointes
    2- le script renomme le fichier ouvert donc il se ferme
    3- le script déplace le nouveau fichier
    4- le script ouvre le nouveau fichier à son nouvel emplacement.

    2 soucis :
    # je ne sais pas comment ouvrir un fichier à l'aide du script
    # je ne vois pas comment n'ouvrir que les derniers fichiers arrivés sans faire une liste mais autoextract le fait donc c'est jouable.

    Autre solution :
    1- autoextract enregistre les pièces jointes
    2- le script renomme le fichier ouvert donc il se ferme
    3- le script déplace le nouveau fichier
    4- Un script ouvre les fichiers à partir du mail qui lui n'a pas bougé (mais dans ce cas c'est une extension de TB ou une modif d'autoextract)

    RépondreSupprimer
  2. Salut,
    Je viens de tomber par hasard sur ton site et on peut dire qu'il est extra (je l'ai dévoré) !!!

    Je cherchais justement de telles informations, il y a de cela environ un an pour des parents qui souhaitaient se mettre a l'informatique (pour les memes raisons).

    Le projet avait été remis dans les cartons mais maintenant y a plus qu'a...

    Encore bravo pour cet excellent boulot !

    RépondreSupprimer
  3. Autre remarque sur ce script, j'ai eu un problème sur la case des extensions.
    Il a fallut que je rajoute des lignes avec les majuscules :
    jpg et JPG

    RépondreSupprimer
  4. au lieu de mv ou cp tu peux utiliser ln , dans ce cas le fichier est reelment à deux endroits à la fois.

    RépondreSupprimer