diff --git a/files/routes/admin.py b/files/routes/admin.py index 47088cb192..de5aad3554 100644 --- a/files/routes/admin.py +++ b/files/routes/admin.py @@ -16,6 +16,7 @@ from flask import * from files.__main__ import app, cache, limiter from .front import frontlist from files.helpers.discord import add_role +from collections import Counter SITE_NAME = environ.get("SITE_NAME", "").strip() @@ -24,16 +25,21 @@ SITE_NAME = environ.get("SITE_NAME", "").strip() def votes2(v, id): try: id = int(id) except: abort(400) + username = g.db.query(User.username).filter(User.id==7).first()[0] + votes = g.db.query(Vote.user_id, func.count(Vote.user_id)).join(Submission, Vote.submission_id==Submission.id).filter(Vote.vote_type==1, Submission.author_id==id).group_by(Vote.user_id).order_by(func.count(Vote.user_id).desc()).limit(25).all() - voters=[x[0] for x in votes] - counts=[x[1] for x in votes] - users = g.db.query(User).filter(User.id.in_(voters)).all() - users = sorted(users, key=lambda x: voters.index(x.id)) - users2 = [] - for idx, user in enumerate(users): users2.append((user, counts[idx])) + votes2 = g.db.query(CommentVote.user_id, func.count(CommentVote.user_id)).join(Comment, CommentVote.comment_id==Comment.id).filter(CommentVote.vote_type==1, Comment.author_id==id).group_by(CommentVote.user_id).order_by(func.count(CommentVote.user_id).desc()).limit(25).all() - return render_template("upvoters.html", v=v, users=users2) + votes = Counter(dict(votes)) + Counter(dict(votes2)) + + users = g.db.query(User).filter(User.id.in_(votes.keys())).all() + users2 = [] + for user in users: users2.append((user, votes[user.id])) + + users = sorted(users2, key=lambda x: x[1], reverse=True) + + return render_template("upvoters.html", v=v, users=users, username=username) @app.get("/name//") diff --git a/files/templates/upvoters.html b/files/templates/upvoters.html index ba2fc87aca..2d369943e6 100644 --- a/files/templates/upvoters.html +++ b/files/templates/upvoters.html @@ -4,6 +4,8 @@ +
@{{username}}'s biggest simps
+