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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.