__init__.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. """
  2. Initialize the modules needed for the website
  3. """
  4. import os
  5. import discord
  6. from discord.ext import commands
  7. from flask import Flask
  8. from flask_sqlalchemy import SQLAlchemy
  9. from flask_migrate import Migrate
  10. from flask_login import LoginManager
  11. from flask_compress import Compress
  12. from flask_argon2 import Argon2
  13. from flask_menu import Menu
  14. from dotenv import load_dotenv
  15. load_dotenv()
  16. class Config(object):
  17. """Flask configuration"""
  18. UPLOAD_FOLDER = 'app/static/uploads'
  19. SCHEDULER_API_ENABLED = True
  20. SQLALCHEMY_DATABASE_URI = os.environ["DATABASE_URI"]
  21. SECRET_KEY = os.environ["SECRET_KEY"]
  22. SQLALCHEMY_TRACK_MODIFICATIONS = False
  23. SEND_FILE_MAX_AGE_DEFAULT = 1296000
  24. app = Flask(__name__)
  25. app.config.from_object(Config())
  26. app.jinja_env.lstrip_blocks = True
  27. app.jinja_env.trim_blocks = True
  28. app.config['TESTING'] = False
  29. # Compress settings
  30. COMPRESS_MIMETYPES = [
  31. 'text/html',
  32. 'text/css',
  33. 'text/xml',
  34. 'application/json',
  35. 'application/javascript'
  36. ]
  37. COMPRESS_LEVEL = 6
  38. COMPRESS_MIN_SIZE = 500
  39. Compress(app)
  40. Menu(app=app)
  41. db = SQLAlchemy(app)
  42. migrate = Migrate(app, db)
  43. argon2 = Argon2(app)
  44. # Login
  45. login_manager = LoginManager()
  46. login_manager.init_app(app)
  47. login_manager.login_view = "auth.login"
  48. login_manager.login_message_category = "warning"