modified: app.py

new file:   templates/leaderboard.html
This commit is contained in:
SimolZimol
2024-10-29 13:49:44 +01:00
parent 8e58c8dca9
commit d82f10c61d
2 changed files with 86 additions and 1 deletions

30
app.py
View File

@@ -8,7 +8,7 @@ import os
import subprocess
import psutil
import mysql.connector
from datetime import datetime
from datetime import datetime, timedelta
from flask_session import Session
app = Flask(__name__)
@@ -488,6 +488,34 @@ def user_dashboard(guild_id):
flash("Please log in to view your dashboard.", "danger")
return redirect(url_for("landing_page"))
@app.route("/user_dashboard/<int:guild_id>/leaderboard")
def leaderboard(guild_id):
"""Zeigt das Level Leaderboard für einen bestimmten Server an."""
if "discord_user" in session:
connection = get_db_connection()
cursor = connection.cursor(dictionary=True)
# Holen des aktuellen Datums und des Datums von einem Monat zurück
current_date = datetime.now()
one_month_ago = current_date - timedelta(days=30)
# Abfrage für das Leaderboard
cursor.execute("""
SELECT nickname, profile_picture, level, xp, join_date
FROM user_data
WHERE guild_id = %s
AND ban = 0
AND (leave_date IS NULL OR leave_date > %s)
ORDER BY level DESC, xp DESC
""", (guild_id, one_month_ago))
leaderboard_data = cursor.fetchall()
cursor.close()
connection.close()
return render_template("leaderboard.html", leaderboard=leaderboard_data, guild_id=guild_id)
return redirect(url_for("landing_page"))
@app.route("/server_giveaways/<int:guild_id>")
def server_giveaways(guild_id):