SF.net SVN: tmda: [2048] trunk/tmda-cgi

[email protected] Mon, 02 Oct 2006 13:10:05 -0700
Newsgroups gmane.mail.spam.tmda.cvs
Message-ID <[email protected]>
Revision: 2048
          http://svn.sourceforge.net/tmda/?rev=2048&view=rev
Author:   lack
Date:     2006-10-02 13:09:59 -0700 (Mon, 02 Oct 2006)

Log Message:
-----------
Fixed pending list and message views for new Pending Queue layout

Modified Paths:
--------------
    trunk/tmda-cgi/CgiUtil.py
    trunk/tmda-cgi/PendList.py
    trunk/tmda-cgi/View.py

Modified: trunk/tmda-cgi/CgiUtil.py
===================================================================
--- trunk/tmda-cgi/CgiUtil.py	2006-10-02 20:01:16 UTC (rev 2047)
+++ trunk/tmda-cgi/CgiUtil.py	2006-10-02 20:09:59 UTC (rev 2048)
@@ -31,6 +31,7 @@
 import Template
 
 from TMDA import Errors
+from TMDA import Util
 
 # Handy values
 DispDir        = os.environ["TMDA_CGI_DISP_DIR"]
@@ -51,7 +52,7 @@
 
 def Size(MsgObj = None, MsgSize = 0):
   if MsgObj:
-    MsgSize = os.stat(MsgObj.msgfile)[6]
+    MsgSize = len(MsgObj.show())
   if MsgSize > 512:
     if MsgSize > 5120:
       if MsgSize > 524288:
@@ -82,12 +83,12 @@
 
 def TermError(Err, Cause, Failed, Other, Recommend):
   try:
-    T = Template.Template(ErrTemplate)
+    T = Template.Template(ErrTemplate, PVars = PVars)
   except IOError:
     T = Template.Template(SubTemplate = ["""Error:<br>%(ErrorName)s<p>
 Cause:<br>%(Cause)s<p>
 Additional:<br>%(Additional)s<p>
-Recommend:<br>%(Recommendation)s"""])
+Recommend:<br>%(Recommendation)s"""], PVars = PVars)
   T["ErrorName"]  = Err
   T["Cause"]      = Cause
   T["Additional"] = """Running in %s mode.<br>

Modified: trunk/tmda-cgi/PendList.py
===================================================================
--- trunk/tmda-cgi/PendList.py	2006-10-02 20:01:16 UTC (rev 2047)
+++ trunk/tmda-cgi/PendList.py	2006-10-02 20:09:59 UTC (rev 2048)
@@ -35,7 +35,7 @@
 from TMDA import Pending
 
 # Pre-calc the regular expressions
-GoodFN     = re.compile("^\d+\.\d+\.msg$")
+GoodFN     = re.compile("^\d+\.\d+$")
 Address    = re.compile("^(.+) +<(.+)>")
 ZeroSearch = re.compile("Z-0*(\d)")
 ZeroSub    = r"\1"

Modified: trunk/tmda-cgi/View.py
===================================================================
--- trunk/tmda-cgi/View.py	2006-10-02 20:01:16 UTC (rev 2047)
+++ trunk/tmda-cgi/View.py	2006-10-02 20:09:59 UTC (rev 2048)
@@ -79,7 +79,7 @@
     PVars.Save()
 
   # Check to make sure they're not trying to access anything other than email
-  if not re.compile("^\d+\.\d+\.msg$").search(PVars["MsgID"]):
+  if not re.compile("^\d+\.\d+$").search(PVars["MsgID"]):
     CgiUtil.TermError("<tt>%s</tt> is not a valid message ID." % PVars["MsgID"],
       "Program error / corrupted link.", "retrieve pending e-mail", "",
       "Recheck link or contact TMDA programmers.")
@@ -210,7 +210,7 @@
   T["DispRange"] = "%d of %d" % (MsgIdx + 1, len(Msgs))
 
   # Read in e-mail
-  MsgObj = Pending.Message(PVars["MsgID"])
+  MsgObj = Pending.Message(PVars["MsgID"], fullParse=True)
   Queue._addCache(PVars["MsgID"])
   Queue._saveCache()
 
@@ -222,15 +222,15 @@
 
     # Generate all headers
     Headers = ""
-    for Line in CgiUtil.Escape(MsgObj.show()).split("\n"):
-      if Line == "": break
+    for (header, value) in MsgObj.msgobj.items():
+      Headers += header + ": " + value + "\n"
       # Decode internationalized headers
-      for decoded in email.Header.decode_header( Line ):
-        Headers += decoded[0] + " "
-        if decoded[1]:
-          cset = email.Charset.Charset(decoded[1]).input_charset.split()
-          T["CharSet"] = cset[0]
-      Headers += "\n"
+      #for decoded in email.Header.decode_header( Line ):
+      #  Headers += decoded[0] + " "
+      #  if decoded[1]:
+      #    cset = email.Charset.Charset(decoded[1]).input_charset.split()
+      #    T["CharSet"] = cset[0]
+      #Headers += "\n"
     T["Headers"] = '<pre class="Headers">%s</pre>' % Headers
   else:
     # Remove all header block
@@ -352,29 +352,29 @@
   else:
     Type = Part.get_type("text/plain")
     # Display the easily display-able parts
-    if Type == "text/plain":
+    if Type == "text/html":
+      # Sterilize & display
       # Check if there's a character set for this part.
       if Part.get_content_charset():
         cset = email.Charset.Charset(Part.get_content_charset()).input_charset.split()
         T["CharSet"] = cset[0]
-      # Escape & display
       try:
-        Str = Part.get_payload(decode=1).strip()
-        T["Content"] = CgiUtil.Escape(Str).replace("\n", "&nbsp;<br>")
+        T["Content"] = \
+          CgiUtil.Sterilize(Part.get_payload(decode=1), Allow, Remove)
         if len(PartTemplate.HTML) == 1:
           Divider.Add()
         PartTemplate.Add()
       except AttributeError:
         pass
-    elif Type == "text/html":
-      # Sterilize & display
+    elif Type.startswith("text/"):
       # Check if there's a character set for this part.
       if Part.get_content_charset():
         cset = email.Charset.Charset(Part.get_content_charset()).input_charset.split()
         T["CharSet"] = cset[0]
+      # Escape & display
       try:
-        T["Content"] = \
-          CgiUtil.Sterilize(Part.get_payload(decode=1), Allow, Remove)
+        Str = Part.get_payload(decode=1).strip()
+        T["Content"] = CgiUtil.Escape(Str).replace("\n", "&nbsp;<br>")
         if len(PartTemplate.HTML) == 1:
           Divider.Add()
         PartTemplate.Add()


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.