Forums : Les possiblités de la plateforme Mozilla

Aller à la discussion :  Plus récente Plus ancienne

# Extension pour compresser automatiquement les PJ

Envoyé par : cameleon

Date : 18/08/2006 11:12

Bonjour, Depuis quelques années que je suis le developpement des produits mozilla et que je participe au forum geckozone, j'envisage de franchir une étape supplémentaire en créant ma 1ere extension. Ne connaissant encore pas grand chose à XUL, je souhaite savoir si c'est possible ;)

Voici la description du projet :

Résumé: Créer une extension pour thunderbird permettant de compresser automatiquement les pièces jointes

Liste des taches : 1/ Créer une fenêtre qui s'affiche lors d'un évenement

2/ Afficher cette fenêtre après le choix d'un fichier à attacher (par le bouton joindre ou par glisser/déposer)

3/ Afficher cette fenêtre seulement si la taille du fichier dépasse celle inscrite dans une variable utilisateur.

4/ Facultatif : Empecher de joindre un fichier si sa taille dépasse une taille critique (spécifiée dans une variable utilisateur)

5/ Appeler 7zip grace une ligne de commande (fichier *.bat) si le fichier dépasse la taille spécifiée. Compresser le fichier dans un repertoire temporaire et le joindre à la place du fichier initialement demandé par l'utilisateur.

6/ Afficher une fenêtre de réglage d'options permettant de spécifier les paramètres de compression. A prévoir :

  • taille limite pour compresser
  • fichiers à exclure (jpeg, png, zip,...)
  • type d'archive (7z, zip,...)

REQUIS :

  • pouvoir faire appel aux commandes en ligne avec XUL pour compresser la pièce jointe au moment où elle est jointe
  • pouvoir remplacer la PJ choisie par l'utilisateur par une autre (la même mais compressée)
  • pouvoir fonctionner aussi bien selon que l'utilisateur utilise la fonction "joindre" ou le glisser/déposer.

QUESTION : Est ce que les requis ci-dessus sont ateignable avec XUL?

# Re: Extension pour compresser automatiquement les PJ

Envoyé par : Zmx

Date : 18/08/2006 11:34

1) appel au commande en ligne: C'est possible, mais je ne pense pas que cela soit une bonne idée (dépendant de l'os, et de la config de l'os 2) Cela me semble tous a fait possible "aprioris" 3) idem que la reponse 2

Pour le 1, il me semble bien que mozilla "sait" gerer le zip (au moins un petit peu) en natif, vu qu'il peux lire des pages web dont le content a été gziped. Cela serais bcp plus portable que d'utiliser la ligne de commande ainsi que 7zip

# Re: Extension pour compresser automatiquement les PJ

Envoyé par : cameleon

Date : 18/08/2006 11:42

Si il existe une autre solution que le passage par 7zip, je suis intéressé! Sinon, comme 7zip est libre, c'est déjà un moindre mal ;), même si cela oblige à utiliser windows...

Cependant, si quelqu'un a de plus amples informations pour la façon de procéder, je suis intéressé. En particulier, quelle fonction permet d'appeler une ligne de commande?

# Re: Extension pour compresser automatiquement les PJ

Envoyé par : Zmx

Date : 18/08/2006 14:33

Désolé :/

Apres avoir chercher un peu, j'ai bien trouvé un XPCOM pour lire les fichier Zip, mais pas les ecrire...

Pour la commande line, je pense qu'il faille faire ton propre XPCOM (mais ça reste du domaine du possible) et si jamais tu veux faire ton propre XPCOM, autant en fair un qui zip ;)

# Re: Extension pour compresser automatiquement les PJ

Envoyé par : laurentj

Date : 18/08/2006 15:40

pouvoir faire appel aux commandes en ligne avec XUL pour compresser la pièce jointe au moment où elle est jointe

il me semble qu'il y a un xpcom pour executer un programme externe.

Pour le problème de la plateforme : il faut absolument que le nom du programme soit paramètrable (voir même en fait, la ligne de commande).

pouvoir remplacer la PJ choisie par l'utilisateur par une autre (la même mais compressée)

Le fichier doit être stocké sur le disque, dans un repertoire temporaire.

Par contre, il va falloir voir l'api que propose thunderbird dans la fenêtre de création d'un message.

pouvoir fonctionner aussi bien selon que l'utilisateur utilise la fonction "joindre" ou le glisser/déposer.

Idem que la précédente. Faut étudier l'api dans cette fenêtre, pour capturer le glisser/déposer et la fonction joindre...

Une autre solution, beaucoup plus simple (mais moins automatique): rajouter dans l'interface (avec un overlay), deux boutons en dessous de la liste. Quand on clique dessus, ça récupère les fichiers séléctionnés dans la liste et les compresse un à un (on peut ne pas vouloir compresser toutes les pièces jointes). Un deuxième bouton "tout compresser", et il prend tous les fichiers de la liste et les compressent tous sans exceptions.

Il faudra prendre en compte bien sûr les pièces jointes déjà compressés (en jar, zip, tar.gz etc..), pour ne pas avoir à les compresser une deuxième fois.

# Re: Extension pour compresser automatiquement les PJ

Envoyé par : cameleon

Date : 18/08/2006 19:11

Bon merci pour ces premières réponses... Donc, à la rentrée, je me mets à XUL. On verra bien si ça donne quelque chose!

En attendant, j'ai encore quelques vacances dont je vais profiter dès demain avant de me pencher sur cette question. En tout cas, merci et bravo pour la réactivité!

# Re: Extension pour compresser automatiquement les PJ

Envoyé par : cameleon

Date : 02/09/2006 12:13

Salut, Bon, la rentrée est arrivé, je me suis documenté sur votre site et à droite à gauche (en decorticant le code de AttachmentSize nottament), et malheureusement je renonce à développer cette extension. En effet, je ne connait rien au javascript et au XUL, et je ne pense pas avoir suffisament de temps à consacrer à ces apprentissages pour le moment.

Quoi qu'il en soit, bravo pour votre site, ça donne envie de s'y mettre! Si quelqu'un se sent de reprendre l'affaire, il aura tous mes encouragements ;)

Bonne continuation, Vincent

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.