diff --git a/app.py b/app.py index 5ea50a8..0ce4f40 100644 --- a/app.py +++ b/app.py @@ -161,6 +161,40 @@ def callback(): return redirect(url_for("landing_page")) guilds = guilds_response.json() + + # Verbindung zur Datenbank herstellen + connection = get_db_connection() + cursor = connection.cursor() + + # Speichern oder Aktualisieren der Gildeninformationen in der Datenbank + for guild in guilds: + guild_id = guild['id'] + guild_name = guild['name'] + guild_icon = guild.get('icon', None) # Manche Gilden haben kein Icon + owner_id = guild['owner_id'] + + # Prüfen, ob die Gilde bereits existiert + cursor.execute("SELECT COUNT(*) FROM guilds WHERE guild_id = %s", (guild_id,)) + exists = cursor.fetchone()[0] + + if exists: + # Gilde aktualisieren + cursor.execute(""" + UPDATE guilds + SET name = %s, icon = %s, owner_id = %s + WHERE guild_id = %s + """, (guild_name, guild_icon, owner_id, guild_id)) + else: + # Neue Gilde einfügen + cursor.execute(""" + INSERT INTO guilds (guild_id, name, icon, owner_id) + VALUES (%s, %s, %s, %s) + """, (guild_id, guild_name, guild_icon, owner_id)) + + connection.commit() + cursor.close() + connection.close() + session['discord_guilds'] = guilds # Speichere die Gilden in der Session # Weiterleitung zur Server-Auswahl