Init DataBase && LogSystem
This commit is contained in:
parent
d4a46ca5ad
commit
0bb8ceb6c1
|
@ -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))
|
|
@ -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
|
||||||
|
})
|
Reference in New Issue