hide inactive milestones/counters, change fn name

function is is_redeem_active
This commit is contained in:
Lili (Tlapka) 2023-03-27 13:34:13 +02:00
parent b985a58b8f
commit 0b84e06c52
3 changed files with 50 additions and 17 deletions

View File

@ -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()))

View File

@ -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()))

View File

@ -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'],