From 1430fa61856eb2f52e1f59b2fd7cda01f6f0405b Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Fri, 14 Jul 2006 16:56:31 +0000 Subject: add proof-of-concept web interface --- .../Plugins/Extensions/WebInterface/plugin.py | 35 +++++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) (limited to 'lib/python/Plugins/Extensions/WebInterface/plugin.py') diff --git a/lib/python/Plugins/Extensions/WebInterface/plugin.py b/lib/python/Plugins/Extensions/WebInterface/plugin.py index 0f7e2bbd..c61424c8 100644 --- a/lib/python/Plugins/Extensions/WebInterface/plugin.py +++ b/lib/python/Plugins/Extensions/WebInterface/plugin.py @@ -1,14 +1,41 @@ from Plugins.Plugin import PluginDescriptor +sessions = [ ] + def startWebserver(): from twisted.internet import reactor - from twisted.web2 import server, http, static - toplevel = static.File("/hdd") - site = server.Site(toplevel) + from twisted.web2 import server, http, static, resource, stream + import webif + + class ScreenPage(resource.Resource): + def render(self, req): + global sessions + if sessions == [ ]: + return http.Response("please wait until enigma has booted") + + s = stream.ProducerStream() + webif.renderPage(s, req, sessions[0]) # login? + return http.Response(stream=s) + + class Toplevel(resource.Resource): + addSlash = True + + def render(self, req): + return 'Hello! you want probably go to the test instead.' + + child_test = ScreenPage() # "/test" + child_hdd = static.File("/hdd") + + site = server.Site(Toplevel()) reactor.listenTCP(80, http.HTTPFactory(site)) def autostart(reason, **kwargs): + if "session" in kwargs: + global sessions + sessions.append(kwargs["session"]) + return + if reason == 0: try: startWebserver() @@ -16,4 +43,4 @@ def autostart(reason, **kwargs): print "twisted not available, not starting web services" def Plugins(**kwargs): - return PluginDescriptor(where = PluginDescriptor.WHERE_AUTOSTART, fnc = autostart) + return PluginDescriptor(where = [PluginDescriptor.WHERE_SESSIONSTART, PluginDescriptor.WHERE_AUTOSTART], fnc = autostart) -- cgit v1.2.3