[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz test/gzz/modules/email/converter.test gzz/m...
From: |
Marc Schiereck |
Subject: |
[Gzz-commits] gzz test/gzz/modules/email/converter.test gzz/m... |
Date: |
Sun, 03 Nov 2002 17:05:08 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Marc Schiereck <address@hidden> 02/11/03 17:05:08
Modified files:
test/gzz/modules/email: converter.test
gzz/modules/email: converter.py
Log message:
Added some functions and did some little cleanup. Now the IDs are also
added
to the Header.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/test/gzz/modules/email/converter.test.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/modules/email/converter.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
Patches:
Index: gzz/gzz/modules/email/converter.py
diff -u gzz/gzz/modules/email/converter.py:1.4
gzz/gzz/modules/email/converter.py:1.5
--- gzz/gzz/modules/email/converter.py:1.4 Fri Nov 1 14:40:29 2002
+++ gzz/gzz/modules/email/converter.py Sun Nov 3 17:05:08 2002
@@ -40,6 +40,44 @@
storeMail(header + '\r\n' + body, mediaserver)
+def delHeaderLines(header, fields):
+ """Takes a list of header-lines and a list of header fields and
+ removes every appereance of this field and it's parameters.
+ """
+ result = []
+ delLines = 0
+ foundField = 0
+ for line in header:
+ tline = line.lower()
+ for field in fields:
+ field = field.lower()
+ if tline[:len(field)] == field:
+ foundField = 1
+ break
+ if foundField:
+ foundField = 0
+ delLines = 1
+ elif not (delLines and line[0] == ' '):
+ result.append(line)
+ delLines = 0
+ return result
+
+def transformHeader(header, bodyID):
+ result = []
+ idstring = 'storm:block:' + bodyID.getString()
+
+ result.append('Content-Type: message/external-body;\r\n')
+ 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
+
+
def storeMail(mail, mediaserver):
mail = re.sub('(\r\n|\n)', '\r\n', mail)
mail = StringIO.StringIO(mail)
@@ -72,19 +110,14 @@
headerLinesB.add('Message-ID: ' + msgID)
headerLinesB.add('Content-Transfer-Encoding: ' +
submsg.getencoding())
- id = '<ID>'
- headerData += '--' + msg.getparam("boundary") + '\r\n'
+ body = string.join(submsg.fp.readlines(), '')
+ id = mediaserver.addDatum(body, headerLinesB, None, 0)
- headerData += 'Content-Type: message/external-body;\r\n'
- headerData += ' access-type=\"x-storm\";\r\n'
- headerData += ' block=\"' + id + '\"\r\n\r\n'
-
- headerData += string.join(submsg.headers, '')
- headerData += 'Content-Transfer-Encoding: binary\r\n'
- headerData += 'Content-ID: ' + id + '\r\n\r\n'
+ header = ['--', msg.getparam("boundary") + '\r\n']
+ header = header + transformHeader(submsg.headers, id)
+ header = string.join(header, '')
- body = string.join(submsg.fp.readlines(), '')
- mediaserver.addDatum(body, headerLinesB, None, 0)
+ headerData += header
headerData += '--' + msg.getparam("boundary") + '--\r\n\r\n'
mediaserver.addDatum(headerData, headerLinesH, None, 0)
@@ -97,20 +130,10 @@
headerLinesB.add('Message-ID: ' + msgID)
headerLinesB.add('Content-Transfer-Encoding: ' + msg.getencoding())
- id = '<ID>'
+ body = string.join(msg.fp.readlines(), '')
+ id = mediaserver.addDatum(body, headerLinesB, None, 0)
- headerA = 'Content-Type: message/external-body;\r\n'
- headerA += ' access-type=\"x-storm\";\r\n'
- headerA += ' block=\"' + id + '\"\r\n'
-
- mailHeader = string.join(msg.headers, '')
- mailHeader += 'Content-Type: ' + msgtype + '\r\n'
- mailHeader += 'Content-Transfer-Encoding: binary\r\n'
- mailHeader += 'Content-ID: ' + id + '\r\n'
-
- mediaserver.addDatum(headerA + '\r\n'
- + mailHeader + '\r\n',
- headerLinesH, None, 0)
+ header = string.join(transformHeader(msg.headers, id), '')
- body = string.join(msg.fp.readlines(), '')
- mediaserver.addDatum(body, headerLinesB, None, 0)
+ mediaserver.addDatum(header, headerLinesH, None, 0)
+ mail.close()
Index: gzz/test/gzz/modules/email/converter.test
diff -u gzz/test/gzz/modules/email/converter.test:1.3
gzz/test/gzz/modules/email/converter.test:1.4
--- gzz/test/gzz/modules/email/converter.test:1.3 Fri Nov 1 14:40:29 2002
+++ gzz/test/gzz/modules/email/converter.test Sun Nov 3 17:05:08 2002
@@ -34,11 +34,11 @@
Subject: TestMail
Message-ID: <address@hidden>
Mime-Version: 1.0
-Content-Type: text/plain; charset=us-ascii
+Content-Type: text/plain;
+ charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.3.28i
From: Marc Schiereck <address@hidden>
-Content-Transfer-Encoding: binary
Status: RO
Content-Length: 10
Lines: 1
@@ -46,13 +46,12 @@
TestMail.
"""
-mail1HeaderID =
gzz.mediaserver.Mediaserver.Id("017BCFE43371744AEFFB231B529D12721AF296A9CD")
-mail1BodyID =
gzz.mediaserver.Mediaserver.Id("01FC34E8A4E4260459918A94AB046299191E452433")
-
+mail1HeaderID =
gzz.mediaserver.Mediaserver.Id("012E7F7A7D81226AE7F8FF6BBFB5CC24329E0827ED")
+mail1BodyID =
gzz.mediaserver.Mediaserver.Id("016205C5FE4E8CF333F5C3475D07C5BAF9A0D0D2D0")
mail1Header = "Content-Type: message/external-body;\r\n"
mail1Header += " access-type=\"x-storm\";\r\n"
-mail1Header += " block=\"<ID>\"\r\n"
+mail1Header += " block=\"storm:block:" + mail1BodyID.getString() + "\"\r\n"
mail1Header += "\r\n"
mail1Header += "Return-path: <address@hidden>\r\n"
mail1Header += "Envelope-to: address@hidden"
@@ -65,17 +64,16 @@
mail1Header += "Subject: TestMail\r\n"
mail1Header += "Message-ID: <address@hidden>\r\n"
mail1Header += "Mime-Version: 1.0\r\n"
-mail1Header += "Content-Type: text/plain; charset=us-ascii\r\n"
+mail1Header += "Content-Type: text/plain;\r\n"
+mail1Header += " charset=us-ascii\r\n"
mail1Header += "Content-Disposition: inline\r\n"
mail1Header += "User-Agent: Mutt/1.3.28i\r\n"
mail1Header += "From: Marc Schiereck <address@hidden>\r\n"
-mail1Header += "Content-Transfer-Encoding: binary\r\n"
mail1Header += "Status: RO\r\n"
mail1Header += "Content-Length: 10\r\n"
mail1Header += "Lines: 1\r\n"
-mail1Header += "Content-Type: text/plain\r\n"
mail1Header += "Content-Transfer-Encoding: binary\r\n"
-mail1Header += "Content-ID: <ID>\r\n\r\n"
+mail1Header += "Content-ID: storm:block:" + mail1BodyID.getString() +
"\r\n\r\n"
mail1Body = "TestMail.\r\n"
@@ -105,12 +103,12 @@
"""
-mail2HeaderID =
gzz.mediaserver.Mediaserver.Id("01C8475E44CE645291A74EA8AAB8E2EE876359E4F8")
+mail2HeaderID =
gzz.mediaserver.Mediaserver.Id("0187F1932D66C41330612FA274620A6027E5D6F2BD")
mail2BodyID =
gzz.mediaserver.Mediaserver.Id("01B5F43554E0A5D65B4EC6337D3466D59E398C15EB")
mail2Header = "Content-Type: message/external-body;\r\n"
mail2Header += " access-type=\"x-storm\";\r\n"
-mail2Header += " block=\"<ID>\"\r\n\r\n"
+mail2Header += "
block=\"storm:block:01B5F43554E0A5D65B4EC6337D3466D59E398C15EB\"\r\n\r\n"
mail2Header += "Return-path: <address@hidden>\r\n"
mail2Header += "Envelope-to: address@hidden"
mail2Header += "Delivery-date: Wed, 16 Oct 2002 00:17:32 +0200\r\n"
@@ -129,9 +127,8 @@
mail2Header += "Status: RO\r\n"
mail2Header += "Content-Length: 51\r\n"
mail2Header += "Lines: 3\r\n"
-mail2Header += "Content-Type: text/plain\r\n"
mail2Header += "Content-Transfer-Encoding: binary\r\n"
-mail2Header += "Content-ID: <ID>\r\n\r\n"
+mail2Header += "Content-ID:
storm:block:01B5F43554E0A5D65B4EC6337D3466D59E398C15EB\r\n\r\n"
mail2Body = "test test test test test\r\n"
mail2Body += "test test test test test\r\n\r\n"
@@ -167,7 +164,7 @@
--n8g4imXOkfNTN/H1
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=testmbox
-Content-Transfer-Encoding: 7bit; filename=oink
+Content-Transfer-Encoding: 7bit
>From address@hidden Wed Oct 16 00:15:44 2002
Return-path: <address@hidden>