[Top][All Lists]
[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()