From 1e784639bc7881496332c79c538f96984c90ed4b Mon Sep 17 00:00:00 2001 From: SimolZimol <70102430+SimolZimol@users.noreply.github.com> Date: Sat, 14 Sep 2024 12:23:24 +0200 Subject: [PATCH] modified: bot.py --- bot.py | 55 ++++++++++++++++++++++++------------------------------- 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/bot.py b/bot.py index d8eb046..c74af50 100644 --- a/bot.py +++ b/bot.py @@ -162,18 +162,18 @@ CREATE TABLE IF NOT EXISTS user_data ( db_cursor.execute(create_table_query) db_connection.commit() -def insert_user_data(user_id, permission, points, ban, askmultus, filter_value, chat_history): +def insert_user_data(user_id, permission=0, points=0, ban=0, askmultus=0, filter_value=0, chat_history=[]): insert_query = """ INSERT INTO user_data (user_id, permission, points, ban, askmultus, filter_value, rank, chat_history) VALUES (%s, %s, %s, %s, %s, %s, %s, %s) """ # Serialize the chat_history list to a JSON string serialized_chat_history = json.dumps(chat_history) - data = (user_id, permission, points, ban, askmultus, filter_value, 0, serialized_chat_history) # Setze den Rang initial auf 0 + data = (user_id, permission, points, ban, askmultus, filter_value, 0, serialized_chat_history) # Rank is set to 0 initially try: db_cursor.execute(insert_query, data) db_connection.commit() - print("User data inserted successfully.") + print(f"User {user_id} inserted successfully.") except Exception as e: print(f"Error inserting user data: {e}") db_connection.rollback() @@ -210,10 +210,12 @@ def load_user_data_from_mysql(user_id): cursor.execute(select_query, (user_id,)) result = cursor.fetchone() - cursor.close() - close_database_connection(connection) - if result: + # Close the connection when we're done + cursor.close() + close_database_connection(connection) + + # Return the user data as a dictionary return { "user_id": result[0], "permission": result[1], @@ -225,32 +227,22 @@ def load_user_data_from_mysql(user_id): "chat_history": json.loads(result[7]) if result[7] else [] } else: - return None + # Benutzer existiert noch nicht, also neuen Datensatz hinzufügen + insert_user_data(user_id) # Hier wird ein neuer Benutzer erstellt + cursor.close() + close_database_connection(connection) -def save_user_data_to_mysql(user_data): - update_query = """ - UPDATE user_data - SET permission = %s, - points = %s, - ban = %s, - askmultus = %s, - filter_value = %s, - rank = %s, - chat_history = %s - WHERE user_id = %s - """ - data = ( - user_data["permission"], - user_data["points"], - user_data["ban"], - user_data["askmultus"], - user_data["filter_value"], - user_data["rank"], - json.dumps(user_data["chat_history"]), - user_data["user_id"] - ) - db_cursor.execute(update_query, data) - db_connection.commit() + # Rückgabe des neu eingefügten Benutzers + return { + "user_id": user_id, + "permission": 0, # Standard-Permission + "points": 0, # Standard-Punkte + "ban": 0, # Kein Ban + "askmultus": 0, # Keine Multus-Anfragen + "filter_value": 0,# Kein Filter + "rank": 0, # Standardrang + "chat_history": []# Leerer Chatverlauf + } cached_user_data = {} @@ -275,6 +267,7 @@ def load_user_data(user_id): if user_id in cached_user_data: return cached_user_data[user_id] + # Daten aus der Datenbank laden oder einfügen user_data = load_user_data_from_mysql(user_id) asyncio.ensure_future(cache_user_data(user_id, user_data))