diff options
-rw-r--r-- | bot.py | 44 | ||||
-rw-r--r-- | main.py | 1 | ||||
-rw-r--r-- | util.py | 23 |
3 files changed, 43 insertions, 25 deletions
@@ -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__': @@ -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: @@ -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 |