From cb574618a63f605c96ead9a195a8529fd0f66638 Mon Sep 17 00:00:00 2001 From: Lili Date: Tue, 14 Mar 2023 16:26:04 +0100 Subject: [PATCH] working milestones prototype in dashboard --- tlapbot/owncast_helpers.py | 51 +++++++++++++++++++++++--------- tlapbot/redeems_handler.py | 4 +-- tlapbot/templates/dashboard.html | 49 ++++++++++++++++++++---------- 3 files changed, 73 insertions(+), 31 deletions(-) diff --git a/tlapbot/owncast_helpers.py b/tlapbot/owncast_helpers.py index 7ad649f..ff20eb4 100644 --- a/tlapbot/owncast_helpers.py +++ b/tlapbot/owncast_helpers.py @@ -184,27 +184,50 @@ def add_to_redeem_queue(db, user_id, redeem_name, note=None): return False -def add_to_milestone(db, redeem_name, points): +def start_milestone(db, redeem_name): try: cursor = db.execute( "SELECT count, goal FROM milestones WHERE name = ?", (redeem_name,) ) - row = cursor.fetchone() - if row is not None: - count = row[0] - goal = row[1] - result = count + points - if result > goal: - result = goal + milestone = cursor.fetchone() + current_app.logger.error(f"Milestone: {milestone}") + if milestone is None: + current_app.logger.error(f"Adding milestone to db.") cursor = db.execute( - "UPDATE milestones SET count = ? WHERE name = ?", - (result, redeem_name) - ) - db.commit() - return True - except (Error) as e: + "INSERT INTO milestones(name, count, goal) VALUES(?, ?, ?)", + (redeem_name, 0, current_app.config['REDEEMS'][redeem_name]['goal']) + ) + db.commit() + except Error as e: + current_app.logger.error(f"Error occured adding a milestone: {e.args[0]}") + + + +def add_to_milestone(db, redeem_name, points): + try: + start_milestone(db, redeem_name) + + cursor = db.execute( + "SELECT count, goal FROM milestones WHERE name = ?", + (redeem_name,) + ) + row = cursor.fetchone() + count = row[0] + goal = row[1] + result = count + points + if result > goal: + result = goal + current_app.logger.error(f"Doing db operation to add to milestone.") + cursor = db.execute( + "UPDATE milestones SET count = ? WHERE name = ?", + (result, redeem_name) + ) + db.commit() + return True + except Error as e: current_app.logger.error(f"Error occured updating milestone: {e.args[0]}") + current_app.logger.error(f"Milestone add failed.") return False diff --git a/tlapbot/redeems_handler.py b/tlapbot/redeems_handler.py index cdc6421..2d785d2 100644 --- a/tlapbot/redeems_handler.py +++ b/tlapbot/redeems_handler.py @@ -51,8 +51,8 @@ def handle_redeem(message, user_id): send_chat(f"Cannot redeem {redeem}, no amount of points specified.") elif not note.isdigit(): send_chat(f"Cannot redeem {redeem}, amount of points is not an integer.") - elif int(note) < points: - send_chat(f"Can't redeem {redeem}, you don't have enough points.") + elif int(note) > points: + send_chat(f"Can't redeem {redeem}, you don't have enough points.2") else: add_to_milestone(db, redeem, int(note)) else: diff --git a/tlapbot/templates/dashboard.html b/tlapbot/templates/dashboard.html index a501629..69bd3de 100644 --- a/tlapbot/templates/dashboard.html +++ b/tlapbot/templates/dashboard.html @@ -1,15 +1,16 @@ + Redeems Dashboard
- +
- + {% if not passive %} {% if queue %} @@ -19,6 +20,7 @@
+

Redeems Dashboard

{% if (username and users ) %} @@ -31,7 +33,7 @@ {% for user in users %} {{ user[0] }} - {{ user[1] }} + {{ user[1] }} {% endfor %} @@ -53,30 +55,42 @@ {% for counter in counters %} {{ counter[0] }} - {{ counter[1] }} + {{ counter[1] }} {% endfor %} {% endif %} {% if milestones %} - {% for milestone in milestones %} - - - - {% endfor %} - {% endif %} - {% endif %} + + + + + + + {% for milestone in milestones %} + + + + + {% endfor %} + {% endif %} + {% endif %}
+

Tlap tlap.

+

Redeems Queue

+

Tlap tlap 2.

{% if queue %} +

Tlap tlap. 3

Active milestones
+

Tlap tlap. 4

@@ -86,7 +100,7 @@ {% for row in queue %} - + @@ -94,10 +108,14 @@ {% endif %} +

Tlap tlap. 5

{% endfor %}
Recent redeems
Time
{{ row[0].replace(tzinfo=utc_timezone).astimezone().strftime("%H:%M") }} {{ row[1] }} {{ row[3] }}{{ row[2] }}
+

Tlap tlap. 6

{% endif %} +

Tlap tlap. 7

+

Tlap tlap. 8

@@ -107,9 +125,10 @@
  • Counter redeems add +1 to their counter.
  • List redeems get added to the list of recent redeems (without a note).
  • Note redeems require you to send a message together with the redeem.
  • -
  • Milestone redeems are long-term goals to which you can donate any amount of points you want.
  • -
  • They will be completed once the amount of points donated reaches the goal.
  • +
  • Milestone redeems are long-term goals to which you can donate any amount of points you + want. They will be completed once the amount of points donated reaches the goal.
  • + {% if redeems %} @@ -143,4 +162,4 @@ - + \ No newline at end of file