move xml files into web/, support hierarchy
[enigma2.git] / lib / python / Plugins / Extensions / WebInterface / plugin.py
index c61424c81302aab3a2753d67b7a77b2d437ff3fb..cc9a546b93ec927d70f148f634ff0a12a8190c1e 100644 (file)
@@ -4,27 +4,41 @@ sessions = [ ]
 
 def startWebserver():
        from twisted.internet import reactor
-       from twisted.web2 import server, http, static, resource, stream
+       from twisted.web2 import server, http, static, resource, stream, http_headers, responsecode
+       from twisted.python import util
        import webif
 
        class ScreenPage(resource.Resource):
+               def __init__(self, path):
+                       self.path = path
+                       
                def render(self, req):
                        global sessions
                        if sessions == [ ]:
-                               return http.Response("please wait until enigma has booted")
+                               return http.Response(200, stream="please wait until enigma has booted")
                        
                        s = stream.ProducerStream()
-                       webif.renderPage(s, req, sessions[0])  # login?
+                       webif.renderPage(s, self.path, sessions[0])  # login?
                        return http.Response(stream=s)
 
+               def locateChild(self, request, segments):
+                       path = '/'.join(["web"] + segments)
+                       if path[-1:] == "/":
+                               path += "index"
+                       
+                       path += ".xml"
+                       return ScreenPage(path), ()
+
        class Toplevel(resource.Resource):
                addSlash = True
                
                def render(self, req):
-                       return 'Hello! you want probably go to <a href="/test">the test</a> instead.'
+                       return http.Response(responsecode.OK, {'Content-type': http_headers.MimeType('text', 'html')},
+                               stream='Hello! you want probably go to <a href="/test">the test</a> instead.')
 
-               child_test = ScreenPage() # "/test"
+               child_web = ScreenPage("/") # "/web"
                child_hdd = static.File("/hdd")
+               child_webdata = static.File(util.sibpath(__file__, "web-data"))
 
        site = server.Site(Toplevel())