class Request:
def __init__(self, url, passcode=None):
self.url = url
self.passcode = passcode
class Response:
def send(self, response):
print(">", response)
class Documentiki:
def __init__(self, handler):
self.handler = handler
def __call__(self, request, response):
if request.passcode:
self.handler(request, response)
else:
response.send("xyu")
def anon(request, response):
response.send("piz");
def pizdos(request, response):
response.send("da")
router = {}
router["/pizdos"] = Documentiki(pizdos)
router["/anon"] = anon;
def dispatch(request):
response = Response()
handler = router[request.url]
handler(request, response)
dispatch(Request("/anon"))
dispatch(Request("/pizdos"))
dispatch(Request("/pizdos", passcode=True))
Y2xhc3MgUmVxdWVzdDoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmwsIHBhc3Njb2RlPU5vbmUpOgogICAgICAgIHNlbGYudXJsID0gdXJsCiAgICAgICAgc2VsZi5wYXNzY29kZSA9IHBhc3Njb2RlCgpjbGFzcyBSZXNwb25zZToKICAgIGRlZiBzZW5kKHNlbGYsIHJlc3BvbnNlKToKICAgICAgICBwcmludCgiPiIsIHJlc3BvbnNlKQoKY2xhc3MgRG9jdW1lbnRpa2k6CiAgICBkZWYgX19pbml0X18oc2VsZiwgaGFuZGxlcik6CiAgICAgICAgc2VsZi5oYW5kbGVyID0gaGFuZGxlcgoKICAgIGRlZiBfX2NhbGxfXyhzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgICAgaWYgcmVxdWVzdC5wYXNzY29kZToKICAgICAgICAgICAgc2VsZi5oYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJlc3BvbnNlLnNlbmQoInh5dSIpCgpkZWYgYW5vbihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICByZXNwb25zZS5zZW5kKCJwaXoiKTsKCmRlZiBwaXpkb3MocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgcmVzcG9uc2Uuc2VuZCgiZGEiKQoKcm91dGVyID0ge30Kcm91dGVyWyIvcGl6ZG9zIl0gPSBEb2N1bWVudGlraShwaXpkb3MpCnJvdXRlclsiL2Fub24iXSA9IGFub247CgpkZWYgZGlzcGF0Y2gocmVxdWVzdCk6CiAgICByZXNwb25zZSA9IFJlc3BvbnNlKCkKICAgIGhhbmRsZXIgPSByb3V0ZXJbcmVxdWVzdC51cmxdCiAgICBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKQoKZGlzcGF0Y2goUmVxdWVzdCgiL2Fub24iKSkKZGlzcGF0Y2goUmVxdWVzdCgiL3BpemRvcyIpKQpkaXNwYXRjaChSZXF1ZXN0KCIvcGl6ZG9zIiwgcGFzc2NvZGU9VHJ1ZSkpCg==