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 pop3.py popl...


From: Marc Schiereck
Subject: [Gzz-commits] gzz/gzz/modules/email converter.py pop3.py popl...
Date: Sat, 04 Jan 2003 14:07:03 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Marc Schiereck <address@hidden> 03/01/04 14:07:03

Modified files:
        gzz/modules/email: converter.py 
Added files:
        gzz/modules/email: pop3.py poplib.py 

Log message:
        Pop3 support

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/modules/email/pop3.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/modules/email/poplib.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/modules/email/converter.py.diff?tr1=1.19&tr2=1.20&r1=text&r2=text

Patches:
Index: gzz/gzz/modules/email/converter.py
diff -u gzz/gzz/modules/email/converter.py:1.19 
gzz/gzz/modules/email/converter.py:1.20
--- gzz/gzz/modules/email/converter.py:1.19     Fri Jan  3 16:14:58 2003
+++ gzz/gzz/modules/email/converter.py  Sat Jan  4 14:07:03 2003
@@ -43,10 +43,10 @@
     return result + header
 
 def save(mediaserver, mail):
-    mail      = re.sub(r'(\r\n|\r|\n)', '\r\n', mail)
-    tMail     = StringIO.StringIO(mail)
+    mailStr   = re.sub(r'(\r\n|\r|\n)', '\r\n', mail)
+    tMail     = StringIO.StringIO(mailStr)
     tMsg      = mimetools.Message(tMail)
-    mail      = StringIO.StringIO(mail)
+    mail      = StringIO.StringIO(mailStr)
     msg       = mimetools.Message(mail)
     msgtype   = msg.gettype()
     msgID     = msg.getheader("Message-ID")
@@ -65,11 +65,14 @@
         mulmsg = multifile.MultiFile(mail, 0)
         mulmsg.push(msg.getparam("boundary"))
 
+        posT = (0, 0)
+        lastPos = mail.tell()
         while mulmsg.next():
             submsg = mimetools.Message(mulmsg)
 
             header = ['--', msg.getparam("boundary") + '\r\n']
 
+            headers = string.join(submsg.headers, '')
             try:
                 body = submsg.fp.read()
             except:
@@ -81,9 +84,16 @@
                 header = string.join(header, '')
                 headerData += header
             else:
-                headerData += string.join(submsg.headers, '') + '\n\r' + body
-
-        headerData += '--' + msg.getparam("boundary") + '--\r\n\r\n'
+                headerData += headers + '\r\n' + body
+            posT = (lastPos, len(body) + len(headers))
+            lastPos = mail.tell()
+       
+        #print "(%s | %s)" % posT
+        #print "MsgLen: ", len(mailStr)
+        #headerData += '--' + msg.getparam("boundary") + '--\r\n\r\n'
+        headerData += mailStr[posT[0] + posT[1] + 2:]
+        #print "Pos: ", posT[0] + posT[1]
+        #print "##############>%s<##################" %  mailStr[posT[0] + 
posT[1]:]
         id2 = mediaserver.addDatum(headerData, headerLinesH, None, 0)
         if isReconstructable(mediaserver, id2, tempstore):
             mediaserver.expungeDatum(tempstore)
@@ -187,10 +197,39 @@
         pts  = gzz.media.impl.PermanentTextScroll(mediaserver, msid)
         id   = msg.getparam("block")[len("storm:block:"):]
         id   = gzz.mediaserver.Mediaserver.Id(id)
-        pts1 = gzz.media.impl.PermanentTextScroll(mediaserver, id)
 
-        reconstructHeader(pts, msg.fp.read(), pos + len(str(msg)) + 2, msgData)
-        msgData.append(pts1.getCurrent())
+        header = msg.fp.read()
+
+        header = reconstructHeader(pts, header, pos + len(str(msg)) + 2)
+        spans = java.util.ArrayList()
+        for element in header:
+            spans.add(element)
+        maker = gzz.media.impl.Enfilade1DImpl.Enfilade1DImplMaker()
+        h = maker.makeEnfilade(spans)
+        h = mimetools.Message(StringIO.StringIO(h.makeString()))
+
+        body = mediaserver.getDatum(id).getBytes()
+        body = str(body)
+
+        #msgData.append(ptsmark)
+        msgData += header
+        #msgData.append(ptsmark1)
+        print h.getencoding()
+        if h.getencoding() == "base64"\
+          or h.getencoding() == "quoted-printable"\
+          or h.getencoding() == "uuencode":
+            input = StringIO.StringIO(body)
+            output = StringIO.StringIO()
+            mimetools.encode(input, output, h.getencoding())
+        
+            t = gzz.media.impl.PermanentTextScroll(output.getvalue())
+            msgData.append(t.getCurrent())
+            input.close()
+            output.close()
+        else:
+            pts1 = gzz.media.impl.PermanentTextScroll(mediaserver, id)
+            #msgData.append(body)
+            msgData.append(pts1.getCurrent())
     elif type[:10] == "multipart/":
         pts  = gzz.media.impl.PermanentTextScroll(mediaserver, msid)
         boundary = "--%s" % msg.getparam("boundary")
@@ -210,7 +249,9 @@
            pos += prevMsgLen + 4 + len(boundary)            
 
            sMsg = str(submsg) + '\r\n' + submsg.fp.read()
+           #msgData.append(ptsmark)
            msgData += reconstruct(sMsg, mediaserver, msid, pos)
+           #msgData.append(ptsmark1)
 
            prevMsgLen = len(sMsg) - 2
         pos += prevMsgLen + 2
@@ -227,7 +268,10 @@
 
     return msgData
 
-def reconstructHeader(pts, header, pos, msgData):
+def reconstructHeader(pts, header, pos):
+    #ptsmark = gzz.media.impl.PermanentTextScroll(">--HX--<").getCurrent()
+    #ptsmark1 = gzz.media.impl.PermanentTextScroll(">--YH--<").getCurrent()
+    msgData = []
     offset = pos
     sPos = pos = 0
 
@@ -252,7 +296,10 @@
             ignore = 0
             pos += len(line) + 2
             
-    msgData.append(pts.getSpan(sPos + offset, pos-2 + offset))
+    #msgData.append(ptsmark)
+    msgData.append(pts.getSpan(sPos + offset, pos + offset - 2))
+    #msgData.append(ptsmark1)
+    return msgData
 
 def storeBody(mediaserver, msg, body, msgID):
     msgtype = msg.gettype()




reply via email to

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