From 723df5e540a92a898115220752fa57e60f273ec5 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi <ste.pigozzi@gmail.com> Date: Wed, 14 Mar 2018 16:28:49 +0100 Subject: [PATCH] Fix /vote command 2 --- db.py | 51 +++++++++++++++++++++++++------------------------- telegrambot.py | 2 +- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/db.py b/db.py index 5677cc9e..24d4bc0e 100644 --- a/db.py +++ b/db.py @@ -692,33 +692,34 @@ class VoteQuestion(Base): return f"<Vote {self.id}>" def generate_text(self, session: Session): - query = session.execute("SELECT * FROM telegram LEFT JOIN (SELECT voteanswer.question_id, voteanswer.user_id, voteanswer.choice FROM votequestion JOIN voteanswer ON votequestion.id = voteanswer.question_id WHERE votequestion.message_id = " + str(self.message_id) + ") answer ON telegram.telegram_id = answer.user_id ORDER BY answer.choice;") text = f"<b>{self.question}</b>\n\n" none, yes, no, abstain = 0, 0, 0, 0 - for record in query: - if record["username"] == "royalgamesbot": - continue - elif record["question_id"] is None: - text += "⚪️" - none += 1 - elif record["choice"] == "YES": - text += "🔵" - yes += 1 - elif record["choice"] == "NO": - text += "🔴" - no += 1 - elif record["choice"] == "ABSTAIN": - text += "⚫️" - abstain += 1 - if not self.anonymous: - text += f" {str(record['username'])}\n" - if self.anonymous: - text += "\n" - text += f"\n" \ - f"⚪ {none}\n" \ - f"🔵 {yes}\n" \ - f"🔴 {no}\n" \ - f"⚫️ {abstain}" + if self.message_id is not None: + query = session.execute("SELECT * FROM telegram LEFT JOIN (SELECT voteanswer.question_id, voteanswer.user_id, voteanswer.choice FROM votequestion JOIN voteanswer ON votequestion.id = voteanswer.question_id WHERE votequestion.message_id = " + str(self.message_id) + ") answer ON telegram.telegram_id = answer.user_id ORDER BY answer.choice;") + for record in query: + if record["username"] == "royalgamesbot": + continue + elif record["question_id"] is None: + text += "⚪️" + none += 1 + elif record["choice"] == "YES": + text += "🔵" + yes += 1 + elif record["choice"] == "NO": + text += "🔴" + no += 1 + elif record["choice"] == "ABSTAIN": + text += "⚫️" + abstain += 1 + if not self.anonymous: + text += f" {str(record['username'])}\n" + if self.anonymous: + text += "\n" + text += f"\n" \ + f"⚪ {none}\n" \ + f"🔵 {yes}\n" \ + f"🔴 {no}\n" \ + f"⚫@roy️ {abstain}" return text diff --git a/telegrambot.py b/telegrambot.py index 83bb2413..a48e465d 100644 --- a/telegrambot.py +++ b/telegrambot.py @@ -260,7 +260,7 @@ def cmd_vote(bot: Bot, update: Update): parse_mode="HTML") vote.message_id = message.message_id session.commit() - except Exception: + except Exception as e: raise finally: session.close()