modified: bot.py

This commit is contained in:
SimolZimol
2024-09-14 18:48:13 +02:00
parent 13761005c8
commit 9caeab0145

59
bot.py
View File

@@ -162,22 +162,22 @@ CREATE TABLE IF NOT EXISTS user_data (
db_cursor.execute(create_table_query) db_cursor.execute(create_table_query)
db_connection.commit() db_connection.commit()
def insert_user_data(user_id, permission=0, points=0, ban=0, askmultus=0, filter_value=0, chat_history=[]): def insert_user_data(user_id, permission, points, ban, askmultus, filter_value, chat_history):
insert_query = """ insert_query = """
INSERT INTO user_data (user_id, permission, points, ban, askmultus, filter_value, rank, chat_history) INSERT INTO user_data (user_id, permission, points, ban, askmultus, filter_value, rank, chat_history, xp, level)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
""" """
# Serialize the chat_history list to a JSON string
serialized_chat_history = json.dumps(chat_history) serialized_chat_history = json.dumps(chat_history)
data = (user_id, permission, points, ban, askmultus, filter_value, 0, serialized_chat_history) # Rank is set to 0 initially data = (user_id, permission, points, ban, askmultus, filter_value, 0, serialized_chat_history, 0, 1) # Initialisiere XP auf 0 und Level auf 1
try: try:
db_cursor.execute(insert_query, data) db_cursor.execute(insert_query, data)
db_connection.commit() db_connection.commit()
print(f"User {user_id} inserted successfully.") print("User data inserted successfully.")
except Exception as e: except Exception as e:
print(f"Error inserting user data: {e}") print(f"Error inserting user data: {e}")
db_connection.rollback() db_connection.rollback()
def update_user_data(user_id, field, value): def update_user_data(user_id, field, value):
update_query = f"UPDATE user_data SET {field} = %s WHERE user_id = %s" update_query = f"UPDATE user_data SET {field} = %s WHERE user_id = %s"
@@ -210,13 +210,12 @@ def load_user_data_from_mysql(user_id):
cursor.execute(select_query, (user_id,)) cursor.execute(select_query, (user_id,))
result = cursor.fetchone() result = cursor.fetchone()
if result:
# Close the connection when we're done
cursor.close() cursor.close()
close_database_connection(connection) close_database_connection(connection)
# Return the user data as a dictionary if result:
return { # Überprüfe, ob die Felder 'level' und 'xp' fehlen, und initialisiere sie gegebenenfalls
user_data = {
"user_id": result[0], "user_id": result[0],
"permission": result[1], "permission": result[1],
"points": result[2], "points": result[2],
@@ -224,26 +223,36 @@ def load_user_data_from_mysql(user_id):
"askmultus": result[4], "askmultus": result[4],
"filter_value": result[5], "filter_value": result[5],
"rank": result[6], "rank": result[6],
"chat_history": json.loads(result[7]) if result[7] else [] "chat_history": json.loads(result[7]) if result[7] else [],
"xp": result[8] if len(result) > 8 else 0, # Setze XP auf 0, wenn es fehlt
"level": result[9] if len(result) > 9 else 1 # Setze Level auf 1, wenn es fehlt
} }
else: else:
# Benutzer existiert noch nicht, also neuen Datensatz hinzufügen # Benutzer existiert noch nicht, initialisiere die Standarddaten
insert_user_data(user_id) # Hier wird ein neuer Benutzer erstellt user_data = {
cursor.close()
close_database_connection(connection)
# Rückgabe des neu eingefügten Benutzers
return {
"user_id": user_id, "user_id": user_id,
"permission": 0, # Standard-Permission "permission": 0,
"points": 0, # Standard-Punkte "points": 0,
"ban": 0, # Kein Ban "ban": 0,
"askmultus": 0, # Keine Multus-Anfragen "askmultus": 0,
"filter_value": 0,# Kein Filter "filter_value": 0,
"rank": 0, # Standardrang "rank": 0,
"chat_history": []# Leerer Chatverlauf "chat_history": [],
"xp": 0, # Standardmäßig 0 XP
"level": 1 # Standardmäßig Level 1
} }
# Füge den Benutzer in die Datenbank ein
insert_user_data(
user_data["user_id"],
user_data["permission"],
user_data["points"],
user_data["ban"],
user_data["askmultus"],
user_data["filter_value"],
user_data["chat_history"]
)
return user_data
cached_user_data = {} cached_user_data = {}
pending_deletion = {} pending_deletion = {}