Je construis une extension de Mozilla Thunderbird qui fait une traduction de messages. J'aimerais ajouter une fonctionnalité de pièce jointe, bien que j'éprouve quelques difficultés à accéder au contenu de chaque pièce jointe. En ce moment, je suis accroché dans la popup attachmentListContext
, et j'ai du code qui rassemble l'adresse URI et les URL de la pièce jointe. Comment accéder aux données binaires de chaque pièce jointe pertinente?Comment puis-je obtenir le contenu d'une pièce jointe dans une extension Mozilla Thunderbird?
code actuel pour obtenir des pièces jointes sélectionnés
handleAttachmentTranslate : function() {
// see code in msgHeaderViewOverlay.js in Thunderbird source
var attachmentList = document.getElementById('attachmentList');
var selectedAttachments = new Array();
for (var i in attachmentList.selectedItems) {
var attachment = attachmentList.selectedItems[i].attachment;
// we can now access attachment.url or attachment.uri, etc
selectedAttachments.push(attachment.url);
// or (ideally)
// alert(this.translate(getData(attachment.url)))
// but what is getData()?
}
},
Ok. J'ai regardé le code FiltaQuilla, il n'extrait pas les pièces jointes, donc ce n'est pas pertinent. – minghua
La page pointée par speedball2001 indique une idée mais il n'y a pas d'exemple de code. Après avoir regardé les références de 'nsIIOService.newChannelFromURI()', 'nsIChannel.asyncOpen()', 'nsIStreamListener', il ressemble à quelque chose de similaire à' nsIMsgMessageService.streamMessage() 'est nécessaire pour gérer l'accumulation de contenu. Voir l'exemple sous 'streamMessage()'. Cependant, on ne sait pas exactement comment le code peut être. – minghua
Mise à jour le 25 avril: La page affichée par speedball2001 a maintenant un exemple complet, et un lien vers une vraie démo. – minghua