mirror of
https://github.com/Derpy-Leggies/OnlyLegs.git
synced 2025-06-29 11:36:16 +00:00
Update to reccommended file structure
Use reccommended database structure Switch to SQLite and update scheme along with it
This commit is contained in:
parent
29d204f95e
commit
a499e6c840
41 changed files with 544 additions and 342 deletions
91
gallery/packages/onlylegsDB.py
Normal file
91
gallery/packages/onlylegsDB.py
Normal file
|
@ -0,0 +1,91 @@
|
|||
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()
|
Loading…
Add table
Add a link
Reference in a new issue