mirror of
https://github.com/Derpy-Leggies/OnlyLegs.git
synced 2025-01-04 05:46:14 +00:00
92 lines
3.3 KiB
Python
92 lines
3.3 KiB
Python
import datetime
|
|
now = datetime.datetime.now()
|
|
import sys
|
|
import os
|
|
|
|
class DBmanager():
|
|
def __init__(self):
|
|
try:
|
|
import mysql.connector
|
|
from mysql.connector import Error
|
|
from dotenv import load_dotenv
|
|
except ImportError:
|
|
print("Error: could not import required packages")
|
|
sys.exit(1)
|
|
|
|
env_path = os.path.join('usr', '.env')
|
|
if not os.path.exists(env_path):
|
|
print("Error: could not find .env file")
|
|
sys.exit(1)
|
|
|
|
load_dotenv(env_path)
|
|
print(f"{now.hour}:{now.minute}:{now.second} - Connecting to database...")
|
|
|
|
try:
|
|
database = mysql.connector.connect(host=os.environ.get('DB_HOST'),
|
|
port=os.environ.get('DB_PORT'),
|
|
database=os.environ.get('DB_NAME'),
|
|
user=os.environ.get('DB_USER'),
|
|
password=os.environ.get('DB_PASS')
|
|
)
|
|
|
|
if database.is_connected():
|
|
db_Info = database.get_server_info()
|
|
print("Connected to MySQL Server version:", db_Info)
|
|
|
|
cursor = database.cursor()
|
|
cursor.execute("select database();")
|
|
|
|
record = cursor.fetchone()
|
|
print("Connected to database:", record[0])
|
|
|
|
print(f"{now.hour}:{now.minute}:{now.second} - Done!\n")
|
|
|
|
except Error as e:
|
|
print("Error while connecting to Database!\nFull error:", e)
|
|
sys.exit(1)
|
|
|
|
self.database = database
|
|
|
|
def initialize(self):
|
|
if not os.path.exists(os.path.join('packages', 'tables', 'generate.sql')):
|
|
print("Error: could not find tables directory")
|
|
sys.exit(1)
|
|
else:
|
|
print(f"{now.hour}:{now.minute}:{now.second} - Initializing tables...")
|
|
|
|
with open(os.path.join('packages', 'tables', 'generate.sql'), 'r') as sql:
|
|
cursor = self.database.cursor()
|
|
query = cursor.execute(sql.read(), multi=True)
|
|
|
|
i = 0
|
|
for res in query:
|
|
print(f"Query {i+1}: Affected {res.rowcount} rows")
|
|
i += 1
|
|
|
|
if not os.path.exists(os.path.join('packages', 'tables', 'junctions.sql')):
|
|
print("Error: could not find junctions directory")
|
|
sys.exit(1)
|
|
else:
|
|
print(f"{now.hour}:{now.minute}:{now.second} - Initializing junctions...")
|
|
|
|
with open(os.path.join('packages', 'tables', 'junctions.sql'), 'r') as sql:
|
|
cursor = self.database.cursor()
|
|
query = cursor.execute(sql.read(), multi=True)
|
|
|
|
i = 0
|
|
for res in query:
|
|
print(f"Query {i+1}: Affected {res.rowcount} rows")
|
|
i += 1
|
|
|
|
self.database.commit()
|
|
print(f"{now.hour}:{now.minute}:{now.second} - Done!\n")
|
|
|
|
def getImage(self, id):
|
|
sql = "SELECT * FROM posts WHERE id = %s"
|
|
img = (id,)
|
|
|
|
cursor = self.database.cursor()
|
|
cursor.execute(sql, img)
|
|
|
|
return cursor.fetchone()
|