def create_app(): app = Flask(__name__) # Configuration sys.path.append( os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")) sys.path.append( os.path.join(os.path.dirname(os.path.realpath(__file__)), "../listenstore")) import config app.config.from_object(config) # Logging from webserver.loggers import init_loggers init_loggers(app) # Redis connection create_redis(app) # Postgres connection create_postgres(app) # Influx connection create_influx(app) # Database connection import db db.init_db_connection(app.config['SQLALCHEMY_DATABASE_URI']) from webserver.external import messybrainz messybrainz.init_db_connection( app.config['MESSYBRAINZ_SQLALCHEMY_DATABASE_URI']) # OAuth from webserver.login import login_manager, provider login_manager.init_app(app) provider.init(app.config['MUSICBRAINZ_CLIENT_ID'], app.config['MUSICBRAINZ_CLIENT_SECRET']) # Error handling from webserver.errors import init_error_handlers init_error_handlers(app) from webserver import rate_limiter @app.after_request def after_request_callbacks(response): return rate_limiter.inject_x_rate_headers(response) # Template utilities app.jinja_env.add_extension('jinja2.ext.do') from webserver import utils app.jinja_env.filters['date'] = utils.reformat_date app.jinja_env.filters['datetime'] = utils.reformat_datetime _register_blueprints(app) return app
def create_app(): app = Flask(__name__) # Configuration sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")) sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), "../listenstore")) import config app.config.from_object(config) # Logging from webserver.loggers import init_loggers init_loggers(app) # Redis connection (RedisStore) create_redis(app) # Postgres connection (ListenStore) create_postgres(app) # Database connection import db db.init_db_connection(app.config['SQLALCHEMY_DATABASE_URI']) from webserver.external import messybrainz messybrainz.init_db_connection(app.config['MESSYBRAINZ_SQLALCHEMY_DATABASE_URI']) # OAuth from webserver.login import login_manager, provider login_manager.init_app(app) provider.init(app.config['MUSICBRAINZ_CLIENT_ID'], app.config['MUSICBRAINZ_CLIENT_SECRET']) # Error handling from webserver.errors import init_error_handlers init_error_handlers(app) from webserver import rate_limiter @app.after_request def after_request_callbacks(response): return rate_limiter.inject_x_rate_headers(response) # Template utilities app.jinja_env.add_extension('jinja2.ext.do') from webserver import utils app.jinja_env.filters['date'] = utils.reformat_date app.jinja_env.filters['datetime'] = utils.reformat_datetime _register_blueprints(app) return app
def create_app(): app = Flask(__name__) # Configuration sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")) sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), "../listenstore")) import config app.config.from_object(config) # Logging from webserver.loggers import init_loggers init_loggers(app) # Kafka connection from kafka_connection import init_kafka_connection init_kafka_connection(app.config['KAFKA_CONNECT']) # Database connection import db db.init_db_connection(app) from webserver.external import messybrainz messybrainz.init_db_connection(app.config['MESSYBRAINZ_SQLALCHEMY_DATABASE_URI']) # OAuth from webserver.login import login_manager, provider login_manager.init_app(app) provider.init(app.config['MUSICBRAINZ_CLIENT_ID'], app.config['MUSICBRAINZ_CLIENT_SECRET']) # Error handling from webserver.errors import init_error_handlers init_error_handlers(app) # Template utilities app.jinja_env.add_extension('jinja2.ext.do') from webserver import utils app.jinja_env.filters['date'] = utils.reformat_date app.jinja_env.filters['datetime'] = utils.reformat_datetime _register_blueprints(app) return app