nothing
[vuplus_dvbapp-plugin] / webinterface / src / webif.py
index 394c4b1..97e4bdd 100644 (file)
@@ -21,7 +21,10 @@ from urllib2 import quote
 #It IS used (dynamically)
 from WebScreens import *
 #DO NOT REMOVE THIS IMPORT
-               
+
+
+global screen_cache
+screen_cache = {}
 
 # The classes and Function in File handle all ScreenPage-based requests
 # ScreenPages use enigma2 standard functionality to bring contents to a webfrontend
@@ -138,7 +141,7 @@ class TextToHTML(Converter):
                Converter.__init__(self, arg)
 
        def getHTML(self, id):
-               return self.source.text.replace('\xc2\x86', '').replace('\xc2\x87', '') # encode & etc. here!
+               return self.source.text.replace('\xc2\x86', '').replace('\xc2\x87', '').decode("utf-8", "ignore").encode("utf-8") # encode & etc. here!
 
 #===============================================================================
 # TextToXML
@@ -150,7 +153,7 @@ class TextToXML(Converter):
                Converter.__init__(self, arg)
 
        def getHTML(self, id):
-               return escape_xml(self.source.text).replace("\x19", "").replace("\x1c", "").replace("\x1e", "").replace('\xc2\x86', '').replace('\xc2\x87', '')
+               return escape_xml(self.source.text).replace('\xc2\x86', '').replace('\xc2\x87', '').replace("\x19", "").replace("\x1c", "").replace("\x1e", "").decode("utf-8", "ignore").encode("utf-8")
 
 #===============================================================================
 # TextToURL
@@ -162,7 +165,7 @@ class TextToURL(Converter):
                Converter.__init__(self, arg)
 
        def getHTML(self, id):
-               return self.source.text.replace(" ", "%20").replace("+", "%2b").replace("&", "%26").replace('\xc2\x86', '').replace('\xc2\x87', '')
+               return self.source.text.replace(" ", "%20").replace("+", "%2b").replace("&", "%26").replace('\xc2\x86', '').replace('\xc2\x87', '').decode("utf-8", "ignore").encode("utf-8")
 
 #===============================================================================
 # ReturnEmptyXML
@@ -234,14 +237,15 @@ class SimpleListFiller(Converter):
                                item = ""
                                
                        for (element, filternum) in list:
-                               item = str(item).replace('\xc2\x86', '').replace('\xc2\x87', '')
+                               #filter out "non-displayable" Characters - at the very end, do it the hard way...
+                               item = str(item).replace('\xc2\x86', '').replace('\xc2\x87', '').replace("\x19", "").replace("\x1c", "").replace("\x1e", "").decode("utf-8", "ignore").encode("utf-8")
                                
                                if not filternum:
                                        append(element)
                                elif filternum == 2:
                                        append(item.replace("\\", "\\\\").replace("\n", "\\n").replace('"', '\\"'))
                                elif filternum == 3:                                    
-                                       append(escape_xml( item.replace("\x19", "").replace("\x1c", "").replace("\x1e", "").replace('\xc2\x86', '').replace('\xc2\x87', '') ))
+                                       append(escape_xml(item))
                                elif filternum == 4:
                                        append(item.replace("%", "%25").replace("+", "%2B").replace('&', '%26').replace('?', '%3f').replace(' ', '+'))
                                elif filternum == 5:
@@ -296,7 +300,8 @@ class ListFiller(Converter):
                                #None becomes ""
                                curitem = ""
                                if filternum:
-                                       curitem = str(item[element]).replace('\xc2\x86', '').replace('\xc2\x87', '')
+                                       #filter out "non-displayable" Characters - at the very end, do it the hard way...
+                                       curitem = str(item[element]).replace('\xc2\x86', '').replace('\xc2\x87', '').replace("\x19", "").replace("\x1c", "").replace("\x1e", "").decode("utf-8", "ignore").encode("utf-8")
                                        if curitem is None:
                                                curitem = ""
                                else:
@@ -308,7 +313,7 @@ class ListFiller(Converter):
                                elif filternum == 2:
                                        append(curitem.replace("\\", "\\\\").replace("\n", "\\n").replace('"', '\\"'))
                                elif filternum == 3:
-                                       append( escape_xml( curitem.replace("\x19", "").replace("\x1c", "").replace("\x1e", "").replace('\xc2\x86', '').replace('\xc2\x87', '') ))
+                                       append( escape_xml( curitem ))
                                elif filternum == 4:
                                        append(curitem.replace("%", "%25").replace("+", "%2B").replace('&', '%26').replace('?', '%3f').replace(' ', '+'))
                                elif filternum == 5:
@@ -473,7 +478,7 @@ class webifHandler(ContentHandler):
                self.res.append('<?' + target + ' ' + data + '>')
 
        def characters(self, ch):
-               ch = ch.encode('utf-8', 'ignore')
+               ch = ch.encode('utf-8')
                if self.mode == 0:
                        self.res.append(ch)
                elif self.mode == 2: