12345678910111213141516171819202122232425262728 |
- import os, re, hmac
- from wsgiref.simple_server import make_server
- KEY_AUTHORIZATION = {"uri": "/not_set", "data": ""}
- TRAVIS_SESSION = os.getenv("TRAVIS_SESSION", "not_yet_set")
- def app(req, resp):
- if req['REQUEST_METHOD'] == "POST":
- if hmac.compare_digest(req['QUERY_STRING'], TRAVIS_SESSION):
- body_len = min(int(req['CONTENT_LENGTH']), 90)
- body = req['wsgi.input'].read(body_len).decode("utf8")
- body = re.sub(r"[^A-Za-z0-9_\-\.]", "_", body)
- KEY_AUTHORIZATION['uri'] = "/{0}".format(body.split(".", 1)[0])
- KEY_AUTHORIZATION['data'] = body
- resp('201 Created', [])
- return ["".encode("utf8")]
- else:
- resp("403 Forbidden", [])
- return ["403 Forbidden".encode("utf8")]
- else:
- if hmac.compare_digest(req['PATH_INFO'], KEY_AUTHORIZATION['uri']):
- resp('200 OK', [])
- return [KEY_AUTHORIZATION['data'].encode("utf8")]
- else:
- resp("404 Not Found", [])
- return ["404 Not Found".encode("utf8")]
- make_server("localhost", 8888, app).serve_forever()
|