This is just some static backup of the original site, don't expect every link to work!

Ignore:
Timestamp:
Nov 3, 2014, 12:35:40 PM (8 years ago)
Author:
rene <rene@…>
Branches:
ng_0.9
Children:
7204cb
Parents:
3c9c29
Message:

code formatting (no code changes)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • content/vI_getHeader.js

    r3c9c29 r509348  
    2727
    2828Components.utils.import("resource://v_identity/vI_nameSpaceWrapper.js");
    29 virtualIdentityExtension.ns(function() { with (virtualIdentityExtension.LIB) {
     29virtualIdentityExtension.ns(function () {
     30  with(virtualIdentityExtension.LIB) {
    3031
    31 Components.utils.import("resource://v_identity/stdlib/msgHdrUtils.js", virtualIdentityExtension);
    32 Components.utils.import("resource://v_identity/vI_prefs.js", virtualIdentityExtension);
    33 let Log = vI.setupLogging("virtualIdentity.getHeader");
     32    Components.utils.import("resource://v_identity/stdlib/msgHdrUtils.js", virtualIdentityExtension);
     33    Components.utils.import("resource://v_identity/vI_prefs.js", virtualIdentityExtension);
     34    let Log = vI.setupLogging("virtualIdentity.getHeader");
    3435
    35 // var storedHeaders = { };
    36 var getHeader = {
    37     unicodeConverter : Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
    38             .createInstance(Components.interfaces.nsIScriptableUnicodeConverter),
     36    // var storedHeaders = { };
     37    var getHeader = {
     38      unicodeConverter: Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
     39        .createInstance(Components.interfaces.nsIScriptableUnicodeConverter),
    3940
    40     headerToSearch : null,
    41    
    42     prefObserverToSearchArray : function() {
    43         var headerList = getHeader.unicodeConverter.ConvertToUnicode(vI.vIprefs.get("smart_reply_headers")).split(/\n/)
    44        
    45         getHeader.headerToSearch = [];
    46        
    47         // prepare headerToSearch for speedup.
    48         for (var index = 0; index < headerList.length; index++) {
    49             var headerToSearch_splitted = headerList[index].split(/:/)
    50             // use first part (all before ':') as the header name
    51             var headerNameToSearch = headerToSearch_splitted[0].toLowerCase()
    52             // check second or third part for any number
    53             var headerNumberToSearch = null;
    54             if (headerToSearch_splitted.length > 1) parseInt(headerToSearch_splitted[1]);
    55             if ((!headerNumberToSearch || isNaN(headerNumberToSearch)) && headerToSearch_splitted.length > 2) headerNumberToSearch = parseInt(headerToSearch_splitted[2]);
    56            
    57             // create header name to store the value
    58             var headerNameToStore = headerNameToSearch;
    59             if (headerNumberToSearch && !isNaN(headerNumberToSearch)) headerNameToStore += ":" + headerNumberToSearch
    60            
    61             getHeader.headerToSearch.push({ headerNameToSearch : headerNameToSearch, headerNumberToSearch : headerNumberToSearch,
    62                     headerNameToStore : headerNameToStore });
    63         }
    64     },
     41      headerToSearch: null,
    6542
    66     getHeader: function() {
    67       vI.clearDebugOutput();
    68       if (!getHeader.headerToSearch) getHeader.prefObserverToSearchArray()
    69      
    70       vI.msgHdrGetHeaders(getHeader.hdr, function (aHeaders) {
    71         let label = "";
    72         if (aHeaders.has("list-id")) {
    73           getHeader.hdr.setStringProperty("vI_list-id","found");
    74           Log.debug("found header: list-id  ...stored to recognize mailing-list");
     43      prefObserverToSearchArray: function () {
     44        var headerList = getHeader.unicodeConverter.ConvertToUnicode(vI.vIprefs.get("smart_reply_headers")).split(/\n/)
     45
     46        getHeader.headerToSearch = [];
     47
     48        // prepare headerToSearch for speedup.
     49        for (var index = 0; index < headerList.length; index++) {
     50          var headerToSearch_splitted = headerList[index].split(/:/)
     51            // use first part (all before ':') as the header name
     52          var headerNameToSearch = headerToSearch_splitted[0].toLowerCase()
     53            // check second or third part for any number
     54          var headerNumberToSearch = null;
     55          if (headerToSearch_splitted.length > 1) parseInt(headerToSearch_splitted[1]);
     56          if ((!headerNumberToSearch || isNaN(headerNumberToSearch)) && headerToSearch_splitted.length > 2) headerNumberToSearch = parseInt(headerToSearch_splitted[2]);
     57
     58          // create header name to store the value
     59          var headerNameToStore = headerNameToSearch;
     60          if (headerNumberToSearch && !isNaN(headerNumberToSearch)) headerNameToStore += ":" + headerNumberToSearch
     61
     62          getHeader.headerToSearch.push({
     63            headerNameToSearch: headerNameToSearch,
     64            headerNumberToSearch: headerNumberToSearch,
     65            headerNameToStore: headerNameToStore
     66          });
    7567        }
    76         if (aHeaders.has("received")) {
    77           getHeader.hdr.setStringProperty("vI_received","found");
    78           Log.debug("found header: received  ...stored to recognize received mail");
    79         }
    80         if (aHeaders.has("content-base")) {
    81           getHeader.hdr.setStringProperty("vI_content_base","found");
    82           Log.debug("found header: content-base  ...stored to recognize blog/news-feed");
    83         }
    84         for (let index = 0; index < getHeader.headerToSearch.length; index++) {
    85           let {headerNameToSearch: headerNameToSearch, headerNumberToSearch: headerNumberToSearch,
    86             headerNameToStore: headerNameToStore} = getHeader.headerToSearch[index];
    87           if (aHeaders.has(headerNameToSearch)) {
    88             let value = "";
    89             let values = aHeaders.getAll(headerNameToSearch);
    90             if (!headerNumberToSearch || isNaN(headerNumberToSearch))
    91               for (let i = 0; i < values.length;)
    92                 value += ((value)?(", "):("")) + values[i++];
    93             else value = values[headerNumberToSearch-1];
    94             if (value) {
    95               getHeader.hdr.setStringProperty("vI_" + headerNameToStore,
    96                 getHeader.unicodeConverter.ConvertFromUnicode(value) + getHeader.unicodeConverter.Finish());
    97              
    98               let storedValue = getHeader.hdr.getProperty("vI_" + headerNameToStore);
    99               let storedConvValue = getHeader.unicodeConverter.ConvertToUnicode(storedValue);
    100              
    101               Log.debug("found header: " + headerNameToStore +
     68      },
     69
     70      getHeader: function () {
     71        vI.clearDebugOutput();
     72        if (!getHeader.headerToSearch) getHeader.prefObserverToSearchArray()
     73
     74        vI.msgHdrGetHeaders(getHeader.hdr, function (aHeaders) {
     75          let label = "";
     76          if (aHeaders.has("list-id")) {
     77            getHeader.hdr.setStringProperty("vI_list-id", "found");
     78            Log.debug("found header: list-id  ...stored to recognize mailing-list");
     79          }
     80          if (aHeaders.has("received")) {
     81            getHeader.hdr.setStringProperty("vI_received", "found");
     82            Log.debug("found header: received  ...stored to recognize received mail");
     83          }
     84          if (aHeaders.has("content-base")) {
     85            getHeader.hdr.setStringProperty("vI_content_base", "found");
     86            Log.debug("found header: content-base  ...stored to recognize blog/news-feed");
     87          }
     88          for (let index = 0; index < getHeader.headerToSearch.length; index++) {
     89            let {
     90              headerNameToSearch: headerNameToSearch,
     91              headerNumberToSearch: headerNumberToSearch,
     92              headerNameToStore: headerNameToStore
     93            } = getHeader.headerToSearch[index];
     94            if (aHeaders.has(headerNameToSearch)) {
     95              let value = "";
     96              let values = aHeaders.getAll(headerNameToSearch);
     97              if (!headerNumberToSearch || isNaN(headerNumberToSearch))
     98                for (let i = 0; i < values.length;)
     99                  value += ((value) ? (", ") : ("")) + values[i++];
     100              else value = values[headerNumberToSearch - 1];
     101              if (value) {
     102                getHeader.hdr.setStringProperty("vI_" + headerNameToStore,
     103                  getHeader.unicodeConverter.ConvertFromUnicode(value) + getHeader.unicodeConverter.Finish());
     104
     105                let storedValue = getHeader.hdr.getProperty("vI_" + headerNameToStore);
     106                let storedConvValue = getHeader.unicodeConverter.ConvertToUnicode(storedValue);
     107
     108                Log.debug("found header: " + headerNameToStore +
    102109                  " - stored as '" + storedConvValue + "'");
    103               label += (label)?"\n":""
    104               label += headerNameToStore + ":\t" + storedConvValue
     110                label += (label) ? "\n" : ""
     111                label += headerNameToStore + ":\t" + storedConvValue
     112              }
    105113            }
    106114          }
    107         }
    108         vI.GetHeaderNotification.info(label);
    109       });
    110     },
    111    
    112     setupEventListener: function() {
    113         getHeader.unicodeConverter.charset = "UTF-8";
    114        
     115          vI.GetHeaderNotification.info(label);
     116        });
     117      },
     118
     119      setupEventListener: function () {
     120        getHeader.unicodeConverter.charset = "UTF-8";
     121
    115122        // read headers later if msg is loaded completely - this ensures compatibility to Thunderbird Conversation
    116123        getHeader.orig_OnMsgLoaded = OnMsgLoaded;
    117124        OnMsgLoaded = getHeader.OnMsgLoaded;
    118125
    119     },
    120    
    121     OnMsgLoaded: function(url) {
    122         const Cc = Components.classes;
    123         const Ci = Components.interfaces;
    124         // Necko URL, so convert it into a message header
     126      },
     127
     128      OnMsgLoaded: function (url) {
     129        const Cc = Components.classes;
     130        const Ci = Components.interfaces;
     131        // Necko URL, so convert it into a message header
    125132        let ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
    126133        var neckoURL = ioService.newURI(null, null, url.baseURI);
    127         neckoURL.QueryInterface(Ci.nsIMsgMessageUrl);
    128        
    129         getHeader.hdr = neckoURL.messageHeader;
    130         if (getHeader.hdr) getHeader.getHeader();
     134        neckoURL.QueryInterface(Ci.nsIMsgMessageUrl);
     135
     136        getHeader.hdr = neckoURL.messageHeader;
     137        if (getHeader.hdr) getHeader.getHeader();
    131138        getHeader.orig_OnMsgLoaded(url);
    132     }
    133 }
     139      }
     140    }
    134141
    135142
    136 var prefObserver = {
    137     unicodeConverter : Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
    138             .createInstance(Components.interfaces.nsIScriptableUnicodeConverter),
    139            
    140     observer_added : false,
    141    
    142     init : function() {
    143       vI.vIprefs.addObserver("smart_reply_headers", this.observe, this);
    144     },
    145    
    146     cleanup : function() {
    147       let self = this;
    148       vI.vIprefs.removeObserver("smart_reply_headers", self.observe);
    149     },
    150    
    151     observe: function(self, subject, topic, data) {
    152         if (topic == "nsPref:changed") {
    153             // remove (old) prepared headerArray
    154             getHeader.headerToSearch = null;
    155             ReloadMessage();
    156         }
    157     },
     143    var prefObserver = {
     144      unicodeConverter: Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
     145        .createInstance(Components.interfaces.nsIScriptableUnicodeConverter),
    158146
    159 }
    160 addEventListener('messagepane-loaded', getHeader.setupEventListener, true);
    161 window.addEventListener("load", function(e) { prefObserver.init(); }, false);
    162 window.addEventListener("unload", function(e) { prefObserver.cleanup(); }, false);
    163 // vI.storedHeaders = storedHeaders;
    164 }});
     147      observer_added: false,
     148
     149      init: function () {
     150        vI.vIprefs.addObserver("smart_reply_headers", this.observe, this);
     151      },
     152
     153      cleanup: function () {
     154        let self = this;
     155        vI.vIprefs.removeObserver("smart_reply_headers", self.observe);
     156      },
     157
     158      observe: function (self, subject, topic, data) {
     159        if (topic == "nsPref:changed") {
     160          // remove (old) prepared headerArray
     161          getHeader.headerToSearch = null;
     162          ReloadMessage();
     163        }
     164      },
     165
     166    }
     167    addEventListener('messagepane-loaded', getHeader.setupEventListener, true);
     168    window.addEventListener("load", function (e) {
     169      prefObserver.init();
     170    }, false);
     171    window.addEventListener("unload", function (e) {
     172      prefObserver.cleanup();
     173    }, false);
     174    // vI.storedHeaders = storedHeaders;
     175  }
     176});
Note: See TracChangeset for help on using the changeset viewer.