blob: 8be80523603abf991869341bc1c54a94c505e29b [file] [log] [blame]
import os
from wptserve import pipes
def run_other(request, response, path):
#This is a terrible hack
environ = {"__file__": path}
execfile(path, environ, environ)
rv = environ["main"](request, response)
return rv
def main(request, response):
origin = request.GET.first("origin", request.headers["origin"])
credentials = request.GET.first("credentials", "true")
response.headers.update([("Access-Control-Allow-Origin", origin),
("Access-Control-Allow-Credentials", credentials)])
handler = request.GET.first('run')
if handler in ["status-reconnect",
"message",
"redirect",
"cache-control"]:
if handler == "cache-control":
response.headers.set("Content-Type", "text/event-stream")
rv = open(os.path.join(request.doc_root, "eventsource", "resources", "cache-control.event_stream")).read()
response.content = rv
pipes.sub(request, response)
return
elif handler == "redirect":
return run_other(request, response, os.path.join(request.doc_root, "common", "redirect.py"))
else:
return run_other(request, response, os.path.join(os.path.split(__file__)[0], handler + ".py"))
else:
return