[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: |
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