modified: app.py

modified:   templates/server_selection.html
This commit is contained in:
SimolZimol
2024-10-24 10:41:39 +02:00
parent 958cc32db5
commit c24c76a837
2 changed files with 27 additions and 11 deletions

14
app.py
View File

@@ -140,28 +140,39 @@ def login():
def callback(): def callback():
"""Verarbeitet den OAuth2-Rückruf von Discord.""" """Verarbeitet den OAuth2-Rückruf von Discord."""
try: try:
# Discord OAuth2-Session initialisieren
discord = make_discord_session(state=session.get("oauth_state")) discord = make_discord_session(state=session.get("oauth_state"))
# Token abrufen
token = discord.fetch_token( token = discord.fetch_token(
DISCORD_TOKEN_URL, DISCORD_TOKEN_URL,
client_secret=DISCORD_CLIENT_SECRET, client_secret=DISCORD_CLIENT_SECRET,
authorization_response=request.url, authorization_response=request.url,
) )
session['oauth_token'] = token session['oauth_token'] = token
# Abrufen der Benutzerinformationen von Discord # Abrufen der Benutzerinformationen von Discord
user_info = discord.get(DISCORD_API_URL).json() user_info = discord.get(DISCORD_API_URL).json()
session['discord_user'] = user_info session['discord_user'] = user_info
# Debugging: Prüfe, ob Benutzerinformationen erfolgreich abgerufen wurden
print(f"User info: {user_info}")
# 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"))
guilds = guilds_response.json() guilds = guilds_response.json()
# Debugging: Gib die Gildeninformationen aus
print(f"Guilds: {guilds}")
# Verbindung zur Datenbank herstellen # Verbindung zur Datenbank herstellen
connection = get_db_connection() connection = get_db_connection()
cursor = connection.cursor() cursor = connection.cursor()
@@ -201,6 +212,7 @@ def callback():
return redirect(url_for("server_selection")) return redirect(url_for("server_selection"))
except Exception as e: except Exception as e:
# Fehlerbehandlung mit detaillierter Fehlermeldung
print(f"Error in OAuth2 callback: {e}") print(f"Error in OAuth2 callback: {e}")
flash("Ein Fehler ist beim Authentifizierungsprozess aufgetreten.", "danger") flash("Ein Fehler ist beim Authentifizierungsprozess aufgetreten.", "danger")
return redirect(url_for("landing_page")) return redirect(url_for("landing_page"))

View File

@@ -10,18 +10,22 @@
<div class="container mt-5"> <div class="container mt-5">
<h1 class="text-center">Select a Server</h1> <h1 class="text-center">Select a Server</h1>
<div class="row"> <div class="row">
{% for guild in session['discord_guilds'] %} {% if session['discord_guilds'] %}
<div class="col-md-4 mt-3"> {% for guild in session['discord_guilds'] %}
<div class="card"> <div class="col-md-4 mt-3">
<img src="https://cdn.discordapp.com/icons/{{ guild['id'] }}/{{ guild['icon'] }}.png" class="card-img-top" alt="Server Icon"> <div class="card">
<div class="card-body"> <img src="https://cdn.discordapp.com/icons/{{ guild['id'] }}/{{ guild['icon'] }}.png" class="card-img-top" alt="Server Icon">
<h5 class="card-title">{{ guild['name'] }}</h5> <div class="card-body">
<p class="card-text">You have permission level: {{ guild['permissions'] }}</p> <h5 class="card-title">{{ guild['name'] }}</h5>
<a href="{{ url_for('user_dashboard', guild_id=guild['id']) }}" class="btn btn-primary">Enter Server</a> <p class="card-text">You have permission level: {{ guild['permissions'] }}</p>
<a href="{{ url_for('user_dashboard', guild_id=guild['id']) }}" class="btn btn-primary">Enter Server</a>
</div>
</div> </div>
</div> </div>
</div> {% endfor %}
{% endfor %} {% else %}
<p>No guilds found. Please try again later.</p>
{% endif %}
</div> </div>
</div> </div>
</body> </body>