modified: app.py

This commit is contained in:
SimolZimol
2024-10-24 12:51:59 +02:00
parent c24c76a837
commit 0186ed582e

67
app.py
View File

@@ -161,9 +161,6 @@ def callback():
# Hole die Gilden (Server), auf denen der Benutzer ist # Hole die Gilden (Server), auf denen der Benutzer ist
guilds_response = discord.get('https://discord.com/api/users/@me/guilds') guilds_response = discord.get('https://discord.com/api/users/@me/guilds')
# Debugging: Prüfe den Status der Antwort
print(f"Guilds response status: {guilds_response.status_code}")
if guilds_response.status_code != 200: if guilds_response.status_code != 200:
flash("Fehler beim Abrufen der Gilden.", "danger") flash("Fehler beim Abrufen der Gilden.", "danger")
return redirect(url_for("landing_page")) return redirect(url_for("landing_page"))
@@ -173,39 +170,7 @@ def callback():
# Debugging: Gib die Gildeninformationen aus # Debugging: Gib die Gildeninformationen aus
print(f"Guilds: {guilds}") print(f"Guilds: {guilds}")
# Verbindung zur Datenbank herstellen # Stelle sicher, dass Gildeninformationen in der Session gespeichert werden
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 session['discord_guilds'] = guilds # Speichere die Gilden in der Session
# Weiterleitung zur Server-Auswahl # Weiterleitung zur Server-Auswahl
@@ -220,29 +185,17 @@ def callback():
@app.route("/server_selection") @app.route("/server_selection")
def server_selection(): def server_selection():
"""Zeigt dem Benutzer eine Liste aller Server an, auf denen er sich befindet und die in der Datenbank vorhanden sind.""" """Zeigt dem Benutzer eine Liste aller Server an, auf denen er sich befindet."""
if "discord_user" in session: if "discord_user" in session and "discord_guilds" in session:
user_info = session["discord_user"] print("Session contains user and guilds data") # Debugging
user_id = user_info["id"] guilds = session['discord_guilds']
connection = get_db_connection()
cursor = connection.cursor(dictionary=True)
# Abfrage der Gilden, auf denen der Benutzer in der Datenbank Einträge hat
cursor.execute("""
SELECT DISTINCT user_data.guild_id, guilds.name, guilds.icon
FROM user_data
JOIN guilds ON user_data.guild_id = guilds.guild_id
WHERE user_data.user_id = %s
""", (user_id,))
guilds = cursor.fetchall()
cursor.close()
connection.close()
return render_template("server_selection.html", guilds=guilds) return render_template("server_selection.html", guilds=guilds)
else:
print("Session is missing user or guilds data") # Debugging
return redirect(url_for("login")) # Falls die Session keine Gildeninformationen enthält, leite zurück zur Startseite
flash("Keine Gilden gefunden. Bitte erneut einloggen.", "danger")
return redirect(url_for("landing_page"))
@app.route("/admin_dashboard") @app.route("/admin_dashboard")