Mercurial > libervia-backend
view twisted/plugins/libervia_backend_plugin.py @ 4100:810921c33a47
tools (common/template): add filter to get media types:
Add 2 filters to get main type and subtype of media type. Jinja2 and Nunjucks don't handle
slices in the same way (Python way for Jinja2, JS way for Nunjucks), making it difficult
to retrieve main type of a media from media type. Thoses filters work in both cases.
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 22 Jun 2023 15:49:06 +0200 |
parents | 84f6bee6440d |
children |
line wrap: on
line source
#!/usr/bin/env python3 # Libervia: an XMPP client # Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org) # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. from zope.interface import implementer from twisted.python import usage from twisted.plugin import IPlugin from twisted.application.service import IServiceMaker # XXX: We need to configure logs before any log method is used, so here is the best place. from libervia.backend.core.constants import Const as C from libervia.backend.core.i18n import _ from sat_tmp.wokkel import install as install_wokkel_patches install_wokkel_patches() def initialise(options): """Method to initialise global modules""" # XXX: We need to configure logs before any log method is used, so here is the best place. from libervia.backend.core import log_config log_config.libervia_configure(C.LOG_BACKEND_TWISTED, C, backend_data=options) class Options(usage.Options): optParameters = [] @implementer(IPlugin, IServiceMaker) class LiberviaMaker: tapname = C.APP_NAME_FILE description = _("%s XMPP client backend") % C.APP_NAME_FULL options = Options def set_debugger(self): from twisted.internet import defer if defer.Deferred.debug: # if we are in debug mode, we want to use ipdb instead of pdb try: import ipdb import pdb pdb.set_trace = ipdb.set_trace pdb.post_mortem = ipdb.post_mortem except ImportError: pass def makeService(self, options): from twisted.internet import asyncioreactor asyncioreactor.install() self.set_debugger() # XXX: Libervia must be imported after log configuration, # because it write stuff to logs initialise(options.parent) from libervia.backend.core.main import LiberviaBackend return LiberviaBackend() serviceMaker = LiberviaMaker()