blob: c61424c81302aab3a2753d67b7a77b2d437ff3fb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
from Plugins.Plugin import PluginDescriptor
sessions = [ ]
def startWebserver():
from twisted.internet import reactor
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 <a href="/test">the test</a> 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)
|