master
Raw Download raw file
 1#!/usr/bin/env python3
 2
 3import os
 4import sys
 5import config
 6import tornado.web
 7from tornado.web import StaticFileHandler	
 8import tornado.options
 9
10from handlers import *
11join = os.path.join
12
13from tornado.options import define, options
14define("port", help="run on the given port", type=int)
15define("debug", default=False, help="set debug mode", type=bool)
16
17
18
19class Application(tornado.web.Application):
20    def __init__(self, **settings):
21        settings['template_path'] = os.path.join(os.path.dirname(__file__), "templates")
22        settings['static_path'] = os.path.join(os.path.dirname(__file__), "static")
23        settings['cookie_secret'] = config.COOKIE_SECRET
24        handlers = [
25            (r"/", TemplateHandler),
26            (r"/(about|contact|survey|data)", TemplateHandler),
27
28            (r"/survey/(build)/.*", TemplateHandler),
29            (r"/survey/(translate)/(.*)", TemplateHandler),
30            (r"/survey/(generate)/(.*)", PDFSurveyHandler),
31
32            (r"/data/load/(.*)", TemplateHandler),
33            (r"/data/analyze/(.*)", TemplateHandler),
34            (r"/data/export/(.*)", DataHandler),
35
36            (r'/static/(.*)', tornado.web.StaticFileHandler, {'path': settings['static_path']}),
37            (r"/(favicon.png)", StaticFileHandler, {"path":config.ROOT},),
38            (r"/js/(.*)", MultiStaticFileHandler, {"paths":[join(config.BOOTSTRAP, "js",),join(config.JQUERY)]},),
39            (r"/css/(.*)", StaticFileHandler, {"path":join(config.BOOTSTRAP, "css")},),
40            (r"/font/(.*)", StaticFileHandler, {"path":join(config.BOOTSTRAP, "fonts")},),
41        ]
42        tornado.web.Application.__init__(self, handlers, **settings)
43
44
45def main():
46    tornado.options.parse_command_line()
47    app = Application(debug=options.debug)
48    host = '0.0.0.0' if options.debug else ''
49    app.listen(options.port, address=host)
50    tornado.ioloop.IOLoop.instance().start()
51
52if __name__ == "__main__":
53    main()