From 0bb8ceb6c192f70d181235850565149b9da38be7 Mon Sep 17 00:00:00 2001 From: trueold89 Date: Sat, 4 May 2024 04:10:21 +0300 Subject: [PATCH] Init DataBase && LogSystem --- DataBase.py | 33 +++++++++++++++++++++++++++++++++ LogSystem.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 DataBase.py create mode 100644 LogSystem.py diff --git a/DataBase.py b/DataBase.py new file mode 100644 index 0000000..6379e35 --- /dev/null +++ b/DataBase.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +from sqlite3 import connect as sqconnect + + +class DataBase(object): + + def __init__(self, path: str, table: str) -> None: + self.path = path + self.table = table + + def __execute(self, request: str, additional=None): + with sqconnect(self.path) as db: + cursor = db.cursor() + if additional is not None: + cursor.execute(request, additional) + else: + cursor.execute(request) + db.commit() + + def createTable(self, table_content: str) -> None: + self.__execute(f''' + CREATE TABLE IF NOT EXISTS {self.table}( + id INTEGER PRIMARY KEY, + {table_content} + ) + ''') + + def insert(self, data: dict) -> None: + fields = ", ".join(list(data.keys())) + values = list(data.values()) + self.__execute(f''' + INSERT INTO {self.table} ({fields}) VALUES ({str("?," * len(data))[:-1]}) + ''', tuple(values)) diff --git a/LogSystem.py b/LogSystem.py new file mode 100644 index 0000000..bf9dfe0 --- /dev/null +++ b/LogSystem.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +from datetime import datetime +from TYPES import LogTypes +from DataBase import DataBase +from Config import DBPath + + +class Log(object): + + def __init__(self, logtype: LogTypes, location: str, message: str) -> None: + self.logtype = logtype + self.location = location + self.msg = message + self.toDB() + + date = datetime.now().date() + time = datetime.now().time().strftime("%H:%M:%S") + + def __str__(self): + return f"[{self.date} | {self.time}] [{self.logtype.value}] [{self.location}] {self.msg}" + + def toDB(self): + db = DataBase(DBPath, "logs") + db.createTable("date TEXT, time TEXT, type TEXT, location TEXT, message TEXT") + db.insert({ + "date": self.date, + "time": self.time, + "type": self.logtype.value, + "location": self.location, + "message": self.msg + })