extensions.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. # -*- coding: utf-8 -*-
  2. """
  3. flaskbb.extensions
  4. ~~~~~~~~~~~~~~~~~~
  5. The extensions that are used by FlaskBB.
  6. :copyright: (c) 2014 by the FlaskBB Team.
  7. :license: BSD, see LICENSE for more details.
  8. """
  9. from celery import Celery
  10. from flask_allows import Allows
  11. from flask_sqlalchemy import SQLAlchemy
  12. from flask_whooshee import Whooshee
  13. from flask_login import LoginManager
  14. from flask_mail import Mail
  15. from flask_caching import Cache
  16. from flask_debugtoolbar import DebugToolbarExtension
  17. from flask_redis import FlaskRedis
  18. from flask_migrate import Migrate
  19. from flask_themes2 import Themes
  20. from flask_plugins import PluginManager
  21. from flask_babelplus import Babel
  22. from flask_wtf.csrf import CSRFProtect
  23. from flask_limiter import Limiter
  24. from flask_limiter.util import get_remote_address
  25. from flaskbb.exceptions import AuthorizationRequired
  26. # Permissions Manager
  27. allows = Allows(throws=AuthorizationRequired)
  28. # Database
  29. db = SQLAlchemy()
  30. # Whooshee (Full Text Search)
  31. whooshee = Whooshee()
  32. # Login
  33. login_manager = LoginManager()
  34. # Mail
  35. mail = Mail()
  36. # Caching
  37. cache = Cache()
  38. # Redis
  39. redis_store = FlaskRedis()
  40. # Debugtoolbar
  41. debugtoolbar = DebugToolbarExtension()
  42. # Migrations
  43. migrate = Migrate()
  44. # Themes
  45. themes = Themes()
  46. # PluginManager
  47. plugin_manager = PluginManager()
  48. # Babel
  49. babel = Babel()
  50. # CSRF
  51. csrf = CSRFProtect()
  52. # Rate Limiting
  53. limiter = Limiter(auto_check=False, key_func=get_remote_address)
  54. # Celery
  55. celery = Celery("flaskbb")