from Plugins.Plugin import PluginDescriptor sessions = [ ] def startWebserver(): from twisted.internet import reactor from twisted.web2 import server, http, static, resource, stream, http_headers, responsecode import webif class ScreenPage(resource.Resource): def render(self, req): global sessions if sessions == [ ]: return http.Response(200, stream="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 http.Response(responsecode.OK, {'Content-type': http_headers.MimeType('text', 'html')}, stream='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() except ImportError: print "twisted not available, not starting web services" def Plugins(**kwargs): return PluginDescriptor(where = [PluginDescriptor.WHERE_SESSIONSTART, PluginDescriptor.WHERE_AUTOSTART], fnc = autostart)