gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] gzz/gzz/modules/email converter.py


From: Marc Schiereck
Subject: [Gzz-commits] gzz/gzz/modules/email converter.py
Date: Tue, 31 Dec 2002 14:43:35 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Marc Schiereck <address@hidden> 02/12/31 14:43:35

Modified files:
        gzz/modules/email: converter.py 

Log message:
        Backup of changed header lines

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/modules/email/converter.py.diff?tr1=1.15&tr2=1.16&r1=text&r2=text

Patches:
Index: gzz/gzz/modules/email/converter.py
diff -u gzz/gzz/modules/email/converter.py:1.15 
gzz/gzz/modules/email/converter.py:1.16
--- gzz/gzz/modules/email/converter.py:1.15     Mon Dec 30 17:47:38 2002
+++ gzz/gzz/modules/email/converter.py  Tue Dec 31 14:43:35 2002
@@ -46,9 +46,36 @@
     return result
 
 def replaceHeaderLine(header, field, replacement):
-    result = delHeaderLines(header, [field])
-    result.append(replacement)
+    result = []
+    delLines = 0
+    foundField = 0
+    tField = []
+    field = field.lower()
+    replaced = 0
+
+    for line in header:
+        tline = line.lower()
+        if tline[:len(field)] == field:
+            foundField = 1
+            replaced = 1
+        if foundField:
+            foundField = 0
+            delLines = 1
+            #tField = [replacement]
+            tField.append('X-Gzzmo-OH-' + line)
+        elif not (delLines and line[0] == ' '):
+            result += tField
+            if delLines: result.append(replacement)
+            result.append(line)
+            delLines = 0
+            tField = []
+        else:
+            tField.append(line)
+
+    if not replaced:
+        result.append(replacement)
     return result
+  
 
 def transformHeader(header, bodyID):
     """Transforms message header to a message/external-body header
@@ -62,11 +89,9 @@
     
     header = replaceHeaderLine(header, 'Content-Transfer-Encoding',
                                'Content-Transfer-Encoding: binary\r\n')
-    header = replaceHeaderLine(header, 'Content-ID', 'Content-ID: ' + idstring 
+ '\r\n\r\n')
-    #headers = delHeaderLines (header, ['Content-Transfer-Encoding'])
-    #result = result + headers
-    #result.append('Content-Transfer-Encoding: binary\r\n')
-    #result.append('Content-ID: ' + idstring + '\r\n\r\n')
+    header = replaceHeaderLine(header, 'Content-ID', 'Content-ID: ' + idstring 
+ '\r\n')
+    header.append('\r\n')
+    print header
     return result + header
 
 def getCharset(msg):
@@ -75,12 +100,6 @@
     else:
         return msg.getparam("charset") 
 
-    #for param in msg.getplist():
-    #    if param[0:7] == 'charset':
-#            return param[8:] 
-#
- #   return "us-ascii"
-
 def getContentTypeParams(msg):
     ctparams  = []
     for param in msg.getplist():
@@ -130,16 +149,10 @@
 
         headerData += '--' + msg.getparam("boundary") + '--\r\n\r\n'
         id2 = mediaserver.addDatum(headerData, headerLinesH, None, 0)
-        #eis = gzz.modules.email.DefaultEmailInStorm(mediaserver, id2)
         if isReconstructable(mediaserver, id2, tempstore):
             mediaserver.expungeDatum(tempstore)
         else:
             id2 = tempstore
-
-        #print eis.getSubject().makeString(), ": ", id2.getString()
-        #print "----"
-        #print eis.getBody().makeString()
-        #print "----"
     else:
         headerLinesH = java.util.ArrayList()
         headerLinesB = java.util.ArrayList()
@@ -159,12 +172,6 @@
             mediaserver.expungeDatum(tempstore)
         else:
             id2 = tempstore
-
-        #eis = gzz.modules.email.DefaultEmailInStorm(mediaserver, id2)
-        #print eis.getSubject().makeString(), ": ", id2.getString()
-        #print "----"
-        #print eis.getBody().makeString()
-        #print "----"
     mail.close()
     tMail.close()
     return id2
@@ -172,8 +179,6 @@
 def isConvertible(body, charset):
     cBody = ""
     print "Charset: ", charset
-    #if charset == None:
-    #    charset = "us-ascii"
     try:
         cBody = java.lang.String(body, charset);
     except java.io.UnsupportedEncodingException:
@@ -188,30 +193,33 @@
     return 1
 
 def isReconstructable(mediaserver, msid, recid):
+    print "==>isReconstructable"
     mail = str(java.lang.String(mediaserver.getDatum(msid).getBytes(), 
"us-ascii"))
     #mail = StringIO.StringIO(mail)
     #msg  = mimetools.Message(mail)
     t = java.lang.String(mediaserver.getDatum(recid).getBytes(), "UTF8")
     
-    rec = ""
     try:
-        #reconstruct(mail, mediaserver, msid, 0)
+        rec = reconstruct(mail, mediaserver, msid, 0)
         #print "--------\n-------\n%s-------\n--------\n" % \
         #      msgZip (reconstruct(mail, mediaserver), str(t))
-        None
-    except:
-        print "Reconverting failed."
+        #None
+    except java.lang.Throwable, var: 
+        print var
+        print "\tReconverting failed."
         return 1
     
+    maker = gzz.media.impl.Enfilade1DImpl.Enfilade1DImplMaker()
+    rec1 = maker.makeEnfilade(rec)
+    print rec1.makeString()
+
+    print 
"==================================================================================="
 #    print "\t\t\t", msg.getparam("access-type")
 #    if msg.gettype() == "message/external-body" and 
string.lower(msg.getparam("access-type")) == "x-storm":
 #        id = msg.getparam("block")[len("storm:block:"):]
 #        id = gzz.mediaserver.Mediaserver.Id(id)
     
-    #print "Reconstruct==>"
-    #print msg
-    #print "<==Reconstruct"
-    #mail.close()
+    print "<==isReconstructable"
     return 1
 
 def msgZip(msg1, msg2):
@@ -226,47 +234,72 @@
     return ret
 
 def reconstruct(mail, mediaserver, msid, pos):
+    print "==>reconstruct"
     mail    = StringIO.StringIO(mail)
     msg     = mimetools.Message(mail)
     type    = msg.gettype()
-    msgData = []
+    msgData = java.util.ArrayList()
 
     if type == "message/external-body" and 
string.lower(msg.getparam("access-type")) == "x-storm":
-        pts  = PermanentTextScroll(ms, msid)
+        print "\tmessage/external-body"
+        pts  = gzz.media.impl.PermanentTextScroll(mediaserver, msid)
         id   = msg.getparam("block")[len("storm:block:"):]
         id   = gzz.mediaserver.Mediaserver.Id(id)
-        t    = java.lang.String(mediaserver.getDatum(id).getBytes(), "UTF8")
-        save = msg.fp.read() + str(t)
+        pts1 = gzz.media.impl.PermanentTextScroll(mediaserver, id)
 
-        msgData.append(pts.getSpan(pos, len(save)))
+        reconstructHeader(pts, msg.fp.read(), pos + len(str(msg)) + 2, msgData)
+        msgData.add(pts1.getCurrent())
     elif type[:10] == "multipart/":
+        print "\tmultipart/"
+        pts  = gzz.media.impl.PermanentTextScroll(mediaserver, msid)
+        pos = len(str(msg)) + 2
+        #msgData.add(pts.getSpan(0, pos))
+        #reconstructHeader(pts, str(msg), pos, msgData)
+
         mulmsg = multifile.MultiFile(mail, 0)
         mulmsg.push(msg.getparam("boundary"))
 
         boundary = "--%s" % msg.getparam("boundary")
-        msgData.append(PermanentTextScroll(boundary).getCurrent())
+        #msgData.add(pts.getSpan(pos, len(boundary) + 2))
         #msgData = "--%s" % msg.getparam("boundary") 
 
         while mulmsg.next():
-            submsg = mimetools.Message(mulmsg)
-            msgSpan = reconstruct(str(submsg) + submsg.fp.read(), mediaserver, 
msid, pos + len(boundary))
-            msgData.append(msgSpan)
-
+           #msgData.add(pts.getSpan(pos, len(boundary)))
+           submsg = mimetools.Message(mulmsg)
+           #msgData.addAll(reconstruct(str(submsg) + submsg.fp.read(), 
mediaserver, msid, pos + len(boundary)))
+           #msgData.add(msgSpan)
+        
         #msgData += "--%s--" % msg.getparam("boundary") 
-        msgData.append(PermanentTextScroll("--%s--" % 
msg.getparam("boundary")).getCurrent())
+
+        #msgData.add(gzz.media.impl.PermanentTextScroll("--%s--" % 
msg.getparam("boundary")).getCurrent())
     else:
-        msgData = str(msg) + '\r\n' + msg.fp.read()
+        print "==="
+        print str(msg)
+        print "==="
+        pts = gzz.media.impl.PermanentTextScroll(mediaserver, msid)
+        msgData.add(pts.getCurrent())
+        #str(msg) + '\r\n' + msg.fp.read()
+        #msgData = str(msg) + '\r\n' + msg.fp.read()
 
+    print "<===="
     mail.close()
+    #maker = gzz.media.impl.Enfilade1DImpl.Enfilade1DImplMaker()
+    print "<==reconstruct"
+    #return maker.makeEnfilade(msgData)
+
     return msgData
 
+def reconstructHeader(pts, header, pos, msgData):
+    msgData.add(pts.getSpan(pos, pos + len(header)))
+
 def storeBody(mediaserver, msg, body, msgID):
+    print "==>storeBody"
     msgtype = msg.gettype()
     ctparams = getContentTypeParams(msg)
     cbodyid = None
-    print msgID
+    print "\t", msgID
 
-    print "\"", msgtype, "\""
+    print "\t\"", msgtype, "\""
 
     addDefaultHeaders = 0
     
@@ -295,4 +328,5 @@
         
         cbodyid = mediaserver.addDatum(body, headerLinesB, None, 
addDefaultHeaders)
 
+    print "<==storeBody"
     return cbodyid



reply via email to

[Prev in Thread] Current Thread [Next in Thread]