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