From 37e1ab8c5f07857bc5c20620820af5e7689ae705 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Fri, 26 Jun 2026 09:36:09 +0530 Subject: [PATCH] Clamp leaderboard period delta to zero --- scripts/sync-leaderboard.js | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/scripts/sync-leaderboard.js b/scripts/sync-leaderboard.js index a035c6af..f16789f4 100644 --- a/scripts/sync-leaderboard.js +++ b/scripts/sync-leaderboard.js @@ -278,17 +278,30 @@ async function processTimeframe( data.splice(i--, 1); continue; } - data[i].data.easySolved -= previousData[previousIndex].data.easySolved; - data[i].data.mediumSolved -= previousData[previousIndex].data.mediumSolved; - data[i].data.hardSolved -= previousData[previousIndex].data.hardSolved; - data[i].score = - data[i].data.easySolved + - data[i].data.mediumSolved * 3 + - data[i].data.hardSolved * 5; - data[i].data.totalSolved = - data[i].data.easySolved + - data[i].data.mediumSolved + - data[i].data.hardSolved; + data[i].data.easySolved = Math.max( + 0, + data[i].data.easySolved - previousData[previousIndex].data.easySolved +); + +data[i].data.mediumSolved = Math.max( + 0, + data[i].data.mediumSolved - previousData[previousIndex].data.mediumSolved +); + +data[i].data.hardSolved = Math.max( + 0, + data[i].data.hardSolved - previousData[previousIndex].data.hardSolved +); + +data[i].score = + data[i].data.easySolved + + data[i].data.mediumSolved * 3 + + data[i].data.hardSolved * 5; + +data[i].data.totalSolved = + data[i].data.easySolved + + data[i].data.mediumSolved + + data[i].data.hardSolved; if (periodName === "weekly" && data[i].data.totalSolved >= 7 && badgesMap) { checkHotStreak(data[i].id, DATA_DIR, badgesMap);