def main(): import tornado.httpserver from tornado.options import define, options from tornado.platform.asyncio import AsyncIOMainLoop import asyncio AsyncIOMainLoop().install() define("port", default=config.DEFAULT_PORT, help="run on the given port", type=int) define("address", default='', help="run on the given address", type=str) define("datadir", default=config.DEFAULT_DATA_DIR, help="the directory to put uploaded data", type=str) define("fork", default=False, help="fork after startup", type=bool) define("cloudflare", default=config.CLOUDFLARE, help="check for Cloudflare IPs", type=bool) define("password", default=config.UPLOAD_PASSWORD, help="optional password", type=str) tornado.options.parse_command_line() if options.fork: if os.fork(): sys.exit() if options.cloudflare: import cloudflare cloudflare.install() loop = asyncio.get_event_loop() loop.create_task(cloudflare.updater()) application = tornado.web.Application( [ (r"/", IndexHandler), (r"/" + SCRIPT_PATH, ToolHandler), (r"/([a-fA-F0-9]{2}/[a-fA-F0-9]{38})(?:\.\w*)?", tornado.web.StaticFileHandler, { 'path': options.datadir, }), (r"/([a-fA-F0-9/]+(?:\.\w*)?)", HashHandler), ], datadir=options.datadir, debug=config.DEBUG, template_path=os.path.join(os.path.dirname(__file__), "templates"), password=config.UPLOAD_PASSWORD, ) http_server = tornado.httpserver.HTTPServer( application, xheaders=config.XHEADERS, ) http_server.listen(options.port, address=options.address) asyncio.get_event_loop().run_forever()
def main(): import tornado.httpserver from tornado.options import define, options from tornado.platform.asyncio import AsyncIOMainLoop import asyncio AsyncIOMainLoop().install() define("port", default=config.DEFAULT_PORT, help="run on the given port", type=int) define("address", default='', help="run on the given address", type=str) define("datadir", default=config.DEFAULT_DATA_DIR, help="the directory to put uploaded data", type=str) define("fork", default=False, help="fork after startup", type=bool) define("cloudflare", default=config.CLOUDFLARE, help="check for Cloudflare IPs", type=bool) define("password", default=config.UPLOAD_PASSWORD, help="optional password", type=str) tornado.options.parse_command_line() if options.fork: if os.fork(): sys.exit() if options.cloudflare: import cloudflare cloudflare.install() loop = asyncio.get_event_loop() loop.create_task(cloudflare.updater()) application = tornado.web.Application([ (r"/", IndexHandler), (r"/" + SCRIPT_PATH, ToolHandler), (r"/([a-fA-F0-9]{2}/[a-fA-F0-9]{38})(?:\.\w*)?", tornado.web.StaticFileHandler, { 'path': options.datadir, }), (r"/([a-fA-F0-9/]+(?:\.\w*)?)", HashHandler), ], datadir=options.datadir, debug=config.DEBUG, template_path=os.path.join(os.path.dirname(__file__), "templates"), password=config.UPLOAD_PASSWORD, ) http_server = tornado.httpserver.HTTPServer( application, xheaders=config.XHEADERS, ) http_server.listen(options.port, address=options.address) asyncio.get_event_loop().run_forever()