diff --git a/files/routes/posts.py b/files/routes/posts.py index 64370d2ff..ad99366b6 100644 --- a/files/routes/posts.py +++ b/files/routes/posts.py @@ -20,6 +20,7 @@ from urllib.parse import ParseResult, urlunparse, urlparse, quote site = environ.get("DOMAIN").strip() CATBOX_KEY = environ.get("CATBOX_KEY").strip() +titleheaders = {"User-Agent": f"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36"} with open("snappy.txt", "r") as f: snappyquotes = f.read().split("{[para]}") @@ -391,17 +392,11 @@ def get_post_title(v): url = request.values.get("url", None) if not url: return abort(400) - headers = {"User-Agent": f"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36"} - try: x = requests.get(url, headers=headers, timeout=5) - except BaseException: return {"error": "Could not reach page"}, 400 + x = requests.get(url, headers=titleheaders, timeout=5) - if not x.status_code == 200: return {"error": f"Page returned {x.status_code}"}, x.status_code + soup = BeautifulSoup(x.content, 'html.parser') + return {"url": url, "title": soup.find('title').string} - try: - soup = BeautifulSoup(x.content, 'html.parser') - return {"url": url, "title": soup.find('title').string} - except BaseException: - return {"error": f"Could not find a title"}, 400 def archiveorg(url): try: requests.get(f'https://web.archive.org/save/{url}', headers={'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}, timeout=100) diff --git a/files/routes/users.py b/files/routes/users.py index 057cbebd3..c1763d9cf 100644 --- a/files/routes/users.py +++ b/files/routes/users.py @@ -18,25 +18,6 @@ site = environ.get("DOMAIN").strip() beams_client = PushNotifications(instance_id=PUSHER_INSTANCE_ID, secret_key=PUSHER_KEY) - -@app.get("/most_downvoted") -@auth_desired -def most_downvoted(v): - votes = g.db.query(Submission.author_id, func.count(Submission.author_id)).join(Vote, Vote.submission_id==Submission.id).filter(Vote.vote_type==-1).group_by(Submission.author_id).order_by(func.count(Submission.author_id).desc()).limit(25).all() - - votes2 = g.db.query(Comment.author_id, func.count(Comment.author_id)).join(CommentVote, CommentVote.comment_id==Comment.id).filter(CommentVote.vote_type==-1).group_by(Comment.author_id).order_by(func.count(Comment.author_id).desc()).limit(25).all() - - 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)[:25] - - return render_template("most_downvoted.html", v=v, users=users) - - @app.get("/@/upvoters") @auth_desired def upvoters(v, username): @@ -267,10 +248,32 @@ def leaderboard(v): users4 = users.order_by(User.comment_count.desc()).limit(10).all() users5 = users.order_by(User.received_award_count.desc()).limit(10).all() users7 = users.order_by(User.coins_spent.desc()).limit(20).all() + + + + + votes = g.db.query(Submission.author_id, func.count(Submission.author_id)).join(Vote, Vote.submission_id==Submission.id).filter(Vote.vote_type==-1).group_by(Submission.author_id).order_by(func.count(Submission.author_id).desc()).limit(25).all() + + votes2 = g.db.query(Comment.author_id, func.count(Comment.author_id)).join(CommentVote, CommentVote.comment_id==Comment.id).filter(CommentVote.vote_type==-1).group_by(Comment.author_id).order_by(func.count(Comment.author_id).desc()).limit(25).all() + + votes = Counter(dict(votes)) + Counter(dict(votes2)) + + users8 = g.db.query(User).filter(User.id.in_(votes.keys())).all() + users9 = [] + for user in users8: users9.append((user, votes[user.id])) + + users9 = sorted(users9, key=lambda x: x[1], reverse=True)[:25] + + + + + + + if 'pcmemes.net' in request.host: users6 = users.order_by(User.basedcount.desc()).limit(10).all() - return render_template("leaderboard.html", v=v, users1=users1, users2=users2, users3=users3, users4=users4, users5=users5, users6=users6, users7=users7) - return render_template("leaderboard.html", v=v, users1=users1, users2=users2, users3=users3, users4=users4, users5=users5, users7=users7) + return render_template("leaderboard.html", v=v, users1=users1, users2=users2, users3=users3, users4=users4, users5=users5, users6=users6, users7=users7, users9=users9) + return render_template("leaderboard.html", v=v, users1=users1, users2=users2, users3=users3, users4=users4, users5=users5, users7=users7, users9=users9) @app.get("/@/css") diff --git a/files/templates/agendaposters.html b/files/templates/agendaposters.html index df0ecf0f4..5a2168b70 100644 --- a/files/templates/agendaposters.html +++ b/files/templates/agendaposters.html @@ -10,7 +10,7 @@ {% for user in users %} - {{users.index(user)+1}} + {{loop.index}} {{user.username}} {% endfor %} diff --git a/files/templates/banned.html b/files/templates/banned.html index 5fb884ca7..68369b2f9 100644 --- a/files/templates/banned.html +++ b/files/templates/banned.html @@ -12,7 +12,7 @@ {% for user in users %} - {{users.index(user)+1}} + {{loop.index}} {{user.username}} {% if user.ban_reason %}{{user.ban_reason}}{% endif %} {{user.banned_by.username}} diff --git a/files/templates/leaderboard.html b/files/templates/leaderboard.html index 9df4c1aec..b2d263f2d 100644 --- a/files/templates/leaderboard.html +++ b/files/templates/leaderboard.html @@ -16,7 +16,7 @@ {% for user in users1 %} - {{users1.index(user)+1}} + {{loop.index}} {{user.username}} {{user.coins}} @@ -44,7 +44,7 @@ {% for user in users7 %} - {{users7.index(user)+1}} + {{loop.index}} {{user.username}} {{user.coins_spent}} @@ -71,7 +71,7 @@ {% for user in users2 %} - {{users2.index(user)+1}} + {{loop.index}} {{user.username}} {{user.stored_subscriber_count}} @@ -96,7 +96,7 @@ {% for user in users3 %} - {{users3.index(user)+1}} + {{loop.index}} {{user.username}} {{user.post_count}} @@ -121,7 +121,7 @@ {% for user in users4 %} - {{users4.index(user)+1}} + {{loop.index}} {{user.username}} {{user.comment_count}} @@ -148,7 +148,7 @@ {% for user in users5 %} - {{users5.index(user)+1}} + {{loop.index}} {{user.username}} {{user.received_award_count}} @@ -156,6 +156,38 @@ +
+
+
+
+
Most downvoted users
+
+
+
+
+ + + + + + + + + + + {% for user in users9 %} + + + + + + {% endfor %} + +
#NameDownvotes
{{loop.index}}{{user[0].username}}{{user[1]}}
+ + + + {% if "pcm" in request.host %}
 
@@ -176,7 +208,7 @@
 	
 	{% for user in users6 %}
 		
-			{{users6.index(user)+1}}
+			{{loop.index}}
 			{{user.username}}
 			{{user.basedcount}}
 		
diff --git a/files/templates/most_downvoted.html b/files/templates/most_downvoted.html
index b419f1460..96d023631 100644
--- a/files/templates/most_downvoted.html
+++ b/files/templates/most_downvoted.html
@@ -6,23 +6,5 @@
 
Most downvoted users

-
-
-	
-		
-		
-		
-	
-
-
-{% for user in users %}
-	
-		
-		
-		
-	
-{% endfor %}
-
-
#NameDownvotes
{{loop.index}}{{user[0].username}}{{user[1]}}
{% endblock %} \ No newline at end of file diff --git a/files/templates/rentoids.html b/files/templates/rentoids.html index 038ed2298..1416cedd5 100644 --- a/files/templates/rentoids.html +++ b/files/templates/rentoids.html @@ -12,7 +12,7 @@ {% for user in users %} - {{users.index(user)+1}} + {{loop.index}} {{user.username}} {% endfor %} diff --git a/files/templates/shadowbanned.html b/files/templates/shadowbanned.html index a4eaf235d..66b08b87f 100644 --- a/files/templates/shadowbanned.html +++ b/files/templates/shadowbanned.html @@ -11,7 +11,7 @@ {% for user in users %} - {{users.index(user)+1}} + {{loop.index}} {{user.username}} {{user.shadowbanned}} diff --git a/files/templates/thiefs.html b/files/templates/thiefs.html index a214a38d5..8d34acacf 100644 --- a/files/templates/thiefs.html +++ b/files/templates/thiefs.html @@ -12,7 +12,7 @@ {% for user in successful %} - {{successful.index(user)+1}} + {{loop.index}} {{user.username}} {% endfor %} @@ -30,7 +30,7 @@ {% for user in failed2 %} - {{failed2.index(user)+1}} + {{loop.index}} {{user.username}} {% endfor %} @@ -48,7 +48,7 @@ {% for user in failed %} - {{failed.index(user)+1}} + {{loop.index}} {{user.username}} {% endfor %} diff --git a/files/templates/truescore.html b/files/templates/truescore.html index df19f8e1f..d34103518 100644 --- a/files/templates/truescore.html +++ b/files/templates/truescore.html @@ -16,7 +16,7 @@ {% for user in users %} - {{users.index(user)+1}} + {{loop.index}} {{user.username}} {{user.truecoins}}