diff --git a/tlapbot/__init__.py b/tlapbot/__init__.py index 526e8d7..bc19be3 100644 --- a/tlapbot/__init__.py +++ b/tlapbot/__init__.py @@ -6,11 +6,6 @@ from tlapbot.owncast_helpers import is_stream_live, give_points_to_chat def create_app(test_config=None): app = Flask(__name__, instance_relative_config=True) - app.config.from_mapping( - DATABASE=os.path.join(app.instance_path, "tlapbot.sqlite") - ) - app.config.from_object('tlapbot.default_config') - app.config.from_pyfile('config.py') # ensure the instance folder exists try: @@ -18,18 +13,36 @@ def create_app(test_config=None): except OSError: pass - from . import db + # Prepare config: set db to instance folder, then load default, then + # overwrite it with config.py + app.config.from_mapping( + DATABASE=os.path.join(app.instance_path, "tlapbot.sqlite") + ) + app.config.from_object('tlapbot.default_config') + app.config.from_pyfile('config.py') + + + # prepare webhooks and redeem dashboard blueprints from . import owncast_webhooks from . import owncast_redeem_dashboard app.register_blueprint(owncast_webhooks.bp) app.register_blueprint(owncast_redeem_dashboard.bp) + + # add db initialization CLI command + from . import db db.init_app(app) + # add clear queue CLI command + from . import owncast_helpers + app.cli.add_command(owncast_helpers.clear_queue_command) + + # scheduler job for giving points to users def proxy_job(): with app.app_context(): if is_stream_live(): give_points_to_chat(get_db()) + # start scheduler that will give points to users points_giver = BackgroundScheduler() points_giver.add_job(proxy_job, 'interval', seconds=app.config['POINTS_CYCLE_TIME']) # change to 10 minutes out of testing points_giver.start()