#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
paramlist = self.source_id.split(",")
list = {}
for key in paramlist:
- arg = args.get(key, [])
+ arg = args.get(key, ())
Len = len(arg)
if Len == 0:
list[key] = None
list[key] = arg[0]
self.source.handleCommand(list)
else:
- for c in args.get(self.source_id, []):
+ for c in args.get(self.source_id, ()):
self.source.handleCommand(c)
def render(self, request):
Converter.__init__(self, arg)
def getHTML(self, id):
- return self.source.text # encode & etc. here!
+ return self.source.text.replace('\xc2\x86', '').replace('\xc2\x87', '').decode("utf-8", "ignore").encode("utf-8") # encode & etc. here!
#===============================================================================
# TextToXML
Converter.__init__(self, arg)
def getHTML(self, id):
- return escape_xml(self.source.text).replace("\x19", "").replace("\x1c", "").replace("\x1e", "")
+ 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
Converter.__init__(self, arg)
def getHTML(self, id):
- return self.source.text.replace(" ", "%20")
+ return self.source.text.replace(" ", "%20").replace("+", "%2b").replace("&", "%26").replace('\xc2\x86', '').replace('\xc2\x87', '').decode("utf-8", "ignore").encode("utf-8")
#===============================================================================
# ReturnEmptyXML
item = ""
for (element, filternum) in list:
+ #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(str(item).replace("\\", "\\\\").replace("\n", "\\n").replace('"', '\\"'))
+ append(item.replace("\\", "\\\\").replace("\n", "\\n").replace('"', '\\"'))
elif filternum == 3:
- append(escape_xml(str(item)))
+ append(escape_xml(item))
elif filternum == 4:
- append(str(item).replace("%", "%25").replace("+", "%2B").replace('&', '%26').replace('?', '%3f').replace(' ', '+'))
+ append(item.replace("%", "%25").replace("+", "%2B").replace('&', '%26').replace('?', '%3f').replace(' ', '+'))
elif filternum == 5:
- append(quote(str(item)))
+ append(quote(item))
elif filternum == 6:
time = parseint(item) or 0
t = localtime(time)
t = localtime(time)
append("%d min" % (time / 60))
else:
- append(str(item))
+ append(item)
# (this will be done in c++ later!)
return ''.join(strlist)
#None becomes ""
curitem = ""
if filternum:
- curitem = item[element]
+ #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:
if not filternum:
append(element)
elif filternum == 2:
- append(str(curitem).replace("\\", "\\\\").replace("\n", "\\n").replace('"', '\\"'))
+ append(curitem.replace("\\", "\\\\").replace("\n", "\\n").replace('"', '\\"'))
elif filternum == 3:
- append(escape_xml(str(curitem)))
+ append( escape_xml( curitem ))
elif filternum == 4:
- append(str(curitem).replace("%", "%25").replace("+", "%2B").replace('&', '%26').replace('?', '%3f').replace(' ', '+'))
+ append(curitem.replace("%", "%25").replace("+", "%2B").replace('&', '%26').replace('?', '%3f').replace(' ', '+'))
elif filternum == 5:
- append(quote(str(curitem)))
+ append(quote(curitem))
elif filternum == 6:
from time import localtime
time = int(float(curitem)) or 0
t = localtime(time)
append("%d min" % (time / 60))
else:
- append(str(curitem))
+ append(curitem)
# (this will be done in c++ later!)
return ''.join(strlist)
self.converter = eval(ctype[4:])
else:
try:
- self.converter = my_import('.'.join(["Components", "Converter", ctype])).__dict__.get(ctype)
+ self.converter = my_import('.'.join(("Components", "Converter", ctype))).__dict__.get(ctype)
except ImportError:
- self.converter = my_import('.'.join(["Plugins", "Extensions", "WebInterface", "WebComponents", "Converter", ctype])).__dict__.get(ctype)
+ self.converter = my_import('.'.join(("Plugins", "Extensions", "WebInterface", "WebComponents", "Converter", ctype))).__dict__.get(ctype)
self.sub = [ ]
def end_convert(self):
if name[:3] == "e2:":
self.mode += 1
- tag = [' %s="%s"' % (key, val) for (key, val) in attrs.items()]
- tag.insert(0, name)
- tag.insert(0, '<')
- tag.append('>')
- tag = ''.join(tag)#.encode('utf-8')
+ tag = '<' + name + ''.join([' %s="%s"' % x for x in attrs.items()]) + '>'
+ #tag = tag.encode('utf-8')
if self.mode == 0:
self.res.append(tag)
else:
def requestFinishDeferred(nothing, handler, request):
from twisted.internet import reactor
- reactor.callLater(1, requestFinish, handler, request)
+ reactor.callLater(0, requestFinish, handler, request)
d = request.notifyFinish()
- d.addErrback( requestFinishDeferred, handler, request )
- d.addCallback( requestFinishDeferred, handler, request )
+ d.addBoth( requestFinishDeferred, handler, request )
#===============================================================================
# requestFinish