From e50acbcfd6f612272533c6bb77d77b62ffb31f59 Mon Sep 17 00:00:00 2001 From: "Jill \"oatmealine\" Monoids" Date: Mon, 2 Jan 2023 18:55:21 +0300 Subject: [PATCH] weekly level score leaderboard --- src/endpoints/levels/levelScores.cr | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/endpoints/levels/levelScores.cr b/src/endpoints/levels/levelScores.cr index 2bb6251..a7ad7e7 100644 --- a/src/endpoints/levels/levelScores.cr +++ b/src/endpoints/levels/levelScores.cr @@ -51,6 +51,8 @@ CrystalGauntlet.endpoints["/getGJLevelScores211.php"] = ->(body : String): Strin type = params["type"]? ? params["type"] : "1" + where_query = ["level_id = ?"] + case type when 0 # friends @@ -60,13 +62,13 @@ CrystalGauntlet.endpoints["/getGJLevelScores211.php"] = ->(body : String): Strin # todo when 2 # weekly - # todo + where_query << "level_scores.set_at > \"#{(Time.utc - 7.days).to_s(Format::TIME_FORMAT)}\"" end scores = [] of String i = 0 - DATABASE.query_each "select percent, level_scores.coins, set_at, users.username, users.id, users.icon_type, users.color1, users.color2, users.cube, users.ship, users.ball, users.ufo, users.wave, users.robot, users.spider, users.special, users.account_id from level_scores join users on level_scores.account_id = users.account_id where level_id = ? order by percent desc, level_scores.coins desc", level_id do |rs| + DATABASE.query_each "select percent, level_scores.coins, set_at, users.username, users.id, users.icon_type, users.color1, users.color2, users.cube, users.ship, users.ball, users.ufo, users.wave, users.robot, users.spider, users.special, users.account_id from level_scores join users on level_scores.account_id = users.account_id where (#{where_query.join(") and (")}) order by percent desc, level_scores.coins desc limit 200", level_id do |rs| i += 1 percent = rs.read(Int32) coins = rs.read(Int32)