From 455925e3bd170dc0acf2d9ee8a39b2ce23394f3d Mon Sep 17 00:00:00 2001 From: justcool393 Date: Sun, 27 Nov 2022 13:25:41 -0600 Subject: [PATCH 1/6] world cup leaderboard --- files/routes/__init__.py | 1 + files/routes/events.py | 35 +++++++++++++++++++ .../event/worldcup22_leaderboard.html | 28 +++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 files/routes/events.py create mode 100644 files/templates/event/worldcup22_leaderboard.html diff --git a/files/routes/__init__.py b/files/routes/__init__.py index 5649270be..b2d1e376d 100644 --- a/files/routes/__init__.py +++ b/files/routes/__init__.py @@ -47,3 +47,4 @@ if FEATURES['ASSET_SUBMISSIONS']: from .asset_submissions import * if FEATURES['STREAMERS']: from .streamers import * +from .events import * diff --git a/files/routes/events.py b/files/routes/events.py new file mode 100644 index 000000000..0c109d468 --- /dev/null +++ b/files/routes/events.py @@ -0,0 +1,35 @@ +from flask import g, jsonify, render_template +from files.helpers.get import get_accounts_dict + +from files.routes.wrappers import auth_required +from files.__main__ import app + +@app.get('/events/worldcup2022/leaderboard') +@auth_required +def get_leaderboard(v): + result = g.db.execute('''WITH bet_votes AS ( + SELECT opt.id AS option_id, opt.exclusive, sov.user_id + FROM submission_option_votes sov + LEFT OUTER JOIN ( + SELECT so.id, so.exclusive + FROM submission_options so + JOIN submissions p ON so.submission_id = p.id + WHERE p.author_id = 30 AND p.created_utc > 1668953400 AND so.exclusive IN (2, 3) + ) AS opt ON opt.id = sov.option_id + WHERE opt.id IS NOT NULL +) +SELECT + COALESCE(bet_won.user_id, bet_lost.user_id) AS user_id, + (COALESCE(bet_won.count_won, 0) + COALESCE(bet_lost.count_lost, 0)) AS bets_total, + COALESCE(bet_won.count_won, 0) AS bets_won +FROM ( + SELECT user_id, COUNT(*) AS count_won FROM bet_votes + WHERE exclusive = 3 GROUP BY user_id) AS bet_won +FULL OUTER JOIN ( + SELECT user_id, COUNT(*) AS count_lost FROM bet_votes + WHERE exclusive = 2 GROUP BY user_id) AS bet_lost +ON bet_won.user_id = bet_lost.user_id +ORDER BY bets_won DESC, bets_total ASC;''') + if g.is_api_or_xhr: return jsonify(result) + users = get_accounts_dict(result[0], v=v, include_shadowbanned=False) + return render_template("events/worldcup22_leaderboard.html", v=v, result=result, users=users) diff --git a/files/templates/event/worldcup22_leaderboard.html b/files/templates/event/worldcup22_leaderboard.html new file mode 100644 index 000000000..a1cd0e8fe --- /dev/null +++ b/files/templates/event/worldcup22_leaderboard.html @@ -0,0 +1,28 @@ +{%- extends 'default.html' -%} +{% block content %} +

World Cup 2022 Betting Leaderboard

+
+ + + + + + + + + + + + {% for result in results %} + {% set user = users.get(result[0]) %} + + + + + + {% endfor %} + +
#NameWinsBetsWins/Bets Ratio
{{loop.index}}{%- include 'user_in_table.html' -%}{{result[2]}}{{result[1]}}{{":. 0%" | format(result[2] / result[1]}|float)}
+
+ +{% endblock %} -- 2.34.1 From 9fc89db0e52b4ce3311dbdd82b89f55476beecb5 Mon Sep 17 00:00:00 2001 From: justcool393 Date: Sun, 27 Nov 2022 13:36:46 -0600 Subject: [PATCH 2/6] fix prev commit --- files/routes/events.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/routes/events.py b/files/routes/events.py index 0c109d468..7ec6ad269 100644 --- a/files/routes/events.py +++ b/files/routes/events.py @@ -29,7 +29,7 @@ FULL OUTER JOIN ( SELECT user_id, COUNT(*) AS count_lost FROM bet_votes WHERE exclusive = 2 GROUP BY user_id) AS bet_lost ON bet_won.user_id = bet_lost.user_id -ORDER BY bets_won DESC, bets_total ASC;''') +ORDER BY bets_won DESC, bets_total ASC;''').all() if g.is_api_or_xhr: return jsonify(result) users = get_accounts_dict(result[0], v=v, include_shadowbanned=False) return render_template("events/worldcup22_leaderboard.html", v=v, result=result, users=users) -- 2.34.1 From 6e36f7dfd7eb16d21e0ce7aaaa53abf00106fdca Mon Sep 17 00:00:00 2001 From: justcool393 Date: Sun, 27 Nov 2022 13:49:33 -0600 Subject: [PATCH 3/6] sdhkdjsdsdsds --- files/routes/events.py | 2 +- files/templates/event/worldcup22_leaderboard.html | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/files/routes/events.py b/files/routes/events.py index 7ec6ad269..978614538 100644 --- a/files/routes/events.py +++ b/files/routes/events.py @@ -31,5 +31,5 @@ FULL OUTER JOIN ( ON bet_won.user_id = bet_lost.user_id ORDER BY bets_won DESC, bets_total ASC;''').all() if g.is_api_or_xhr: return jsonify(result) - users = get_accounts_dict(result[0], v=v, include_shadowbanned=False) + users = get_accounts_dict([r[0] for r in result], v=v, include_shadowbanned=False) return render_template("events/worldcup22_leaderboard.html", v=v, result=result, users=users) diff --git a/files/templates/event/worldcup22_leaderboard.html b/files/templates/event/worldcup22_leaderboard.html index a1cd0e8fe..266938dbd 100644 --- a/files/templates/event/worldcup22_leaderboard.html +++ b/files/templates/event/worldcup22_leaderboard.html @@ -13,13 +13,13 @@ - {% for result in results %} - {% set user = users.get(result[0]) %} + {% for r in result %} + {% set user = users.get(r[0]) %} {{loop.index}} {%- include 'user_in_table.html' -%} - {{result[2]}} - {{result[1]}} - {{":. 0%" | format(result[2] / result[1]}|float)} + {{r[2]}} + {{r[1]}} + {{":. 0%" | format(r[2] / r[1]}|float)} {% endfor %} -- 2.34.1 From 1af199b155f871a56a2311bf634aeb3a53d17b3a Mon Sep 17 00:00:00 2001 From: justcool393 Date: Sun, 27 Nov 2022 13:50:45 -0600 Subject: [PATCH 4/6] fix --- files/routes/events.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/routes/events.py b/files/routes/events.py index 978614538..f9be8836f 100644 --- a/files/routes/events.py +++ b/files/routes/events.py @@ -32,4 +32,4 @@ ON bet_won.user_id = bet_lost.user_id ORDER BY bets_won DESC, bets_total ASC;''').all() if g.is_api_or_xhr: return jsonify(result) users = get_accounts_dict([r[0] for r in result], v=v, include_shadowbanned=False) - return render_template("events/worldcup22_leaderboard.html", v=v, result=result, users=users) + return render_template("event/worldcup22_leaderboard.html", v=v, result=result, users=users) -- 2.34.1 From dcf932a1a7f1fc1d23e343a6f4fe624fd0681eaa Mon Sep 17 00:00:00 2001 From: justcool393 Date: Sun, 27 Nov 2022 13:52:01 -0600 Subject: [PATCH 5/6] fdgfdsgdhgs --- files/templates/event/worldcup22_leaderboard.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/templates/event/worldcup22_leaderboard.html b/files/templates/event/worldcup22_leaderboard.html index 266938dbd..1680203a9 100644 --- a/files/templates/event/worldcup22_leaderboard.html +++ b/files/templates/event/worldcup22_leaderboard.html @@ -19,7 +19,7 @@ {%- include 'user_in_table.html' -%} {{r[2]}} {{r[1]}} - {{":. 0%" | format(r[2] / r[1]}|float)} + {{":. 0%" | format(r[2] / r[1]|float)} {% endfor %} -- 2.34.1 From d76fcb62706b531f7079b6ae316552ffc56548ec Mon Sep 17 00:00:00 2001 From: justcool393 Date: Sun, 27 Nov 2022 13:54:52 -0600 Subject: [PATCH 6/6] oh --- files/templates/event/worldcup22_leaderboard.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/templates/event/worldcup22_leaderboard.html b/files/templates/event/worldcup22_leaderboard.html index 1680203a9..db2f36340 100644 --- a/files/templates/event/worldcup22_leaderboard.html +++ b/files/templates/event/worldcup22_leaderboard.html @@ -19,7 +19,7 @@ {%- include 'user_in_table.html' -%} {{r[2]}} {{r[1]}} - {{":. 0%" | format(r[2] / r[1]|float)} + {{":. 0%" | format(r[2] / r[1]|float)}} {% endfor %} -- 2.34.1