meta.sr.ht/metasrht/app.py

61 lines
2.3 KiB
Python

from flask import session
from metasrht.auth import allow_registration, is_external_auth, allow_password_reset
from metasrht.oauth import MetaOAuthService, MetaOAuthProvider
from metasrht.types import UserType
from srht.config import cfg
from srht.database import DbSession
from srht.flask import SrhtFlask
db = DbSession(cfg("meta.sr.ht", "connection-string"))
db.init()
class MetaApp(SrhtFlask):
def __init__(self):
super().__init__("meta.sr.ht", __name__,
oauth_service=MetaOAuthService(),
oauth_provider=MetaOAuthProvider())
from metasrht.blueprints.api import register_api
from metasrht.blueprints.auth import auth
from metasrht.blueprints.keys import keys
from metasrht.blueprints.oauth_exchange import oauth_exchange
from metasrht.blueprints.oauth_web import oauth_web
from metasrht.blueprints.oauth2 import oauth2
from metasrht.blueprints.privacy import privacy
from metasrht.blueprints.profile import profile
from metasrht.blueprints.security import security
from metasrht.blueprints.users import users
from srht.graphql import gql_blueprint
self.register_blueprint(auth)
self.register_blueprint(keys)
self.register_blueprint(oauth_exchange)
self.register_blueprint(oauth_web)
self.register_blueprint(oauth2)
self.register_blueprint(privacy)
self.register_blueprint(profile)
self.register_blueprint(security)
self.register_blueprint(users)
register_api(self)
self.register_blueprint(gql_blueprint)
self.jinja_env.globals['allow_registration'] = allow_registration
self.jinja_env.globals['allow_password_reset'] = allow_password_reset
self.jinja_env.globals['is_external_auth'] = is_external_auth
if cfg("meta.sr.ht::billing", "enabled") == "yes":
from metasrht.blueprints.billing import billing
self.register_blueprint(billing)
from metasrht.webhooks import webhook_metrics_collector
self.metrics_registry.register(webhook_metrics_collector)
@self.context_processor
def inject():
return {
'UserType': UserType,
'notice': session.pop('notice', None),
}
app = MetaApp()