Files
yadyn/server/WebHandler.py
2007-11-12 12:01:37 +01:00

77 lines
1.9 KiB
Python

import BaseHTTPServer
#import Cheetah.Template
import SocketServer
#import cgi
import threading
class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
server_version = "yadynHTTP/1.0"
@classmethod
def setParams(cls, entries):
cls.entries = entries
# def do_POST(self):
# self.log_message("Request: %s", self.path)
# sid = self.getSidFromCookie()
# self.log_message("Cookie: %s" % self.headers.get('Cookie'))
#
# d = HscWebApp(sid)
#
# l = int(self.headers.get('Content-Length', '0'))
# q = self.rfile.read(l)
# e = cgi.parse_qs(q)
# self.log_message("QUERY: %s" % str(e))
# d.setParams(Params(e))
#
# d.processAction()
#
# self.send_response(303, "See Other")
# self.setSidInCookie(d.sid)
# self.send_header("Location", "/")
# self.end_headers()
#
# d.finish()
def do_GET(self):
self.log_message("Request: %s", self.path)
cmd = self.path.split('/')[1]
dynid = self.path.split('/')[2]
d = ''
if cmd == 'status':
if dynid == 'all':
for entry in self.entries.values():
d += str(entry) + '\n'
elif self.entries.has_key(dynid):
d = str(self.entries[dynid])
else:
d = "unknown dynid"
else:
d = "unknown cmd"
self.send_response(200, "OK")
self.send_header("Content-Type", "text/plain")
self.end_headers()
self.wfile.write(str(d))
class WebServer(SocketServer.ThreadingTCPServer):
def __init__(self, server_address, RequestHandlerClass):
self.allow_reuse_address = True
SocketServer.ThreadingTCPServer.__init__(self, server_address, RequestHandlerClass)
class WebHandler(threading.Thread):
def __init__(self, webAddr, entries):
threading.Thread.__init__(self)
self.webAddr = webAddr
MyHandler.setParams(entries)
self.setDaemon(True)
def run(self):
WebServer(self.webAddr, MyHandler).serve_forever()