From 739438f28babed7c89be6fa3b174cf30fbc81a81 Mon Sep 17 00:00:00 2001 From: Lili Date: Tue, 28 Mar 2023 13:02:50 +0200 Subject: [PATCH] move active category check from __init__.py to being done runtime in functions --- tlapbot/__init__.py | 4 ---- tlapbot/redeems.py | 15 +++++++++++++++ tlapbot/redeems_handler.py | 4 +++- tlapbot/tlapbot_dashboard.py | 4 ++-- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/tlapbot/__init__.py b/tlapbot/__init__.py index 2c2672a..9bd278d 100644 --- a/tlapbot/__init__.py +++ b/tlapbot/__init__.py @@ -24,10 +24,6 @@ def create_app(test_config=None): app.config.from_object('tlapbot.default_redeems') app.config.from_pyfile('config.py', silent=True) app.config.from_pyfile('redeems.py', silent=True) - app.config.from_mapping( - REDEEMS=remove_inactive_redeems(app.config['REDEEMS'], - app.config['ACTIVE_CATEGORIES']) - ) # Make logging work for gunicorn-ran instances of tlapbot. if app.config['GUNICORN']: diff --git a/tlapbot/redeems.py b/tlapbot/redeems.py index 3a333da..dfdd7ca 100644 --- a/tlapbot/redeems.py +++ b/tlapbot/redeems.py @@ -176,6 +176,21 @@ def all_active_milestones(db): all_active_milestones.append((name, progress, goal)) return all_active_milestones + +def all_active_redeems(db): + redeems = current_app.config['REDEEMS'] + all_active_redeems = {} + for redeem_name, redeem_dict in redeems.items(): + if redeem_dict.get('category', None): + for category in redeem_dict['category']: + if category in current_app.config['ACTIVE_CATEGORIES']: + all_active_redeems[redeem_name] = redeem_dict + break + else: + all_active_redeems[redeem_name] = redeem_dict + return all_active_redeems + + def pretty_redeem_queue(db): try: cursor = db.execute( diff --git a/tlapbot/redeems_handler.py b/tlapbot/redeems_handler.py index 0d3feab..b501a16 100644 --- a/tlapbot/redeems_handler.py +++ b/tlapbot/redeems_handler.py @@ -2,7 +2,7 @@ from flask import current_app from tlapbot.db import get_db from tlapbot.owncast_requests import send_chat from tlapbot.redeems import (add_to_redeem_queue, add_to_counter, add_to_milestone, - check_apply_milestone_completion, milestone_complete) + check_apply_milestone_completion, milestone_complete, is_redeem_active) from tlapbot.owncast_helpers import use_points, read_users_points, remove_emoji @@ -17,6 +17,8 @@ def handle_redeem(message, user_id): if redeem not in current_app.config['REDEEMS']: send_chat("Can't redeem, redeem not found.") return + if not is_redeem_active(redeem): + send_chat("Can't redeem, redeem is currently not active.") db = get_db() price = current_app.config['REDEEMS'][redeem]["price"] diff --git a/tlapbot/tlapbot_dashboard.py b/tlapbot/tlapbot_dashboard.py index 52cc0c0..11b7c10 100644 --- a/tlapbot/tlapbot_dashboard.py +++ b/tlapbot/tlapbot_dashboard.py @@ -1,6 +1,6 @@ from flask import render_template, Blueprint, request, current_app from tlapbot.db import get_db -from tlapbot.redeems import all_active_counters, all_active_milestones, pretty_redeem_queue +from tlapbot.redeems import all_active_counters, all_active_milestones, all_active_redeems, pretty_redeem_queue from tlapbot.owncast_helpers import read_all_users_with_username from datetime import datetime, timezone @@ -20,7 +20,7 @@ def dashboard(): queue=pretty_redeem_queue(db), counters=all_active_counters(db), milestones=all_active_milestones(db), - redeems=current_app.config['REDEEMS'], + redeems=all_active_redeems(db), prefix=current_app.config['PREFIX'], passive=current_app.config['PASSIVE'], username=username,