[totem] Ensure programme titles have XML entities decoded properly in iPlayer



commit 4d7d4e731b87852b97f64232452025a1ea1e42d0
Author: Philip Withnall <philip tecnocode co uk>
Date:   Sun Nov 14 12:26:59 2010 +0000

    Ensure programme titles have XML entities decoded properly in iPlayer

 src/plugins/iplayer/iplayer.py  |    2 +-
 src/plugins/iplayer/iplayer2.py |    8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)
---
diff --git a/src/plugins/iplayer/iplayer.py b/src/plugins/iplayer/iplayer.py
index 84405bb..8eddc8c 100644
--- a/src/plugins/iplayer/iplayer.py
+++ b/src/plugins/iplayer/iplayer.py
@@ -225,7 +225,7 @@ class PopulateProgrammesThread (threading.Thread):
 				continue
 
 			gobject.idle_add (self.plugin._populate_programme_list_cb, self.tree_model, self.category_path,
-					  [programme.get_title ().encode ('utf-8'), programme.get_summary ().encode ('utf-8'), media.url],
+					  [programme.get_title (), programme.get_summary (), media.url],
 					  remove_placeholder)
 			remove_placeholder = False
 
diff --git a/src/plugins/iplayer/iplayer2.py b/src/plugins/iplayer/iplayer2.py
index b2aa9a5..0a75789 100644
--- a/src/plugins/iplayer/iplayer2.py
+++ b/src/plugins/iplayer/iplayer2.py
@@ -503,7 +503,7 @@ class item(object):
         url = self.mediaselector_url
         #logging.info("Stream XML URL: %s", str(url))
         _, xml = http.request(url)
-        soup = BeautifulStoneSoup(xml)
+        soup = BeautifulStoneSoup(xml, convertEntities = BeautifulStoneSoup.XML_ENTITIES)
         medias = [media(self, m) for m in soup('media')]
         #logging.info('Found media: %s', pformat(medias, indent=8))
         self.medias = medias
@@ -562,15 +562,15 @@ class programme(object):
         #xml.replace('<summary/>', '<summary></summary>')
         #xml = fix_selfclosing(xml)
 
-        soup = BeautifulStoneSoup(xml, selfClosingTags=self_closing_tags)
+        soup = BeautifulStoneSoup(xml, selfClosingTags=self_closing_tags, convertEntities = BeautifulStoneSoup.XML_ENTITIES)
 
         self.meta = {}
         self._items = []
         self._related = []
 
         #logging.info('  Found programme: %s', soup.playlist.title.string)
-        self.meta['title'] = soup.playlist.title.string
-        self.meta['summary'] = soup.playlist.summary.string
+        self.meta['title'] = soup.playlist.title.string.encode ('utf-8')
+        self.meta['summary'] = soup.playlist.summary.string.encode ('utf-8')
         self.meta['updated'] = soup.playlist.updated.string
 
         if soup.playlist.noitems:



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