|
- let load_url = "https://leadercraft.exmods.org/s/player"
- let test_url = "http://localhost:1337/player"
- //load_url = test_url // testing only
-
- function build_player() {
- // build
- let player = document.getElementById("player-name")
- let player_link = document.getElementById("player-link")
- let leaderboard = document.getElementById("leaderboard")
- let leaderboard_container = document.getElementById("leaderboard-container")
- let tmpEntry = {ID: -42, Rank:"?", BoardURL: "", BoardName:"Loading...", PlayerURL: "/player?id=1", PlayerName: "Loading...", Score:">9000"}
- let errEntry = build_entry(tmpEntry)
- leaderboard.appendChild(errEntry)
- let gen_url = load_url+"?"+window.location.href.split("?").slice(1).join("?")+"&entries=25"
- setTimeout(() => {document.getElementById("nameAnchor-42").innerText = "Something went wrong :(";}, 5000) // 5s
- fetch(gen_url).then(
- (response) => {
- if (!response.ok || (response.status) != 200) {
- document.getElementById("nameAnchor-42").innerText = "Something went wrong :("
- return
- }
- errEntry.style.display = "none"
- response.json().then(
- (result) => {
- if (result.Items.length!=1) {
- document.getElementById("nameAnchor-42").innerText = "Something went wrong :("
- return
- }
- errEntry.style.display = "none"
- leaderboard.removeChild(errEntry)
- // build player
- player_link.innerText = result.Items[0].Name
- player_link.href = ""// TODO use result.Items[0].Url
- // build leaderboard
- for (entry of result.Items[0].Entries) {
- let newEntry = build_entry(entry)
- // end
- leaderboard.appendChild(newEntry)
- }
- }
- )
- }
- )
- }
-
- function build_entry(entry) {
- let newEntry = document.createElement("div")
- newEntry.setAttribute("id", "entry"+entry.ID)
- newEntry.classList.add("board-entry")
- // rank
- let rankEntry = document.createElement("span")
- rankEntry.setAttribute("id", "rank"+entry.ID)
- rankEntry.innerText = entry.Rank
- rankEntry.classList.add("board-rank")
- newEntry.appendChild(rankEntry)
- // name and url
- let nameElem = document.createElement("span")
- nameElem.setAttribute("id", "name"+entry.ID)
- nameElem.classList.add("board-name")
- let nameAElem = document.createElement("a")
- nameAElem.setAttribute("id", "nameAnchor"+entry.ID)
- nameAElem.classList.add("board-name-a")
- let splitUrl = entry.BoardURL.split("?")
- if (load_url === test_url) {
- nameAElem.href = "../board/index.html?"+splitUrl.slice(1).join("?")
- } else {
- nameAElem.href = "../board/index.html?"+splitUrl.slice(1).join("?")
- }
- nameAElem.innerText = entry.BoardName
- nameElem.appendChild(nameAElem)
- newEntry.appendChild(nameElem)
- // score
- let scoreElem = document.createElement("span")
- scoreElem.setAttribute("id", "score"+entry.ID)
- scoreElem.classList.add("board-score")
- scoreElem.innerText = entry.Score
- newEntry.appendChild(scoreElem)
- return newEntry
- }
|