Files @ fd6a224a8e7f
Branch filter:

Location: FVDE/ennstatus/ennstatus/__init__.py

Dennis Fink
Added dev tag to version
import os.path

from flask import Flask, render_template
from flask.ext.bootstrap import Bootstrap
from flask.ext.compress import Compress

from werkzeug.contrib.fixers import ProxyFix

import gnupg

bootstrap = Bootstrap()
compress = Compress()


def create_app():

    app = Flask(__name__)

    config_file = os.path.abspath('config.py')
    app.config.from_pyfile(config_file)

    app.wsgi_app = ProxyFix(app.wsgi_app)

    bootstrap.init_app(app)
    compress.init_app(app)

    from .status.functions import mail
    mail.init_app(app)

    from .root.views import root_page
    app.register_blueprint(root_page)

    from .api.views import api_page
    app.register_blueprint(api_page, url_prefix='/api')

    from .donate.views import donate_page
    app.register_blueprint(donate_page, url_prefix='/donate')

    from .status.views import status_page
    app.register_blueprint(status_page, url_prefix='/status')

    from .stats.views import stats_page
    app.register_blueprint(stats_page, url_prefix='/stats')

    from .log import init_logging
    init_logging(app)

    if 'ENNSTATUS_GPG_HOME' in app.config:
        gpg = gnupg.GPG(gnupghome=app.config['ENNSTATUS_GPG_HOME'])
        gpg.encoding = 'utf-8'
        app.extensions['gnupg'] = gpg
    else:
        app.extensions['gnupg'] = False

    @app.errorhandler(404)
    def page_not_found(e):
        return render_template('errorpages/404.html')

    return app