Exemple #1
0
def application(master, language, debug):
    if os.environ.get("AS_TLINJECT_SECRET", ""):
        print("TLInject is enabled for this server.")

    locale.set_default_locale("en")
    locale.load_gettext_translations(readonly_app_path("gettext"), "tornado")
    strings = static_strings()
    db_coordinator = database.DatabaseCoordinator()

    application = Application(
        dispatch.ROUTES,
        db_coordinator=db_coordinator,
        master=libcard2.master.MasterData(master),
        string_access=create_dict_aggregator(master, language),
        image_server=os.environ.get("AS_IMAGE_SERVER"),
        tlinject_context=tlinject.TLInjectContext(db_coordinator),
        news_context=news.NewsDatabase(db_coordinator),
        card_tracking=card_tracking.CardTrackingDatabase(db_coordinator),
        event_tracking=event_tracker.EventTrackingDatabase(db_coordinator),
        template_path=readonly_app_path("webui"),
        runtime_info=create_runtime_info(),
        tlinject_secret=os.environ.get("AS_TLINJECT_SECRET",
                                       "").encode("utf8"),
        ui_methods=pageutils.UI_METHODS,
        static_path=readonly_app_path("static"),
        static_strings=strings,
        debug=debug,
        autoreload=debug,
    )
    return application
Exemple #2
0
def main():

    # options
    parse_command_line()

    # Locale
    load_gettext_translations(settings.I18N_PATH, "luoyun")
    set_default_locale('zh_CN')

    logging.info("starting torando web server")

    save_pid(delete_exist=True)

    if settings.IPV4_ONLY:
        import socket
        sockets = bind_sockets(options.port, family=socket.AF_INET)
    else:
        sockets = bind_sockets(options.port)

    if not settings.DEBUG:
        import tornado.process
        tornado.process.fork_processes(0)

    application = Application()
    server = HTTPServer(application, xheaders=True)
    server.add_sockets(sockets)

    save_pid()

    IOLoop.instance().start()
Exemple #3
0
def main():

    # options
    parse_command_line()

    # Locale
    load_gettext_translations(settings.I18N_PATH, "luoyun")
    set_default_locale('zh_CN')

    logging.info("starting torando web server")

    if settings.IPV4_ONLY:
        import socket
        sockets = bind_sockets(options.port, family=socket.AF_INET)
    else:
        sockets = bind_sockets(options.port)

    if not settings.DEBUG:
        import tornado.process
        tornado.process.fork_processes(0)

    application = Application()
    server = HTTPServer(application, xheaders=True)
    server.add_sockets(sockets)
    IOLoop.instance().start()
Exemple #4
0
def start_server():
    """ Main entry point for the application """
    locale.set_default_locale("en_US")
    locale.load_translations("locale")
    if options.autostart_game:
        app.settings["game_started"] = True
        app.settings["history_callback"].start()
        if options.use_bots:
            app.settings["score_bots_callback"].start()
    # Setup server object
    if options.ssl:
        server = HTTPServer(
            app,
            ssl_options={"certfile": options.certfile, "keyfile": options.keyfile},
            xheaders=options.x_headers,
        )
    else:
        server = HTTPServer(app, xheaders=options.x_headers)
    try:
        sockets = netutil.bind_sockets(options.listen_port, options.listen_interface)
    except (OSError, IOError) as err:
        logging.error("Problem binding socket to port %s", str(options.listen_port))
        if err.errno == 13:
            pypath = sys.executable
            if os_path.islink(pypath):
                pypath = os_path.realpath(pypath)
            logging.error(
                "Possible Fix: sudo setcap CAP_NET_BIND_SERVICE=+eip %s", pypath
            )
        elif err.errno == 98:
            logging.error(
                "The port may be in use by an existing service.  RTB already running?"
            )
        else:
            logging.error(err)
        sys.exit()
    server.add_sockets(sockets)
    if options.debug:
        logging.warn(
            "%sDebug mode is enabled; DO NOT USE THIS IN PRODUCTION%s" % (bold + R, W)
        )
    if options.autostart_game:
        logging.info("The game is about to begin, good hunting!")
    try:
        Scoreboard.update_gamestate(app)
    except OperationalError as err:
        if "Table definition has changed" in str(err):
            logging.info("Table definitions have changed -restarting RootTheBox.")
            return "restart"
        else:
            logging.error("There was a problem starting RootTheBox. Error: " + str(err))
    try:
        io_loop.start()
    except KeyboardInterrupt:
        sys.stdout.write("\r" + WARN + "Shutdown Everything!\n")
    except:
        logging.exception("Main i/o loop threw exception")
    finally:
        io_loop.stop()
        _exit(0)
Exemple #5
0
 def __init__(self, application, request, **kwargs):
     if BaseHandler._first_running:
         self._after_prefork()
         BaseHandler._first_running = False
     #国际化
     locale.load_translations("./protected/translations")
     locale.set_default_locale("zh_CN")
     self._locale = locale.get()
     super(BaseHandler, self).__init__(application, request, **kwargs)
     self.session = session.Session(self.application.session_manager, self)
Exemple #6
0
    def setup_locale(self):
        if not hasattr(settings, 'LOCALE'):
            return

        assert 'code' in settings.LOCALE
        assert 'path' in settings.LOCALE
        assert 'domain' in settings.LOCALE

        locale_code = settings.LOCALE['code']
        locale.set_default_locale(locale_code)
        locale.load_gettext_translations(settings.LOCALE['path'],
                                         settings.LOCALE['domain'])
        self.define_current_locale(locale_code)
Exemple #7
0
    def setup_locale(self):        
        if not hasattr(settings, 'LOCALE'):
            return
            
        assert settings.LOCALE.has_key('code')
        assert settings.LOCALE.has_key('path')
        assert settings.LOCALE.has_key('domain')

        locale_code = settings.LOCALE['code']
        locale.set_default_locale(locale_code)
        locale.load_gettext_translations(settings.LOCALE['path'],
                                         settings.LOCALE['domain'])
        self.define_current_locale(locale_code)
Exemple #8
0
    def set_language(request, language, session=None):
        locale.set_default_locale(LOCALES.get(language, DEFAULT_LANGUAGE))
        request.set_secure_cookie('locale', LOCALES.get(language, DEFAULT_LANGUAGE), 1)
        request.locale = locale.get(LOCALES.get(language, DEFAULT_LOCALE))

        if session is not None and session is not False:
            redis = request.redis.get(threading.currentThread())
            """:type : connectors.RedisConnector.RedisConnector"""
            if redis.exists(str(session)):
                params = redis.get(session)
                params = json.loads(str(params))
                params["language"] = language
                redis.set(session, json.dumps(params))
Exemple #9
0
    def _prepare_translations(self):
        """Load in translations if they are set, and add the default locale as
        well.

        """
        if config.TRANSLATIONS in self.paths:
            LOGGER.info('Loading translations from %s',
                        self.paths[config.TRANSLATIONS])
            from tornado import locale
            locale.load_translations(self.paths[config.TRANSLATIONS])
            if config.DEFAULT_LOCALE in self._config:
                LOGGER.info('Setting default locale to %s',
                            self._config[config.DEFAULT_LOCALE])
                locale.set_default_locale(self._config[config.DEFAULT_LOCALE])
Exemple #10
0
def setup():
    """
    Configure the settings (this happens as a side effect of accessing the
    first setting), configure logging and default locale.
    """
    from anthill.framework.conf import settings
    from anthill.framework.utils.log import configure_logging
    from tornado.locale import set_default_locale, load_gettext_translations

    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)

    if settings.USE_I18N:
        set_default_locale(settings.LOCALE)
        load_gettext_translations('locale', 'messages')
Exemple #11
0
    def set_language(request, language, session=None):
        locale.set_default_locale(LOCALES.get(language, DEFAULT_LANGUAGE))
        request.set_secure_cookie('locale',
                                  LOCALES.get(language, DEFAULT_LANGUAGE), 1)
        request.locale = locale.get(LOCALES.get(language, DEFAULT_LOCALE))

        if session is not None and session is not False:
            redis = request.redis.get(threading.currentThread())
            """:type : connectors.RedisConnector.RedisConnector"""
            if redis.exists(str(session)):
                params = redis.get(session)
                params = json.loads(str(params))
                params["language"] = language
                redis.set(session, json.dumps(params))
Exemple #12
0
    def _prepare_translations(self):
        """Load in translations if they are set, and add the default locale as
        well.

        """
        if config.TRANSLATIONS in self.paths:
            LOGGER.info('Loading translations from %s',
                        self.paths[config.TRANSLATIONS])
            from tornado import locale
            locale.load_translations(self.paths[config.TRANSLATIONS])
            if config.DEFAULT_LOCALE in self._config:
                LOGGER.info('Setting default locale to %s',
                            self._config[config.DEFAULT_LOCALE])
                locale.set_default_locale(self._config[config.DEFAULT_LOCALE])
Exemple #13
0
def load_calibre_translations():
    from tornado import locale
    tmp = tempfile.mkdtemp()
    with zipfile.ZipFile(P('localization/locales.zip')) as zf:
        trans = {}
        for name in zf.namelist():
            if name.endswith(".mo"):
                trans[name.split("/")[0]] = name
        for code, zpath in trans.items():
            try:
                buf = cStringIO.StringIO(zf.read(zpath))
                locale._translations[code] = GNUTranslations(buf)
            except:
                pass
        locale._use_gettext = True
        locale.set_default_locale("zh_CN")
Exemple #14
0
def application(master, language, debug):
    if os.environ.get("AS_TLINJECT_SECRET", ""):
        print("TLInject is enabled for this server.")

    if not os.environ.get("AS_COOKIE_SECRET"):
        raise ValueError("You need to set AS_COOKIE_SECRET in the environment.")

    locale.set_default_locale("en")
    locale.load_gettext_translations(readonly_app_path("gettext"), "tornado")
    strings = static_strings()
    db_coordinator = database.DatabaseCoordinator()

    have_preamble_extra = os.path.exists(readonly_app_path("webui", "t_preamble_extra.html"))
    have_footer_extra = os.path.exists(readonly_app_path("webui", "t_footer_extra.html"))

    vi_class = namedtuple("runtime_info_t", ("app_revision", "host_id"))
    runtime_info = vi_class(os.environ.get("AS_GIT_REVISION"), os.environ.get("AS_HOST_ID"))

    application = Application(
        dispatch.ROUTES,
        db_coordinator=db_coordinator,
        master=libcard2.master.MasterData(master),
        more_masters=create_more_masters(),
        string_access=create_dict_aggregator(master, language),
        image_server=os.environ.get("AS_IMAGE_SERVER"),
        template_path=readonly_app_path("webui"),
        runtime_info=runtime_info,
        tlinject_secret=os.environ.get("AS_TLINJECT_SECRET", "").encode("utf8"),
        ui_methods=pageutils.UI_METHODS,
        static_path=readonly_app_path("static"),
        static_strings=strings,
        debug=debug,
        autoreload=debug,
        wds_host=os.environ.get("AS_WDS_HOST", "//localhost:5002") if debug else None,
        have_preamble_extra=have_preamble_extra,
        have_footer_extra=have_footer_extra,
        cookie_secret=os.environ.get("AS_COOKIE_SECRET"),
        feedback_link=os.environ.get("AS_FEEDBACK_URL"),
    )
    return application
Exemple #15
0
    def render(self, tpl_name=None, lang=DEFAULT_LANG, page=None, tpl_kwargs=None, page_title=None,
               page_title_key=None, page_description=None, page_description_key=None,
               page_keywords=None, page_keywords_key=None, og_image=None,
               status_code=None, *args, **kwargs):

        if tpl_name is None:
            tpl_name = 'base.html'

            if page is not None:
                page_tpl_name = '%s.html' % page
                if file_exists(os.path.join(TEMPLATES_PATH, page_tpl_name)):
                    tpl_name = page_tpl_name

        if lang not in LOCALE_LANG_SHORT_ONLY:
            lang = DEFAULT_LANG

        locale_code = get_locale_code_by_lang(lang)
        trans = Translation()

        if tpl_kwargs is None:
            tpl_kwargs = {}

        if page_title is None:
            if page_title_key is None:
                underscored_page = page.replace('-', '_')
                page_title_key = '%s_page_title' % underscored_page
            page_title = trans.find(page_title_key, lang)

        if page_description is None:
            if page_description_key is None:
                page_description_key = 'page_description'
            page_description = trans.find(page_description_key, lang)

        if page_keywords is None:
            if page_keywords_key is None:
                page_keywords_key = 'page_keywords'
            page_keywords = trans.find(page_keywords_key, lang, [])

        page_short_url = self.request.uri
        page_full_url = '%s://%s%s' % (BASE_DOMAIN_PROTOCOL, self.request.host, page_short_url)

        render_tpl_kwargs = {
            'page_title': page_title,
            'page_description': page_description,
            'page_keywords': page_keywords,
            'google_analytics_enabled': GOOGLE_ANALYTICS_ENABLED,
            'google_analytics_track_id': GOOGLE_ANALYTICS_TRACK_ID,
            'facebook_app_id': FACEBOOK_APP_ID,
            'facebook_app_page': FACEBOOK_APP_PAGE,
            'disqus': DISQUS.get(lang),
            'base_domain': BASE_DOMAIN,
            'media_domain': MEDIA_DOMAIN,
            'base_domain_protocol': BASE_DOMAIN_PROTOCOL,
            'media_domain_protocol': MEDIA_DOMAIN_PROTOCOL,
            'base_path': '%s://%s' % (BASE_DOMAIN_PROTOCOL, BASE_DOMAIN),
            'media_path': '%s://%s' % (MEDIA_DOMAIN_PROTOCOL, MEDIA_DOMAIN),
            'langs': LOCALE_LANG_SHORT_ONLY,
            'page_short_url': page_short_url,
            'page_full_url': page_full_url,
            'locale_code': locale_code,
            'debug': DEBUG,
            'page': page,
            'lang': lang,
        }
        render_tpl_kwargs.update(tpl_kwargs)

        set_default_locale(locale_code)

        if status_code is not None:
            self.set_status(status_code=status_code)
            self._log()

        try:
            super(BaseHandler, self).render(tpl_name, **render_tpl_kwargs)
        except Exception as e:
            ip = self.request.remote_ip
            collected = TracebackCollector().collect(e)

            if DEBUG:
                raise

            else:
                self.render_error_404(lang)
                logger.error('ip: <%s>, collected: <%s>' %
                             (ip, collected))
Exemple #16
0
# coding=utf-8
"""runtime context package
"""
from __future__ import absolute_import, division, print_function, with_statement

import weakref

# 理论上来说,下面这段代码应该写在`tools/locale.py`里
from tornado.locale import Locale, load_gettext_translations, set_default_locale

import settings
from tools import get_session_class, connection

load_gettext_translations(settings.TRANSLATIONS_DIRECTORY,
                          settings.TRANSLATIONS_DOMAIN)
set_default_locale(settings.DEFAULT_LOCALE)

__author__ = "Chuanchuan Tu"
__copyright__ = "Copyright 2016, Kanjian"
__credits__ = ["Chuanchuan Tu"]
__license__ = "Apache"
__version__ = "2.0"
__maintainer__ = "Chuanchuan Tu"
__email__ = "*****@*****.**"
__status__ = "Production"

__all__ = ["RuntimeContext"]


class RuntimeContext(object):
    """运行时上下文
Exemple #17
0
    def __init__(self, settings):
        from controller.attachment import AttachmentHandler, AvatarHandler
        from controller.search import AutoCompleteHandler
        from controller.mycalendar import  CalendarHandler, CalendarEventHandler, CalendarEventModifyHandler
        from controller.operation import OperationHandler, TodoItemLogHandler
        from controller.project import ProjectHandler, ProjectFilesHandler, ProjectColorHandler, ProjectDetailHandler, \
                ProjectAccessHandler, NewProjectHandler
        from controller.todo import TodoListHandler, TodoListDetailHandler, TodoItemHandler, TodoItemDetailHandler, \
                TodoItemModifyHandler, TodoItemCommentHandler, TodoListModifyHandler, TodoListCommentHandler
        from controller.topic import MessageHandler, MessageDetailHandler, NewMessageHandler, CommentHandler, CommentDetailHandler
        from controller.user import RegisterHandler, LoginHandler, SignOutHandler, TeamNewHandler, TeamHandler, SettingHandler, \
                PeopleHandler, NewPeopleHandler, PeopleDetailHandler, JoinHandler
        from controller.calendarfeed import CalendarFeedHandler, CalendarFeedPortalHandler, CalendarItemFeedHandler
        from controller.mygraphs import ProjectGraphsHandler, ProjectDataHandler, ProjectTodoGraphsHandler

        handlers = [
            ('/([0-9]+)', ProjectHandler),
            ('/([0-9]+)/attachment/([0-9A-Za-z]+)', AttachmentHandler),
            ('/([0-9]+)/calendar', CalendarHandler),
            ('/([0-9]+)/event', CalendarEventHandler),
            ('/([0-9]+)/event/([0-9]+)/trash', CalendarEventModifyHandler),
            ('/([0-9]+)/operation', OperationHandler),
            ('/([0-9]+)/project', ProjectHandler),
            ('/([0-9]+)/project/([0-9]+)/files', ProjectFilesHandler),
            ('/([0-9]+)/project/([0-9]+)/color', ProjectColorHandler),
            ('/([0-9]+)/project/([0-9]+)', ProjectDetailHandler),
            ('/([0-9]+)/project/([0-9]+)/access', ProjectAccessHandler),
            ('/([0-9]+)/project/([0-9]+)/graphs', ProjectGraphsHandler),
            ('/([0-9]+)/project/([0-9]+)/todographs', ProjectTodoGraphsHandler),
            ('/([0-9]+)/project/([0-9]+)/(messagedata|messageuserdata|tododata|todouserdata)', ProjectDataHandler),
            ('/([0-9]+)/project/new', NewProjectHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist', TodoListHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)', TodoListDetailHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)/trash', TodoListModifyHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)/comment', TodoListCommentHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)/todoitem', TodoItemHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)/todoitem/([0-9]+)', TodoItemDetailHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)/todoitem/([0-9]+)/log', TodoItemLogHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)/todoitem/([0-9]+)/(done|undone|trash)', TodoItemModifyHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)/todoitem/([0-9]+)/comment', TodoItemCommentHandler),
            ('/([0-9]+)/project/([0-9]+)/message', MessageHandler),
            ('/([0-9]+)/project/([0-9]+)/message/([0-9]+)', MessageDetailHandler),
            ('/([0-9]+)/project/([0-9]+)/message/new', NewMessageHandler),
            ('/([0-9]+)/project/([0-9]+)/message/([0-9]+)/comment', CommentHandler),
            ('/([0-9]+)/project/([0-9]+)/message/([0-9]+)/comment/([0-9]+)', CommentDetailHandler),
            ('/([0-9]+)/people', PeopleHandler),
            ('/([0-9]+)/people/([0-9]+)', PeopleDetailHandler),
            ('/([0-9]+)/people/new', NewPeopleHandler),
            ('/([0-9]+)/calendar_feeds', CalendarFeedPortalHandler),
            ('/([0-9]+)/calendar_feeds.ics', CalendarFeedHandler),
            ('/([0-9]+)/calendar_feeds/([cp][0-9]+).ics', CalendarItemFeedHandler),
            ('/avatar', AvatarHandler),
            ('/avatar/([0-9A-Za-z]+)', AvatarHandler),
            ('/attachment', AttachmentHandler),
            ('/register', RegisterHandler),
            ('/login', LoginHandler),
            ('/signOut', SignOutHandler),
            ('/team', TeamNewHandler),
            ('/', TeamNewHandler),
            ('/team/([0-9]+)', TeamHandler),
            ('/settings', SettingHandler),
            ('/join/([0-9a-z]+)', JoinHandler),
            ('/autocomplete', AutoCompleteHandler),
        ]
        pool = redis.ConnectionPool(host=options.redis.get("host"), port=options.redis.get("port"), db=0)
        r = redis.Redis(connection_pool=pool)
        self.session_store = RedisSessionStore(r)
        tornado.web.Application.__init__(self, handlers, **settings)
        
        qm = QueMail.get_instance()
        qm.init(options.smtp.get("host"), options.smtp.get("user"), options.smtp.get("password"))
        qm.start()

        from tornado import locale
        language_path = os.path.join(os.path.dirname(__file__), "i18n")
        locale.load_translations(language_path)
        locale.set_default_locale(options.locale)
Exemple #18
0
    def __init__(self, settings):
        from controller.attachment import AttachmentHandler, AvatarHandler
        from controller.search import AutoCompleteHandler
        from controller.mycalendar import CalendarHandler, CalendarEventHandler, CalendarEventModifyHandler
        from controller.operation import OperationHandler, TodoItemLogHandler
        from controller.project import ProjectHandler, ProjectFilesHandler, ProjectColorHandler, ProjectDetailHandler, \
                ProjectAccessHandler, NewProjectHandler
        from controller.todo import TodoListHandler, TodoListDetailHandler, TodoItemHandler, TodoItemDetailHandler, \
                TodoItemModifyHandler, TodoItemCommentHandler, TodoListModifyHandler, TodoListCommentHandler
        from controller.topic import MessageHandler, MessageDetailHandler, NewMessageHandler, CommentHandler, CommentDetailHandler
        from controller.user import RegisterHandler, LoginHandler, SignOutHandler, TeamNewHandler, TeamHandler, SettingHandler, \
                PeopleHandler, NewPeopleHandler, PeopleDetailHandler, JoinHandler
        from controller.calendarfeed import CalendarFeedHandler, CalendarFeedPortalHandler, CalendarItemFeedHandler
        from controller.mygraphs import ProjectGraphsHandler, ProjectDataHandler, ProjectTodoGraphsHandler

        handlers = [
            ('/([0-9]+)', ProjectHandler),
            ('/([0-9]+)/attachment/([0-9A-Za-z]+)', AttachmentHandler),
            ('/([0-9]+)/calendar', CalendarHandler),
            ('/([0-9]+)/event', CalendarEventHandler),
            ('/([0-9]+)/event/([0-9]+)/trash', CalendarEventModifyHandler),
            ('/([0-9]+)/operation', OperationHandler),
            ('/([0-9]+)/project', ProjectHandler),
            ('/([0-9]+)/project/([0-9]+)/files', ProjectFilesHandler),
            ('/([0-9]+)/project/([0-9]+)/color', ProjectColorHandler),
            ('/([0-9]+)/project/([0-9]+)', ProjectDetailHandler),
            ('/([0-9]+)/project/([0-9]+)/access', ProjectAccessHandler),
            ('/([0-9]+)/project/([0-9]+)/graphs', ProjectGraphsHandler),
            ('/([0-9]+)/project/([0-9]+)/todographs',
             ProjectTodoGraphsHandler),
            ('/([0-9]+)/project/([0-9]+)/(messagedata|messageuserdata|tododata|todouserdata)',
             ProjectDataHandler),
            ('/([0-9]+)/project/new', NewProjectHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist', TodoListHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)',
             TodoListDetailHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)/trash',
             TodoListModifyHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)/comment',
             TodoListCommentHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)/todoitem',
             TodoItemHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)/todoitem/([0-9]+)',
             TodoItemDetailHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)/todoitem/([0-9]+)/log',
             TodoItemLogHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)/todoitem/([0-9]+)/(done|undone|trash)',
             TodoItemModifyHandler),
            ('/([0-9]+)/project/([0-9]+)/todolist/([0-9]+)/todoitem/([0-9]+)/comment',
             TodoItemCommentHandler),
            ('/([0-9]+)/project/([0-9]+)/message', MessageHandler),
            ('/([0-9]+)/project/([0-9]+)/message/([0-9]+)',
             MessageDetailHandler),
            ('/([0-9]+)/project/([0-9]+)/message/new', NewMessageHandler),
            ('/([0-9]+)/project/([0-9]+)/message/([0-9]+)/comment',
             CommentHandler),
            ('/([0-9]+)/project/([0-9]+)/message/([0-9]+)/comment/([0-9]+)',
             CommentDetailHandler),
            ('/([0-9]+)/people', PeopleHandler),
            ('/([0-9]+)/people/([0-9]+)', PeopleDetailHandler),
            ('/([0-9]+)/people/new', NewPeopleHandler),
            ('/([0-9]+)/calendar_feeds', CalendarFeedPortalHandler),
            ('/([0-9]+)/calendar_feeds.ics', CalendarFeedHandler),
            ('/([0-9]+)/calendar_feeds/([cp][0-9]+).ics',
             CalendarItemFeedHandler),
            ('/avatar', AvatarHandler),
            ('/avatar/([0-9A-Za-z]+)', AvatarHandler),
            ('/attachment', AttachmentHandler),
            ('/register', RegisterHandler),
            ('/login', LoginHandler),
            ('/signOut', SignOutHandler),
            ('/team', TeamNewHandler),
            ('/', TeamNewHandler),
            ('/team/([0-9]+)', TeamHandler),
            ('/settings', SettingHandler),
            ('/join/([0-9a-z]+)', JoinHandler),
            ('/autocomplete', AutoCompleteHandler),
        ]
        pool = redis.ConnectionPool(host=options.redis.get("host"),
                                    port=options.redis.get("port"),
                                    db=0)
        r = redis.Redis(connection_pool=pool)
        self.session_store = RedisSessionStore(r)
        tornado.web.Application.__init__(self, handlers, **settings)

        qm = QueMail.get_instance()
        qm.init(options.smtp.get("host"), options.smtp.get("user"),
                options.smtp.get("password"))
        qm.start()

        from tornado import locale
        language_path = os.path.join(os.path.dirname(__file__), "i18n")
        locale.load_translations(language_path)
        locale.set_default_locale(options.locale)
Exemple #19
0
# -*- coding: utf-8 -*-
from tornado import locale
#国际化
locale.load_translations("./protected/translations")
locale.set_default_locale("zh_CN")
_locale = locale.get()


class AdminErrorMessage(object):
    error_message = {
        '001': _locale.translate('admin_userinfo_incomplete').encode(
            "utf-8"),  #填写信息不完整
        '002':
        _locale.translate('admin_user_not_exist').encode("utf-8"),  #'该用户不存在'
        '003': _locale.translate('admin_password_no_correct').encode(
            "utf-8"),  #'密码错误'
        '004': _locale.translate('admin_session_had_expired').encode(
            "utf-8"),  #'您的会话已经过期'
        '005':
        _locale.translate('admin_delete_error').encode("utf-8"),  #'删除失败'
        '006': _locale.translate('admin_add_error').encode("utf-8"),  #'添加失败'
        '007':
        _locale.translate('admin_update_error').encode("utf-8"),  #'修改失败'
        '008':
        _locale.translate('admin_same_error').encode("utf-8"),  #'存在相同记录'
    }


class ErrorMessage(object):
    error_message = {
        '001': _locale.translate('login_fail').encode("utf-8"),  #登录失败
Exemple #20
0
def set_default_locale(*args, **kwargs):
    return t_locale.set_default_locale(*args, **kwargs)
        }
        if not autoescape:
            config['autoescape'] = None

        # create jinja evironment here to make its own cache works
        template_path = os.path.join(template_path, 'jinja')
        self.env = Environment(loader=FileSystemLoader(template_path),
                               auto_reload=config['debug'],
                               autoescape=autoescape,
                               extensions=['jinja2.ext.autoescape'])
        self.env.filters['chunks'] = chunks
        self.env.filters['datetimeformat'] = datetimeformat

        super(Application, self).__init__(app_handlers, **config)


if __name__ == "__main__":
    define("debug", default=0, help="run debug mode", type=int)
    define("autoescape", default=0, help="enable autoescape", type=int)
    define("port", default=8888, help="run on the given port", type=int)

    tornado.options.parse_command_line()
    translations = os.path.join(PROJECT_DIR, "../translations")
    load_translations(translations)
    set_default_locale("ru_RU")

    logging.info("start server on port %s" % options.port)
    application = tornado.httpserver.HTTPServer(Application())
    application.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()
Exemple #22
0
def set_default_locale(*args, **kwargs):
    return t_locale.set_default_locale(*args, **kwargs)
Exemple #23
0
import os

from tornado.locale import set_default_locale
from tornado.options import define, parse_command_line

# MongoDB URL
from mongostick.handlers.main import MainHandler

define(
    'mongodb_url',
    default='mongodb://127.0.0.1:27017',
    help='Connection URL to your MongoDB'
)


parse_command_line()

ROOT = os.path.dirname(os.path.abspath(__file__))
frontend_path = os.path.join(ROOT, 'frontend', 'build', )

settings = {
    'debug': False,
    'static_path': os.path.join(frontend_path, 'static'),
    'index_file': os.path.join(frontend_path, 'index.html'),
    'default_handler_class': MainHandler,
}

set_default_locale('en_US')
Exemple #24
0
from tornado import autoreload, locale
from tornado.web import StaticFileHandler
import abeja.server.web.handlers

settings = {
    "debug": True,
    "template_path": "./web/static/template",
    "cookie_secret": "DOVIETHOA",
    
    "ui_modules": {"UserToolbar": abeja.server.web.handlers.UserToolbar}
}

application = tornado.web.Application([
    (r"/res/style/(.*)", StaticFileHandler, {"path": "./web/static/style"}),
    
    (r"/", abeja.server.web.handlers.HomeHandler),
    (r"/index.html", abeja.server.web.handlers.HomeHandler),
    (r"/login.html", abeja.server.web.handlers.UserLoginHandler),
    (r"/logout.html", abeja.server.web.handlers.UserLogoutHandler),
    (r"/register.html", abeja.server.web.handlers.UserRegisterHandler),
], **settings)

locale.set_default_locale("vi_VN")
locale.load_translations("./web/static/lang")

if __name__ == "__main__":
    application.listen(3692)
    ioloop = tornado.ioloop.IOLoop.instance()
    autoreload.start(ioloop)
    ioloop.start()