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: Thu, 05 Dec 2002 18:21:51 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Marc Schiereck <address@hidden> 02/12/05 18:21:50

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

Log message:
        

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

Patches:
Index: gzz/gzz/modules/email/converter.py
diff -u gzz/gzz/modules/email/converter.py:1.10 
gzz/gzz/modules/email/converter.py:1.11
--- gzz/gzz/modules/email/converter.py:1.10     Mon Dec  2 14:19:44 2002
+++ gzz/gzz/modules/email/converter.py  Thu Dec  5 18:21:50 2002
@@ -65,6 +65,11 @@
             delLines = 0
     return result
 
+def replaceHeaderLine(header, field, replacement):
+    result = delHeaderLines(header, [field])
+    result.append(replacement)
+    return result
+
 def transformHeader(header, bodyID):
     """Transforms message header to a message/external-body header
     """
@@ -75,19 +80,25 @@
     result.append(' access-type=\"x-storm\";\r\n')
     result.append(' block=\"' + 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')
-
-    return result
+    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')
+    return result + header
 
 def getCharset(msg):
-    for param in msg.getplist():
-        if param[0:7] == 'charset':
-           return param[8:] 
+    if msg.getparam("charset") == None:
+        return "us-ascii"
+    else:
+        return msg.getparam("charset") 
 
-    return "us-ascii"
+    #for param in msg.getplist():
+    #    if param[0:7] == 'charset':
+#          return param[8:] 
+#
+ #   return "us-ascii"
 
 def getContentTypeParams(msg):
     ctparams  = []
@@ -98,7 +109,7 @@
 def storeMail(mail, mediaserver):
     mail      = re.sub(r'(\r\n|\r|\n)', '\r\n', mail)
     tMail     = StringIO.StringIO(mail)
-    tMail     = mimetools.Message(tMail)
+    tMsg      = mimetools.Message(tMail)
     mail      = StringIO.StringIO(mail)
     msg       = mimetools.Message(mail)
     msgtype   = msg.gettype()
@@ -107,8 +118,8 @@
     
     headerLines = java.util.ArrayList()
     headerLines.add('Content-Type: message/rfc822')
-    tempstore = mediaserver.addDatum(string.join(tMail.headers, '') 
-                   + '\r\n' + tMail.fp.read(), headerLines, None, 0)
+    tempstore = mediaserver.addDatum(string.join(tMsg.headers, '') 
+                   + '\r\n' + tMsg.fp.read(), headerLines, None, 0)
 
     if msgtype[:10] == "multipart/":
         headerLinesH = java.util.ArrayList()
@@ -170,6 +181,7 @@
        print eis.getBody().makeString()
        print "----"
     mail.close()
+    tMail.close()
     return id2
 
 def isConvertible(body, charset):
@@ -191,7 +203,62 @@
     return 1
 
 def isReconstructable(mediaserver, msid, recid):
+    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")
+    
+    print "--------\n-------\n%s-------\n--------\n" % \
+          msgZip (reconstruct(mail, mediaserver), str(t))
+    
+#    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()
     return 1
+
+def msgZip(msg1, msg2):
+    msg1 = string.split(msg1, '\r\n')
+    msg2 = string.split(msg2, '\r\n')
+
+    ret = ""
+    for s in zip(msg1, msg2):
+        ret += s[0] + '\n'
+        ret += s[1] + '\n'
+
+    return ret
+
+def reconstruct(mail, mediaserver):
+    mail = StringIO.StringIO(mail)
+    msg  = mimetools.Message(mail)
+    type = msg.gettype()
+
+    if type == "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)
+       t = java.lang.String(mediaserver.getDatum(id).getBytes(), "UTF8")  # 
Noch den Zeichensatz umwandeln
+       msgData = msg.fp.read() + str(t)
+    elif type[:10] == "multipart/":
+        mulmsg = multifile.MultiFile(mail, 0)
+        mulmsg.push(msg.getparam("boundary"))
+
+        msgData = "--%s" % msg.getparam("boundary") 
+
+        while mulmsg.next():
+            submsg = mimetools.Message(mulmsg)
+           msgData += reconstruct(str(submsg) + submsg.fp.read(), mediaserver)
+
+       msgData += "--%s--" % msg.getparam("boundary") 
+    else:
+       msgData = str(msg) + '\r\n' + msg.fp.read()
+
+    mail.close()
+    return msgData
 
 def storeBody(mediaserver, msg, body, msgID):
     msgtype = msg.gettype()




reply via email to

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