Mercredi 27 05 2020 - lmichel/vo-grimoire GitHub Wiki

Mercredi 27/05/2020

Activités Réalisées :

  • Diminution des problèmes d'encodages
  • Génération de l'archive mbox de tout les mails avec pièces jointes de test
  • Récupération des fichiers en Javascript
  • Ajout d'un lien de téléchargement
  • Prise en charge pour l'instant des types de fichiers test (à agrandir)

Approfondissement Activités :

Diminution des problèmes d'encodages :

En travaillant sur l'indexage, j'ai rencontré encore une fois,(pour changer), des erreurs avec l'encodage, j'ai donc recherché dans la documentation un moyen de savoir l'encodage d'un mail, il s'avère qu'il y'a un attribut qui le spécifie.

Je le stocke donc dans une variable temporaire et je fais une sorte de switch en python, donc une succession de if,else pour décoder au plus juste le mail.

Même si pour l'instant je ne vois plus de gros problèmes, il se peut que quand je re-teste sur toutes les mailing lists, je doive revenir corriger quelque chose.

Génération de l'archive mbox de tout les mails avec pièces jointes de test

M. Michel m'ayant envoyé plusieurs mails de test qui contiennent chacun un exemple de pièce jointe pour chaque format : txt, java, javascript

Je suis passé par un plugin de thunderbird pour générer un fichier mbox contenant tout ces mails afin déjà de les tester avec mon programme et puis de mettre sur github les dictionnaires retournés par mon programme pour chaque mail.

Ajout d'un lien de téléchargement

J'ai ajouté une méthode dans le javascript du site pour permettre à la personne de télécharger la pièces jointe d'un mail.

Il a fallu pour ça que je récupère le champ "attachements" de chaque mail, je le parcours et pour chaque pièce jointe je génère une balise que j'ajoute au contenu du mail.

En mettant le nom du fichier (format+date) plus l'extension dans l'attribut download, je définit par défaut le nom du fichier et son extension lors du téléchargement.

Pour l'attribut href, c'est plus délicat, chaque pièce-jointe est encodée dans un format que je dois retrouver pour pouvoir retransformer son contenu et le télécharger.

Voici un exemple :

Ici data spécifie qu'on décode un fichier (chaîne de caractères), application/pdf spécifie le type MIME de la pièce jointe, "base64" est l'encodage du fichier, encodeURI encode le fichier pour le télécharger.

Le problème étant de savoir quant utiliser base64 ou utf-8, malheureusement je n'ai pas trouvé de meilleure solution de tester cas par cas leur encodage.

J'ai donc deux dictionnaires javascript qui pour l'un retourne l'extension pour un MIME format, et l'autre associe à un type MIME l'encodage nécessaire pour avoir un fichier opérationnel.

Prise en charge pour l'instant des types de fichiers test (à agrandir)

Comme spécifié au-dessus, les dictionnaires ne sont pour l'instant constitués que des formats et MIME types des mails de test que j'ai reçu de la part de M. Michel.

Il faudra par la suite vérifier si d'autres pièces jointes de type différent sont présentes dans les archives.

Commentaires Personnels :

Les problèmes d'encodage sont vraiment une épine dans le pied car ils changent pour chaque mail et corriger un cas peut ne pas marcher pour l'autre etc...

Je suis content néanmoins d'avoir réussi à faire le téléchargement d'un fichier, ce qui m'a permis notamment d'écouter un magnifique morceau de musique fourni par M. Michel

Objectifs :

Ajouter un champ qui contient l'ensemble des types de pièces jointes du mail, ce qui permettra par la suite de rechercher des mails ayant des pièces jointes