CVS: tmda-cgi PendList.py,1.9,1.10 View.py,1.14,1.15
Jim Ramsay <[email protected]>
| Newsgroups | gmane.mail.spam.tmda.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/tmda/tmda-cgi
In directory sc8-pr-cvs1:/tmp/cvs-serv17027
Modified Files:
PendList.py View.py
Log Message:
Added basic international support
Not entirely implemented yet.
Index: PendList.py
===================================================================
RCS file: /cvsroot/tmda/tmda-cgi/PendList.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- PendList.py 4 May 2003 19:52:46 -0000 1.9
+++ PendList.py 5 May 2003 21:57:08 -0000 1.10
@@ -23,6 +23,7 @@
import cgi
import email
+import email.Header
import os
import re
import time
@@ -219,7 +220,13 @@
if not MsgObj.msgobj["subject"]:
Subject = "None"
else:
- Subject = MsgObj.msgobj["subject"]
+ # Decode internationalazed headers
+ value = ""
+ for tuple in email.Header.decode_header( MsgObj.msgobj["subject"] ):
+ if tuple[1]:
+ value += "(" + tuple[1] + ") "
+ value += tuple[0] + " "
+ Subject = value
if len(Subject) > int(PVars[("PendingList", "CropSubject")]):
Subject = \
cgi.escape(Subject[:int(PVars[("PendingList", "CropSubject")])
@@ -232,7 +239,13 @@
if not MsgObj.msgobj["from"]:
From = ""
else:
- From = MsgObj.msgobj["from"]
+ # Decode internationalazed headers
+ value = ""
+ for tuple in email.Header.decode_header( MsgObj.msgobj["from"] ):
+ if tuple[1]:
+ value += "(" + tuple[1] + ") "
+ value += tuple[0] + " "
+ From = value
Temp = Address.search(From)
if Temp:
if PVars[("PendingList", "ShowAddr")] == "Name":
Index: View.py
===================================================================
RCS file: /cvsroot/tmda/tmda-cgi/View.py,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- View.py 3 May 2003 16:54:51 -0000 1.14
+++ View.py 5 May 2003 21:57:09 -0000 1.15
@@ -23,6 +23,7 @@
import cgi
import email
+import email.Header
import os
import re
@@ -72,7 +73,7 @@
def Show():
"Show an e-mail in HTML."
- global Allow, Remove, Attachment, Divider, PartTemplate, T
+ global messageCharset, Allow, Remove, Attachment, Divider, PartTemplate, T
# Deal with a particular message?
if Form.has_key("msgid"):
@@ -223,7 +224,10 @@
Headers = ""
for Line in CgiUtil.Escape(MsgObj.show()).split("\n"):
if Line == "": break
- Headers += Line + "\n"
+ # Decode internationalized headers
+ for tuple in email.Header.decode_header( Line ):
+ Headers += tuple[0] + " "
+ Headers += "\n"
T["Headers"] = '<pre class="Headers">%s</pre>' % Headers
else:
# Remove all header block
@@ -232,7 +236,11 @@
# Generate short headers
for Header in Defaults.SUMMARY_HEADERS:
T["Name"] = Header.capitalize()
- T["Value"] = CgiUtil.Escape(MsgObj.msgobj[Header])
+ value = ""
+ # Decode internationalazed headers
+ for tuple in email.Header.decode_header( MsgObj.msgobj[Header] ):
+ value += tuple[0] + " "
+ T["Value"] = CgiUtil.Escape(value)
HeaderRow.Add()
# Go through each part and generate HTML
@@ -241,6 +249,13 @@
Attachment = T["Attachment"]
Divider = T["Divider"]
PartTemplate = T["Part"]
+
+ # Check if there's a charset defined.
+ messageCharset = None
+ T["charset"] = "us-ascii" # default charset
+ if MsgObj.msgobj.get_content_charset():
+ messageCharset = MsgObj.msgobj.get_content_charset()
+ T["charset"] = messageCharset
ShowPart(MsgObj.msgobj)
# Remove unneeded bits?
@@ -275,6 +290,13 @@
# text/plain - escape & display
# text/html - sterilize & display
# other - show as an attachment
+
+ # Check if there's a character set for this part.
+ if Part.get_content_charset():
+ messageCharset = Part.get_content_charset()
+ T["charset"] = messageCharset
+
+ # Display this part
if Part.is_multipart():
if Part.get_type("multipart/mixed") == "multipart/alternative":
# Pick preferred alternative
_______________________________________
tmda-cvs mailing list
http://tmda.net/lists/listinfo/tmda-cvs