From b02f78cc581133ee12dc7643c405e5e36496be20 Mon Sep 17 00:00:00 2001 From: Vyomrana02 Date: Wed, 22 May 2024 13:32:37 +0530 Subject: [PATCH] LeaderBoard Changes --- index.html | 13 ++-- script.js | 215 +++++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 166 insertions(+), 62 deletions(-) diff --git a/index.html b/index.html index 498bcd2..7b568a2 100644 --- a/index.html +++ b/index.html @@ -233,7 +233,10 @@

Top 50 Contributors Leaderboard

GitHub
Progress
-
+
+ +
+ +
+
diff --git a/script.js b/script.js index 169fdb2..4b23ad9 100644 --- a/script.js +++ b/script.js @@ -1,55 +1,156 @@ -const data = [ - { place: 1, name: "Steven A" }, - { place: 2, name: "Raghav M" }, - { place: 3, name: "Ryan Z" }, - { place: 4, name: "Joseph R" }, - { place: 5, name: "Muwaffaq I" }, - { place: 6, name: "Joshua L" }, - { place: 7, name: "Nick M" }, - { place: 8, name: "Ravindra R" }, - { place: 9, name: "Ricardo M" }, - { place: 10, name: "Shubham R" }, - { place: 11, name: "Flavio S" }, - { place: 12, name: "Igor S" }, - { place: 13, name: "Mycah H" }, - { place: 14, name: "hemant d" }, - { place: 15, name: "Santhosh S" }, - { place: 16, name: "Joseph D" }, - { place: 17, name: "Kevin C" }, - { place: 18, name: "yasser m" }, - { place: 19, name: "Miguel Ángel M" }, - { place: 20, name: "Peter K" }, - { place: 21, name: "Atikur R" }, - { place: 22, name: "Matthew Y" }, - { place: 23, name: "Anwar S" }, - { place: 24, name: "Jake Y" }, - { place: 25, name: "Lokesh R" }, - { place: 26, name: "Christopher P" }, - { place: 27, name: "Mingxin O" }, - { place: 28, name: "August E" }, - { place: 29, name: "Samsruti D" }, - { place: 30, name: "Harsh V" }, - { place: 31, name: "Keenan P" }, - { place: 32, name: "Rouz A" }, - { place: 33, name: "Ron R" }, - { place: 34, name: "Sean O" }, - { place: 35, name: "Michael D" }, - { place: 36, name: "Devishree R" }, - { place: 37, name: "Ali R" }, - { place: 38, name: "Alvin A" }, - { place: 39, name: "Arthur N" }, - { place: 40, name: "Choulhyouc L" }, - { place: 41, name: "Zeeshan H" }, - { place: 42, name: "Goran Đ" }, - { place: 43, name: "sovannarong k" }, - { place: 44, name: "Luke M" }, - { place: 45, name: "Chenzhe X" }, - { place: 46, name: "Jae Hee L" }, - { place: 47, name: "Jason P" }, - { place: 48, name: "Sebastiano D" }, - { place: 49, name: "Julia S" }, - { place: 50, name: "Sana" }, -]; +// const data = [ +// { place: 1, name: "Steven A" }, +// { place: 2, name: "Raghav M" }, +// { place: 3, name: "Ryan Z" }, +// { place: 4, name: "Joseph R" }, +// { place: 5, name: "Muwaffaq I" }, +// { place: 6, name: "Joshua L" }, +// { place: 7, name: "Nick M" }, +// { place: 8, name: "Ravindra R" }, +// { place: 9, name: "Ricardo M" }, +// { place: 10, name: "Shubham R" }, +// { place: 11, name: "Flavio S" }, +// { place: 12, name: "Igor S" }, +// { place: 13, name: "Mycah H" }, +// { place: 14, name: "hemant d" }, +// { place: 15, name: "Santhosh S" }, +// { place: 16, name: "Joseph D" }, +// { place: 17, name: "Kevin C" }, +// { place: 18, name: "yasser m" }, +// { place: 19, name: "Miguel Ángel M" }, +// { place: 20, name: "Peter K" }, +// { place: 21, name: "Atikur R" }, +// { place: 22, name: "Matthew Y" }, +// { place: 23, name: "Anwar S" }, +// { place: 24, name: "Jake Y" }, +// { place: 25, name: "Lokesh R" }, +// { place: 26, name: "Christopher P" }, +// { place: 27, name: "Mingxin O" }, +// { place: 28, name: "August E" }, +// { place: 29, name: "Samsruti D" }, +// { place: 30, name: "Harsh V" }, +// { place: 31, name: "Keenan P" }, +// { place: 32, name: "Rouz A" }, +// { place: 33, name: "Ron R" }, +// { place: 34, name: "Sean O" }, +// { place: 35, name: "Michael D" }, +// { place: 36, name: "Devishree R" }, +// { place: 37, name: "Ali R" }, +// { place: 38, name: "Alvin A" }, +// { place: 39, name: "Arthur N" }, +// { place: 40, name: "Choulhyouc L" }, +// { place: 41, name: "Zeeshan H" }, +// { place: 42, name: "Goran Đ" }, +// { place: 43, name: "sovannarong k" }, +// { place: 44, name: "Luke M" }, +// { place: 45, name: "Chenzhe X" }, +// { place: 46, name: "Jae Hee L" }, +// { place: 47, name: "Jason P" }, +// { place: 48, name: "Sebastiano D" }, +// { place: 49, name: "Julia S" }, +// { place: 50, name: "Sana" }, +// ]; + +function compare(a, b) { + if (a.contributions < b.contributions) { + return 1; + } + if (a.contributions > b.contributions) { + return -1; + } + return 0; +} +async function getContributors(repoName, page = 1) { + let request = await fetch(`https://api.github.com/repos/GameSphere-MultiPlayer/Community-Page/contributors?page=1&anon=true`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + } + }); + + + + // print data from the fetch on screen + let contributorsList = await request.json(); + contributorsList.sort(compare); + var data = [] + var size = contributorsList.length + for (var i = 0; i < size; i++) { + data.push({ place: i + 1, name: (contributorsList[i].login==undefined)? contributorsList[i].name : contributorsList[i].login}); + } + console.log(data) + + return data; +}; + +var medals = ['medal-gold', 'medal-silver', 'medal-bronze'] +window.onload = async function () { + const data = await getContributors("Community-Page") + + console.log(data.length) + var i = 0; + data.forEach(item => { + if (i > 2) { + const rankingTable = document.getElementById('rankingTableBody'); + const row = document.createElement('div'); + row.className = 'ranking-table-row'; + + const placeCell = document.createElement('div'); + placeCell.className = 'ranking-table-data'; + placeCell.textContent = item.place; + + const nameCell = document.createElement('div'); + nameCell.className = 'ranking-table-data'; + nameCell.textContent = item.name; + + const completeCell = document.createElement('div'); + completeCell.className = 'ranking-table-data'; + + const completeIndicator = document.createElement('div'); + completeIndicator.className = 'complete'; + completeCell.appendChild(completeIndicator); + + row.appendChild(placeCell); + row.appendChild(nameCell); + row.appendChild(completeCell); + + rankingTable.appendChild(row); + } else { + const rankingTable = document.getElementById("top3") + const row = document.createElement('div'); + row.className = 'ranking-table-row-leader-' + (i + 1); + + const placeCell = document.createElement('div'); + placeCell.className = 'ranking-table-data-leader-' + (i + 1); + + const medalcell = document.createElement('div') + console.log(medals[i]) + medalcell.className = medals[i]; + + placeCell.appendChild(medalcell); + + const nameCell = document.createElement('div'); + nameCell.className = 'ranking-table-data'; + nameCell.textContent = item.name; + + const completeCell = document.createElement('div'); + completeCell.className = 'ranking-table-data'; + + const completeIndicator = document.createElement('div'); + completeIndicator.className = 'complete'; + completeCell.appendChild(completeIndicator); + + row.appendChild(placeCell); + row.appendChild(nameCell); + row.appendChild(completeCell); + + rankingTable.appendChild(row); + } + i++; + }); + console.log("RUNNED") +} + const nav = document.querySelector(".nav"), searchIcon = document.querySelector("#searchIcon"), navOpenBtn = document.querySelector(".navOpenBtn"), @@ -68,7 +169,7 @@ searchResult.addEventListener("input", () => { ); console.log(result) resultContainer.innerHTML = ""; - if (result.length !== 0){ + if (result.length !== 0) { result.forEach((item, index) => { const div = document.createElement("div"); const p = document.createElement("p"); @@ -80,7 +181,7 @@ searchResult.addEventListener("input", () => { resultContainer.appendChild(div); }); } - else{ + else { resultContainer.style.display = "none"; } } @@ -114,12 +215,12 @@ toggleButton.addEventListener("click", () => { toggleButton.classList.remove("bi-toggle-off"); toggleButton.classList.add("bi-toggle-on"); document.getElementById("menuBarsColor").style.color = "black"; - document.querySelectorAll("a").forEach((link)=>link.style.color = "black"); - } else { + document.querySelectorAll("a").forEach((link) => link.style.color = "black"); + } else { toggleButton.classList.remove("bi-toggle-on"); toggleButton.classList.add("bi-toggle-off"); document.getElementById("menuBarsColor").style.color = "white"; - document.querySelectorAll("a").forEach((link)=>link.style.color = "white"); + document.querySelectorAll("a").forEach((link) => link.style.color = "white"); } });