From 0b84e06c52bbd9e00f9751906940c57786de7ab6 Mon Sep 17 00:00:00 2001 From: Lili Date: Mon, 27 Mar 2023 13:34:13 +0200 Subject: [PATCH] hide inactive milestones/counters, change fn name function is is_redeem_active --- tlapbot/owncast_helpers.py | 14 ----------- tlapbot/redeems.py | 47 ++++++++++++++++++++++++++++++++++++ tlapbot/tlapbot_dashboard.py | 6 ++--- 3 files changed, 50 insertions(+), 17 deletions(-) diff --git a/tlapbot/owncast_helpers.py b/tlapbot/owncast_helpers.py index 1bdbfa6..c727e25 100644 --- a/tlapbot/owncast_helpers.py +++ b/tlapbot/owncast_helpers.py @@ -127,17 +127,3 @@ def remove_emoji(message): r'\1', message ) - - -def is_redeem_active(redeem, active_categories): - if "category" in redeem[1] and redeem[1]["category"]: - for category in redeem[1]["category"]: - if category in active_categories: - return True - return False - return True - - -def remove_inactive_redeems(redeems, active_categories): - return dict(filter(lambda redeem: is_redeem_active(redeem, active_categories), - redeems.items())) \ No newline at end of file diff --git a/tlapbot/redeems.py b/tlapbot/redeems.py index 879f226..6946bab 100644 --- a/tlapbot/redeems.py +++ b/tlapbot/redeems.py @@ -157,6 +157,23 @@ def all_counters(db): current_app.logger.error(f"Error occured selecting all counters: {e.args[0]}") +def all_active_counters(db): + counters = all_counters(db) + all_active_counters = [] + for name, count in counters: + if is_redeem_active(name): + all_active_counters.append((name, count)) + return all_active_counters + + +def all_active_milestones(db): + milestones = all_milestones(db) + all_active_milestones = [] + for name, progress, goal in milestones: + if is_redeem_active(name): + all_active_milestones.append((name, progress, goal)) + return all_active_milestones + def pretty_redeem_queue(db): try: cursor = db.execute( @@ -179,3 +196,33 @@ def whole_redeem_queue(db): except Error as e: current_app.logger.error(f"Error occured selecting redeem queue: {e.args[0]}") + +def is_redeem_active(redeem_name): + """Checks if redeem is active. Pulls the redeem by name from config.""" + active_categories = current_app.config['ACTIVE_CATEGORIES'] + redeem_dict = current_app.config['REDEEMS'].get(redeem_name, None) + if redeem_dict: + if "category" in redeem_dict: + for category in redeem_dict["category"]: + if category in active_categories: + return True + return False + else: + return True + return None # redeem does not exist, unknown active state + + + +def is_redeem_from_config_active(redeem, active_categories): + """Checks if redeem is active. `redeem` is a whole key:value pair from redeems config.""" + if "category" in redeem[1] and redeem[1]["category"]: + for category in redeem[1]["category"]: + if category in active_categories: + return True + return False + return True + + +def remove_inactive_redeems(redeems, active_categories): + return dict(filter(lambda redeem: is_redeem_from_config_active(redeem, active_categories), + redeems.items())) \ No newline at end of file diff --git a/tlapbot/tlapbot_dashboard.py b/tlapbot/tlapbot_dashboard.py index d35ab5c..52cc0c0 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_counters, all_milestones, pretty_redeem_queue +from tlapbot.redeems import all_active_counters, all_active_milestones, pretty_redeem_queue from tlapbot.owncast_helpers import read_all_users_with_username from datetime import datetime, timezone @@ -18,8 +18,8 @@ def dashboard(): utc_timezone = timezone.utc return render_template('dashboard.html', queue=pretty_redeem_queue(db), - counters=all_counters(db), - milestones=all_milestones(db), + counters=all_active_counters(db), + milestones=all_active_milestones(db), redeems=current_app.config['REDEEMS'], prefix=current_app.config['PREFIX'], passive=current_app.config['PASSIVE'],