-# Content DB
+# ContentDB
# Copyright (C) 2018 rubenwardy
#
# This program is free software: you can redistribute it and/or modify
from flask_gravatar import Gravatar
import flask_menu as menu
from flask_mail import Mail
-from flaskext.markdown import Markdown
from flask_github import GitHub
-from flask_wtf.csrf import CsrfProtect
+from flask_wtf.csrf import CSRFProtect
from flask_flatpages import FlatPages
from flask_babel import Babel
-import os
+import os, redis
app = Flask(__name__, static_folder="public/static")
app.config["FLATPAGES_ROOT"] = "flatpages"
app.config["FLATPAGES_EXTENSION"] = ".md"
app.config.from_pyfile(os.environ["FLASK_CONFIG"])
+r = redis.Redis.from_url(app.config["REDIS_URL"])
+
menu.Menu(app=app)
-markdown = Markdown(app, extensions=["fenced_code"], safe_mode=True, output_format="html5")
github = GitHub(app)
-csrf = CsrfProtect(app)
+csrf = CSRFProtect(app)
mail = Mail(app)
pages = FlatPages(app)
babel = Babel(app)
register_mail_error_handler(app, mail)
-@babel.localeselector
-def get_locale():
- return request.accept_languages.best_match(app.config['LANGUAGES'].keys())
+from .markdown import init_app
+init_app(app)
+
+# @babel.localeselector
+# def get_locale():
+# return request.accept_languages.best_match(app.config['LANGUAGES'].keys())
from . import models, tasks, template_filters
@app.route("/uploads/<path:path>")
def send_upload(path):
- return send_from_directory("public/uploads", path)
+ return send_from_directory(app.config['UPLOAD_DIR'], path)
@menu.register_menu(app, ".help", "Help", order=19, endpoint_arguments_constructor=lambda: { 'path': 'help' })
@app.route('/<path:path>/')
def check_for_ban():
if current_user.is_authenticated:
if current_user.rank == models.UserRank.BANNED:
- flash("You have been banned.", "error")
+ flash("You have been banned.", "danger")
logout_user()
return redirect(url_for('user.login'))
elif current_user.rank == models.UserRank.NOT_JOINED:
current_user.rank = models.UserRank.MEMBER
models.db.session.commit()
+
+from .utils import clearNotifications
+
+@app.before_request
+def check_for_notifications():
+ if current_user.is_authenticated:
+ clearNotifications(request.path)