Titan/webapp/titanembeds/app.py
2017-08-19 03:52:32 +00:00

45 lines
1.6 KiB
Python

from config import config
from .database import db
from flask import Flask, render_template, request, session, url_for, redirect, jsonify
from flask_sslify import SSLify
from titanembeds.utils import rate_limiter, discord_api, bot_alive, socketio
from .blueprints import api, user, admin, embed
import os
from titanembeds.database import get_administrators_list
os.chdir(config['app-location'])
app = Flask(__name__, static_folder="static")
app.config['SQLALCHEMY_DATABASE_URI'] = config['database-uri'] + "?charset=utf8mb4"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # Suppress the warning/no need this on for now.
app.config['RATELIMIT_HEADERS_ENABLED'] = True
app.config['SQLALCHEMY_POOL_RECYCLE'] = 250
app.config['RATELIMIT_STORAGE_URL'] = 'keyvalprops://'
app.secret_key = config['app-secret']
db.init_app(app)
rate_limiter.init_app(app)
sslify = SSLify(app, permanent=True)
socketio.init_app(app)
app.register_blueprint(api.api, url_prefix="/api", template_folder="/templates")
app.register_blueprint(admin.admin, url_prefix="/admin", template_folder="/templates")
app.register_blueprint(user.user, url_prefix="/user", template_folder="/templates")
app.register_blueprint(embed.embed, url_prefix="/embed", template_folder="/templates")
@app.route("/")
def index():
return render_template("index.html.j2")
@app.route("/about")
def about():
return render_template("about.html.j2")
@app.before_request
def before_request():
discord_api.init_discordrest()
@app.context_processor
def context_processor():
bot_status = bot_alive()
return {"bot_status": bot_status, "devs": get_administrators_list()}