From 34c88984e89fbdcd4144dc335f25971fa2cf5f6f Mon Sep 17 00:00:00 2001 From: Lynne Date: Wed, 11 Sep 2019 21:03:43 +1000 Subject: [PATCH] display time until next post on home page --- templates/home.html | 2 +- webui.py | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/templates/home.html b/templates/home.html index 68486ef..dc18b64 100644 --- a/templates/home.html +++ b/templates/home.html @@ -23,7 +23,7 @@
{% set handle_list = bot['handle'].split('@') %}
@{{ handle_list[1] }}@{{ handle_list[2] }}
-
{{ "Online" if bot['enabled'] else "Offline"}}, learning from {{ bot_users[bot['handle']] }} accounts
+
{{ "Online" if bot['enabled'] else "Offline"}}, learning from {{ bot_users[bot['handle']] }} accounts.{% if bot['handle'] in next_posts %} Next post in {{ next_posts[bot['handle']] }} minutes.{% endif %}
diff --git a/webui.py b/webui.py index 2f88179..ce790b7 100644 --- a/webui.py +++ b/webui.py @@ -42,18 +42,23 @@ def home(): c.execute("SELECT COUNT(*) FROM `bots` WHERE user_id = %s AND enabled = TRUE", (session['user_id'],)) active_count = c.fetchone()[0] dc = mysql.connection.cursor(MySQLdb.cursors.DictCursor) - dc.execute("SELECT `handle`, `enabled` FROM `bots` WHERE user_id = %s", (session['user_id'],)) + dc.execute("SELECT `handle`, `enabled`, `last_post`, `post_frequency` FROM `bots` WHERE user_id = %s", (session['user_id'],)) bots = dc.fetchall() dc.close() bot_users = {} + next_posts = {} for bot in bots: # multiple SELECTS is slow, maybe SELECT all at once and filter with python? c.execute("SELECT COUNT(*) FROM `bot_learned_accounts` WHERE bot_id = %s", (bot['handle'],)) bot_users[bot['handle']] = c.fetchone()[0] - + c.execute("SELECT post_frequency - TIMESTAMPDIFF(MINUTE, last_post, CURRENT_TIMESTAMP()) FROM bots WHERE TIMESTAMPDIFF(MINUTE, last_post, CURRENT_TIMESTAMP()) <= post_frequency AND handle = %s", (bot['handle'],)) + next_post = c.fetchone() + if next_post is not None: + next_posts[bot['handle']] = next_post + c.close() - return render_template("home.html", bot_count = bot_count, active_count = active_count, bots = bots, bot_users = bot_users) + return render_template("home.html", bot_count = bot_count, active_count = active_count, bots = bots, bot_users = bot_users, next_posts = next_posts) else: return render_template("front_page.html")