From a4c3b23d61b85290347cbbcbaf351a10c56880f6 Mon Sep 17 00:00:00 2001 From: Rosyid Haryadi Date: Sat, 27 Jul 2024 22:10:32 +0700 Subject: upd more logging --- bot.py | 44 ++++++++++++++++++++++++++------------------ main.py | 1 + util.py | 23 ++++++++++++++++------- 3 files changed, 43 insertions(+), 25 deletions(-) diff --git a/bot.py b/bot.py index 8428df4..b17a3bd 100644 --- a/bot.py +++ b/bot.py @@ -1,4 +1,5 @@ import os +import sqlite3 from urllib import parse import requests from dotenv import load_dotenv @@ -44,13 +45,16 @@ class Bot: conn.close() def _checkUnreadDb(self): - if not self.hasNewMessages: - conn = getDbConn() - cur = conn.cursor() - res = cur.execute(f"SELECT id, is_read FROM incoming WHERE is_read = 0") - if len(res.fetchall()) > 0: - self.hasNewMessages = True - conn.close() + try: + if not self.hasNewMessages: + conn = getDbConn() + cur = conn.cursor() + res = cur.execute(f"SELECT id, is_read FROM incoming WHERE is_read = 0") + if len(res.fetchall()) > 0: + self.hasNewMessages = True + conn.close() + except sqlite3.Error as e: + logger.error(e) def pollUpdate(self): self.isProcessingPolling = True @@ -65,18 +69,22 @@ class Bot: def getNewMessages(self): result = list() - if not self.hasNewMessages: + try: + if not self.hasNewMessages: + return result + conn = getDbConn() + cur = conn.cursor() + resCheck = cur.execute(f"SELECT text FROM incoming WHERE is_read = False") + for row in resCheck.fetchall(): + result.append(row[0]) + cur.execute(f"UPDATE incoming SET is_read = True WHERE is_read = False") + conn.commit() + conn.close() + self.hasNewMessages = False + except sqlite3.Error as e: + logger.error(e) + finally: return result - conn = getDbConn() - cur = conn.cursor() - resCheck = cur.execute(f"SELECT text FROM incoming WHERE is_read = False") - for row in resCheck.fetchall(): - result.append(row[0]) - cur.execute(f"UPDATE incoming SET is_read = True WHERE is_read = False") - conn.commit() - conn.close() - self.hasNewMessages = False - return result if __name__ == '__main__': diff --git a/main.py b/main.py index 99d7fa7..89b9e6b 100644 --- a/main.py +++ b/main.py @@ -47,6 +47,7 @@ def main(): if __name__ == '__main__': try: if not os.path.isfile(dbFile): + logger.info("DB FILE NOT FOUND. CREATING...") initDb() while True: if not bot.isProcessingPolling and bot.hasNewMessages: diff --git a/util.py b/util.py index 0590c49..58a852b 100644 --- a/util.py +++ b/util.py @@ -21,13 +21,22 @@ def setupLogger(): def initDb(): - conn = sqlite3.connect(dbFile) - cur = conn.cursor() - cur.execute("CREATE TABLE incoming (id, msg_date, msg_from, text, is_read)") - conn.commit() - conn.close() + try: + conn = sqlite3.connect(dbFile) + cur = conn.cursor() + cur.execute("CREATE TABLE incoming (id, msg_date, msg_from, text, is_read)") + conn.commit() + conn.close() + except sqlite3.Error as e: + logging.error("Failed to initialize database") + logging.error(e) def getDbConn(): - conn = sqlite3.connect(dbFile) - return conn + try: + conn = sqlite3.connect(dbFile) + return conn + except sqlite3.Error as e: + logging.error("Failed making connection to database") + logging.error(e) + return None -- cgit v1.2.3-70-g09d2