Anton Shestakov <av6@dwimlabs.net>, Fri, 07 Oct 2016 13:36:44 +0800
viewer: display full project link, but shade domain and user part
Also, project title is just project.name.
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 uimodules from candolint.handlers import IndexHandler, ProjectHandler, CheckHandler, StatusHandler, ErrorHandler 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, ProjectHandler), (project_re + r'/(\d+|latest)(?:/(raw))?', CheckHandler), (project_re + r'/status\.svg', StatusHandler), (r'.*', 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__':