try: with open(filename, 'rb') as f: body = _hack_svg(f.read().split('\n')) if ext == 'svg' else f.read() return { 'x-status': xhttp.status.OK, 'x-content': body, 'content-type': content_type } finally: os.remove(filename) class DNSRouter(xhttp.Router): def __init__(self): super(DNSRouter, self).__init__( (r'^/dns/([a-z0-9\.-]+)\.(png|dot|svg)$', DNSGraph()), (r'^/dns/(\+?[a-z0-9\.:-]+)$', DNSRedirect()) ) #app = DNSRouter() #app = xhttp.catcher(app) #app = xhttp.xhttp_app(app) stack = lambda obj, *wrappers: reduce(lambda obj, wrapper: wrapper(obj), wrappers, obj) app = stack(DNSRouter(), xhttp.catcher, xhttp.xhttp_app) if __name__ == '__main__': xhttp.run_server(app)
(r'^/oauth/dropbox/init/$', dropbox.DropboxInit()), (r'^/oauth/dropbox/code/$', dropbox.DropboxCode()), (r'^/oauth/dropbox/api/(.*)$', dropbox.DropboxApi()), (r'^/oauth/dropbox/content/(.*)$', dropbox.DropboxContentApi()), (r'^/oauth/dropbox/(.*\.gif)$', xhttp.FileServer('static/dropbox/16x16', 'image/gif')), (r'^/oauth/linkedin/init/$', linkedin.LinkedinInit()), (r'^/oauth/linkedin/code/$', linkedin.LinkedinCode()), (r'^/oauth/linkedin/api/(.*)$', linkedin.LinkedinApi()), (r'^/oauth/reddit/init/$', reddit.RedditInit()), (r'^/oauth/reddit/code/$', reddit.RedditCode()), (r'^/oauth/reddit/api/(.*)$', reddit.RedditApi()), (r'^/oauth/j0057-todo/init/$', j0057_todo.J0057TodoInit()), (r'^/oauth/j0057-todo/code/$', j0057_todo.J0057TodoCode()), (r'^/oauth/j0057-todo/api/(.*)$', j0057_todo.J0057TodoApi()), (r'^/oauth/session/start/$', session.SessionStart()), (r'^/oauth/session/delete/$', session.SessionDelete()), (r'^/oauth/session/check/$', session.SessionCheck()) ) app = OauthRouter() app = xhttp.catcher(app) app = xhttp.xhttp_app(app) if __name__ == '__main__': xhttp.run_server(app, port=8000)