bigboard r7295 - trunk/bigboard/stocks/mail



Author: otaylor
Date: Fri Apr 11 23:14:41 2008
New Revision: 7295
URL: http://svn.gnome.org/viewvc/bigboard?rev=7295&view=rev

Log:
Clean up mail subject unescaping and fix lack of re-escaping of content


Modified:
   trunk/bigboard/stocks/mail/MailStock.py

Modified: trunk/bigboard/stocks/mail/MailStock.py
==============================================================================
--- trunk/bigboard/stocks/mail/MailStock.py	(original)
+++ trunk/bigboard/stocks/mail/MailStock.py	Fri Apr 11 23:14:41 2008
@@ -6,8 +6,6 @@
 from xml.dom.minidom import Node
 from StringIO import StringIO
 
-import simplejson
-
 from bigboard.stock import Stock
 from bigboard.slideout import ThemedSlideout
 import bigboard.google as google
@@ -26,9 +24,9 @@
 UNICHR_REPLACE = re.compile(r"\\u([A-F-a-f0-9]{4})")
 
 def gmail_jshtml_str_parse(s, markup=False):
-    s = s.replace(r'\>', '>')
-    s = s.replace(r'\<', '<')
+    # Replace \uxxxx escapes
     parsed_str = UNICHR_REPLACE.sub(replace_chr, s)
+    
     # At this point, we have a Python unicode string which *should* hold
     # an XML fragment.  Convert that fragment into a document string.
     pystr = "<html>" + parsed_str + "</html>"
@@ -38,7 +36,7 @@
     # Now we parse the XML, only allowing the bold tag through, and eating everything else
     def DomToText(node):       
         if node.nodeType == Node.TEXT_NODE:
-            textContent.write(node.data)
+            textContent.write(gobject.markup_escape_text(node.data))
         if markup and node.nodeType == Node.ELEMENT_NODE and node.nodeName == 'b':
             in_bold = True
             textContent.write('<b>')
@@ -246,4 +244,4 @@
     assert gmail_jshtml_str_parse(r'test \u003cb\>hi\u003c/b\> moo', True) == 'test <b>hi</b> moo'
     # Strip unknown tag "A"
     assert gmail_jshtml_str_parse(r'test \u003ca\>hi\u003c/a\> moo', True) == 'test hi moo'
-    
\ No newline at end of file
+    



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]