A number of database related additions

This commit is contained in:
Bradley Bickford 2025-10-18 19:00:35 -04:00
parent 16dc75a57d
commit 88338b0d2f
4 changed files with 70 additions and 0 deletions

6
config.json Normal file
View File

@ -0,0 +1,6 @@
{
"database": {
"type": "SQLite",
"name": "scdb.db"
}
}

47
sc_database_generator.py Normal file
View File

@ -0,0 +1,47 @@
import json
from utilities.database.sqlite import SQLite
with open("config.json", 'r') as config_file:
config_json = json.load(config_file.read())
my_db = SQLite(config_json["database"]["name"])
my_db.query("""
CREATE TABLE IF NOT EXISTS media (
media_id INTEGER PRIMARY KEY AUTOINCREMENT,
media_name TEXT NOT NULL,
media_uri TEXT,
media_preparing INTEGER DEFAULT 0 CHECK(media_preparing IN (0, 1)),
media_active INTEGER DEFAULT 0 CHECK(media_active IN (0, 1))
)
""")
my_db.query("""
CREATE TABLE IF NOT EXISTS media_preparation (
media_preparation_id INTEGER PRIMARY KEY AUTOINCREMENT,
media_id INTEGER NOT NULL,
media_preparation_started INTEGER DEFAULT 0 CHECK(media_preparation_started IN (0, 1)),
media_preparation_finished INTEGER DEFAULT 0 CHECK(media_preparation_finished IN (0, 1)),
media_preparation_time_between_components INTEGER
)
""")
my_db.query("""
CREATE TABLE IF NOT EXISTS media_component (
media_component_id INTEGER PRIMARY KEY AUTOINCREMENT,
media_id INTEGER NOT NULL,
media_component_uri NOT NULL,
media_component_index INTEGER CHECK(media_component_index >= 1),
media_component_deleted INTEGER DEFAULT 0 CHECK(media_component_deleted IN (0, 1))
)
""")
my_db.query("""
CREATE TABLE IF NOT EXISTS media_playback_option (
media_playback_option_id INTEGER PRIMARY KEY AUTOINCREMENT,
media_playback_option TEXT NOT NULL,
media_playback_option_weight NOT NULL CHECK(media_playback_option_weight >= 1)
)
""")
my_db.close()

View File

@ -21,6 +21,8 @@ class SQLite(Database):
rows = list(cursor)
return (len(rows), rows)
elif query.casefold().startswith("INSERT".casefold()):
return (cursor.lastrowid, None)
else:
return (cursor.rowcount, None)

View File

@ -0,0 +1,15 @@
from flask import g
from sqlite import SQLite
import json
def get_db():
db = getattr(g, "_database", None)
if db is None:
with open('../../config.json') as config_file:
config_json = json.load(config_file.read())
if str(config_json["database"]["type"]).casefold() == "SQLite".casefold():
db = g._database = SQLite(config_json["database"]["name"])
return db