diff --git a/drama/routes/settings.py b/drama/routes/settings.py index 0660b701c0..04495b7294 100644 --- a/drama/routes/settings.py +++ b/drama/routes/settings.py @@ -7,7 +7,6 @@ from drama.helpers.discord import remove_user, set_nick from drama.mail import * from .front import frontlist from drama.__main__ import app, cache -from .users import leaderboard import youtube_dl valid_username_regex = re.compile("^[a-zA-Z0-9_\-]{3,25}$") @@ -52,9 +51,9 @@ def settings_profile_post(v): if request.values.get("animatedname", v.animatedname) != v.animatedname: if v.animatedname == False: - users1, users2 = leaderboard() - users1 = [x.id for x in users1] - if v.id not in users1: return jsonify({"error": "You must be in the top 25 leaderboard or be a patron to apply an animated name!"}), 403 + users = g.db.query(User.id).options(lazyload('*')).order_by(User.dramacoins.desc()).limit(25).all() + users = [x[0] for x in users] + if v.id not in users: return jsonify({"error": "You must be in the top 25 leaderboard or be a patron to apply an animated name!"}), 403 updated = True v.animatedname = request.values.get("animatedname", None) == 'true' diff --git a/drama/routes/users.py b/drama/routes/users.py index ff8ae264d1..dedfd30d03 100644 --- a/drama/routes/users.py +++ b/drama/routes/users.py @@ -43,8 +43,8 @@ def user_info(v, username): def leaderboard(v): if v and v.is_banned and not v.unban_utc:return render_template("seized.html") users = g.db.query(User).options(lazyload('*')) - users1= sorted(users, key=lambda x: x.dramacoins, reverse=True)[:25] - users2= list(users.order_by(User.stored_subscriber_count.desc()).limit(10).all()) + users1= users.order_by(User.dramacoins.desc()).limit(25).all() + users2= users.order_by(User.stored_subscriber_count.desc()).limit(10).all() return render_template("leaderboard.html", v=v, users1=users1, users2=users2) @app.get("/@/css")