rework elsa media database function

This commit is contained in:
WorldTeacher
2024-06-27 13:17:41 +02:00
parent 47fa20c4ef
commit 5e53c1a61b

View File

@@ -147,7 +147,11 @@ class Database:
"""
conn = self.connect()
cursor = conn.cursor()
self.logger.log_info(f"Querying database with query {query}, args: {args}")
log_message = f"Querying database with query {query}, args: {args}"
if "INSERT" in query:
log_message = f"Querying database with query {query}"
self.logger.log_info(log_message)
cursor.execute(query, args)
rv = cursor.fetchall()
@@ -1324,21 +1328,17 @@ class Database:
Args:
data (dict): a dictionary containing the data of the media,
Structured: {"chapter":str, "title":str, "signature":str, "pages":str}
elsa_id (int): the id of the ELSA apparat
"""
self.query_db(
"INSERT INTO elsa_media (chapter, title, signature, pages,book_author,text_author, elsa_id) VALUES (?,?,?,?,?,?,?)",
(
data["chapter"],
data["title"],
data["signature"],
data["pages"],
data["book_author"],
data["text_author"],
elsa_id,
),
)
headers = []
entries = []
for key, value in data.items():
headers.append(key)
entries.append(value)
headers.append("elsa_id")
entries.append(elsa_id)
query = f"INSERT INTO elsa_media ({', '.join(headers)}) VALUES ({', '.join(['?' for i in range(len(headers))])})"
self.query_db(query, entries)
def getElsaMedia(self, elsa_id: int):
"""get all the media of an ELSA apparat
@@ -1348,7 +1348,16 @@ class Database:
Returns:
list[tuple]: a list of tuples containing the media
"""
return self.query_db("SELECT * FROM elsa_media WHERE elsa_id=?", (elsa_id,))
media = self.query_db("SELECT * FROM elsa_media WHERE elsa_id=?", (elsa_id,))
# convert the media to a list of dictionaries
ret = []
table_fields = self.query_db("PRAGMA table_info(elsa_media)")
for m in media:
tmp = {}
for i in range(len(m)):
tmp[table_fields[i][1]] = m[i]
ret.append(tmp)
return ret
def insertElsaFile(self, file: list[dict], elsa_id: int):
"""Instert a list of files into the ELSA system