Changeset 7

Show
Ignore:
Timestamp:
03/31/07 13:12:22 (1 year ago)
Author:
simon
Message:

Various fixes, plus the database. At this point we are now indexing mail on read.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/chrome/content/thingle-dbi.js

    r5 r7  
    2525// And set up tables 
    2626function Mail () {};  
    27 databaseClass(Mail, mail, ["message_id", "message", "last_read"]); 
     27databaseClass(Mail, "mail"); 
  • trunk/chrome/content/thingle-indexer.js

    r5 r7  
    66function fixMsgId(simple, mail) { 
    77    var id; var match; 
    8     if (id = simple.header("Message-ID") && (match = id.match(/.*<(.+)>.*/))) 
    9         return match[1]; 
     8    if (id = simple.header("Message-ID")) { 
     9        jsdump("Got message id "+id); 
     10        var match = /.*<(.+)>.*/.exec(id); 
     11        if (match) return match[1]; 
     12    } 
    1013    if (id = mail.messageId) return id; 
    1114    jsdump("Failed to get a decent message ID for "+mail.message); 
  • trunk/chrome/content/thingle-readmail.js

    r5 r7  
    1414    var offset = new Object(); 
    1515    var messageSize = new Object(); 
     16    var is; 
     17    var bodyAndHdr; 
    1618    try{ is = folder.getOfflineFileStream(key,offset,messageSize); } 
    1719    catch(e){ alert("message: "+e.message); } 
     20    var val = messageSize.value - 10; 
    1821    var factory = Components.classes["@mozilla.org/scriptableinputstream;1"]; 
    1922    try{ 
    2023        var sis = factory.createInstance(Components.interfaces.nsIScriptableInputStream); 
    2124        sis.init(is); 
    22         var bodyAndHdr; 
    23         while(sis.available()) { bodyAndHdr += sis.read(2048) } 
     25        while(sis.available() && val > 0) {  
     26            var read = sis.read(val); 
     27            val -= read.length; 
     28            bodyAndHdr += read; 
     29        } 
    2430    } catch(e){ alert("message: "+e.message); } 
    25     newMailContext = { 
     31    var newMailContext = { 
    2632        folder: folder, 
    2733        mail: mail, 
  • trunk/chrome/content/thingle.xul

    r2 r7  
    22<overlay id="thingle" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
    33    <script type="application/x-javascript" src="chrome://thingle/content/js-debug.js" /> 
     4    <script type="application/x-javascript" src="chrome://thingle/content/email-simple.js" /> 
    45    <script type="application/x-javascript" src="chrome://thingle/content/class-dbi.js" /> 
    56    <script type="application/x-javascript" src="chrome://thingle/content/thingle-dbi.js" /> 
    67    <script type="application/x-javascript" src="chrome://thingle/content/thingle.js" /> 
    78    <script type="application/x-javascript" src="chrome://thingle/content/thingle-readmail.js" /> 
     9    <script type="application/x-javascript" src="chrome://thingle/content/thingle-indexer.js" /> 
    810</overlay>