Anton Shestakov <av6@dwimlabs.net>, Mon, 18 Sep 2017 18:52:34 +0800
viewer: create an index for checks to speed up "order by" a lot
viewer.py
Permissions: -rwxr-xr-x
from __future__ import absolute_import from tornado.ioloop import IOLoop from tornado.options import define, options from tornado.web import Application from candolint import handlers as h, uimodules from candolint.models import database from candolint.utils import rel class CandolintViewer(Application): def __init__(self, debug=False): project_re = r'/([.a-z0-9_-]+)/([^/]+)/([^/]+)' (project_re, h.ProjectHandler), (project_re + r'/atom', h.AtomHandler), (project_re + r'/(\d+|latest)(?:/(raw))?', h.CheckHandler), (project_re + r'/(\d+|latest)/dot\.svg', h.DotHandler), (project_re + r'/(\d+|latest)/compare/(\d+|latest)', h.CompareHandler), (project_re + r'/status\.svg', h.StatusHandler), (r'.*', h.ErrorHandler, {'status_code': 404}) static_path=rel('static'), template_path=rel('templates'), super(CandolintViewer, self).__init__(handlers, **settings) logging.getLogger('peewee').setLevel(logging.DEBUG) database.init(rel('database.sqlite')) def listen(self, port, address='', **kwargs): name = self.__class__.__name__ logging.info('%s is serving on http://%s:%d/', name, address, port) super(CandolintViewer, self).listen(port, address, **kwargs) define('listen', metavar='IP', default='127.0.0.1') define('port', metavar='PORT', default=8033, type=int) define('xheaders', metavar='True|False', default=False, type=bool) define('debug', metavar='True|False', default=False, type=bool) options.parse_command_line() application = CandolintViewer(options.debug) application.listen(options.port, options.listen, xheaders=options.xheaders) if __name__ == '__main__':