| 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 |