refactor media and database handling to replace 'filename' with 'media_path' for consistency
This commit is contained in:
@@ -49,7 +49,7 @@ class DatabaseManager:
|
|||||||
CREATE TABLE IF NOT EXISTS media (
|
CREATE TABLE IF NOT EXISTS media (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
color_id INTEGER NOT NULL,
|
color_id INTEGER NOT NULL,
|
||||||
filename TEXT NOT NULL,
|
media_path TEXT NOT NULL,
|
||||||
file_type TEXT CHECK(file_type IN ('photo','video')),
|
file_type TEXT CHECK(file_type IN ('photo','video')),
|
||||||
timestamp TEXT DEFAULT CURRENT_TIMESTAMP,
|
timestamp TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||||
FOREIGN KEY(color_id) REFERENCES colors(id) ON DELETE CASCADE
|
FOREIGN KEY(color_id) REFERENCES colors(id) ON DELETE CASCADE
|
||||||
@@ -112,7 +112,7 @@ class DatabaseManager:
|
|||||||
# -------------------------
|
# -------------------------
|
||||||
# Operacje na plikach
|
# Operacje na plikach
|
||||||
# -------------------------
|
# -------------------------
|
||||||
def add_media(self, color_id: int, filename: str, file_type: str, timestamp: str | None = None):
|
def add_media(self, color_id: int, media_path: str, file_type: str, timestamp: str | None = None):
|
||||||
if timestamp is None:
|
if timestamp is None:
|
||||||
timestamp = datetime.now().isoformat()
|
timestamp = datetime.now().isoformat()
|
||||||
|
|
||||||
@@ -120,8 +120,8 @@ class DatabaseManager:
|
|||||||
raise RuntimeError("Database not connected")
|
raise RuntimeError("Database not connected")
|
||||||
cur = self.conn.cursor()
|
cur = self.conn.cursor()
|
||||||
cur.execute(
|
cur.execute(
|
||||||
"INSERT INTO media (color_id, filename, file_type, timestamp) VALUES (?, ?, ?, ?)",
|
"INSERT INTO media (color_id, media_path, file_type, timestamp) VALUES (?, ?, ?, ?)",
|
||||||
(color_id, filename, file_type, timestamp),
|
(color_id, media_path, file_type, timestamp),
|
||||||
)
|
)
|
||||||
self.conn.commit()
|
self.conn.commit()
|
||||||
|
|
||||||
@@ -133,11 +133,11 @@ class DatabaseManager:
|
|||||||
rows = cur.fetchall()
|
rows = cur.fetchall()
|
||||||
return [dict(r) for r in rows]
|
return [dict(r) for r in rows]
|
||||||
|
|
||||||
def delete_media(self, color_id: int, filename: str):
|
def delete_media(self, color_id: int, media_path: str):
|
||||||
if self.conn is None:
|
if self.conn is None:
|
||||||
raise RuntimeError("Database not connected")
|
raise RuntimeError("Database not connected")
|
||||||
cur = self.conn.cursor()
|
cur = self.conn.cursor()
|
||||||
cur.execute("DELETE FROM media WHERE color_id = ? AND filename = ?", (color_id, filename))
|
cur.execute("DELETE FROM media WHERE color_id = ? AND media_path = ?", (color_id, media_path))
|
||||||
self.conn.commit()
|
self.conn.commit()
|
||||||
|
|
||||||
def delete_all_media_for_color(self, color_id: int):
|
def delete_all_media_for_color(self, color_id: int):
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ class MediaRepository:
|
|||||||
icon_file = color_dir / "icon.jpg"
|
icon_file = color_dir / "icon.jpg"
|
||||||
self.db.update_color_icon(color, icon_file.as_posix() if icon_file.exists() else DEFAULT_ICON.as_posix())
|
self.db.update_color_icon(color, icon_file.as_posix() if icon_file.exists() else DEFAULT_ICON.as_posix())
|
||||||
|
|
||||||
disk_files = {f.name for f in color_dir.iterdir() if f.is_file() and f.name != "icon.jpg"}
|
disk_files = {f.as_posix() for f in color_dir.iterdir() if f.is_file() and f.name != "icon.jpg"}
|
||||||
db_files = {m["filename"] for m in self.db.get_media_for_color(color_id)}
|
db_files = {m["media_path"] for m in self.db.get_media_for_color(color_id)}
|
||||||
|
|
||||||
# usuń brakujące
|
# usuń brakujące
|
||||||
for missing in db_files - disk_files:
|
for missing in db_files - disk_files:
|
||||||
|
|||||||
Reference in New Issue
Block a user