osu-wayback/main.py
2019-03-08 11:12:47 +01:00

46 lines
1.2 KiB
Python

from os import listdir
import tornado.gen
import tornado.httpserver
import tornado.ioloop
import tornado.web
import tornado.netutil
def make_app():
"""
Make tornado application instance
:return: Tornado Application instance
"""
def get_files(dir):
"""
Get all file-/directory-names in a directory with a simple blacklist
:param str: directory to read
:return: String[] of file/directory
"""
return [d for d in listdir(dir) if not d.startswith("_")]
def map_routes(dir):
"""
Map out a directory array of modules in a given directory
:param str: directory to map out and import
:return: tuple( endpoint, module.handle )[] routes
"""
routes = []
apis = get_files(dir)
for api in apis:
if api.endswith(".py"):
api = api.rstrip(".py")
routes.append(
(
r"/%s/%s" % (dir, api), __import__("%s.%s" % (dir.replace("/", "."), api), fromlist=[""]).handle
))
else:
routes += map_routes("%s/%s" % (dir, api))
return routes
routes = map_routes("api")
return tornado.web.Application(routes)