Skip to content

Commit

Permalink
Added regions and a start to submitting the runs on src
Browse files Browse the repository at this point in the history
  • Loading branch information
Bluestonex63 committed Jun 28, 2023
1 parent ee00b91 commit 07d8b4a
Show file tree
Hide file tree
Showing 2 changed files with 88 additions and 3 deletions.
8 changes: 8 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,10 @@ <h1 style="width:100%; height: 50%; flex: 1">Run Submitter</h1>
<div id="defdatediv">
<label><strong>Date:</strong></label> <br>
<input type="date" id="defdate">
</div><p></p>
<div id="defregiondiv" class="invisible">
<label><strong>Region:</strong></label> <br>
<select id="defregionsel"></select>
</div>
</div>
</div>
Expand Down Expand Up @@ -236,6 +240,10 @@ <h3>Date:</h3>
<input type="date" id="date">
</div>
<p></p>
<div id="regiondiv" class="invisible">
<h3>Region:</h3>
<label>Input the region here:</label> <br>
<select id="regionsel"></select>
</div>
</form>
</div>
Expand Down
83 changes: 80 additions & 3 deletions script.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ const button = document.querySelector("#gameBtn")
const src = "https://www.speedrun.com/api/v1/"
let sel = []
let platforms = []
let regions = []
let sellist = []
let ge = false
Date.prototype.toDateInputValue = (function() {
Expand Down Expand Up @@ -174,15 +175,22 @@ let varc = (vari, lvls, cats, masterdiv) => {
}
}
button.addEventListener("click", async function() {
document.querySelector("#submit").disabled = true
document.querySelector("#generate").disabled = true
if (platforms.length == 0) {
for (let offset = 0; offset < 50; offset++) {
let plats = await fetch(src + `platforms?max=200&offset=${offset*200}`).then(x => x.json())
platforms = platforms.concat(plats.data)
if (plats.data.length < 200) { break }
}
}
document.querySelector("#submit").disabled = true
document.querySelector("#generate").disabled = true
if (regions.length == 0) {
for (let offset = 0; offset < 50; offset++) {
let reg = await fetch(src + `regions?max=200&offset=${offset*200}`).then(x => x.json())
regions = regions.concat(reg.data)
if (reg.data.length < 200) { break }
}
}
button.disabled = true
let r = {}
lvls = {}
Expand Down Expand Up @@ -288,6 +296,39 @@ button.addEventListener("click", async function() {
document.querySelector("#def" + time + "ms").value = ""
}
}
masterdiv.querySelector("#regionsel").innerHTML = ""
document.querySelector("#defregionsel").innerHTML = ""
if (r.data["regions"].length == 0) {
if (!masterdiv.querySelector("#regiondiv").classList.contains("invisible")) {masterdiv.querySelector("#regiondiv").classList.add("invisible")}
if (!document.querySelector("#defregiondiv").classList.contains("invisible")) {document.querySelector("#defregiondiv").classList.add("invisible")}
} else {
if (masterdiv.querySelector("#regiondiv").classList.contains("invisible")) {masterdiv.querySelector("#regiondiv").classList.remove("invisible")}
let re = document.createElement("option")
re.innerHTML = "None"
re.value = null
masterdiv.querySelector("#regionsel").appendChild(re)
for (region of regions) {
if (r.data["regions"].includes(region.id)) {
let re = document.createElement("option")
re.innerHTML = region.name
re.value = region.id
masterdiv.querySelector("#regionsel").appendChild(re)
}
}
if (document.querySelector("#defregiondiv").classList.contains("invisible")) {document.querySelector("#defregiondiv").classList.remove("invisible")}
re = document.createElement("option")
re.innerHTML = "None"
re.value = null
document.querySelector("#defregionsel").appendChild(re)
for (region of regions) {
if (r.data["regions"].includes(region.id)) {
let re = document.createElement("option")
re.innerHTML = region.name
re.value = region.id
document.querySelector("#defregionsel").appendChild(re)
}
}
}
for (time of ["realtime", "realtime_noloads", "ingame"]) {
if (r.data.ruleset["run-times"].includes(time)) {
if(masterdiv.querySelector("#" + time + "mdiv").classList.contains("invisible")) {
Expand Down Expand Up @@ -580,6 +621,7 @@ document.querySelector("#generate").addEventListener("click", (e) => {
}
let splits = document.querySelector("#defsplits")
let comment = document.querySelector("#defcomment")
let region = document.querySelector("#defregionsel")
let date = document.querySelector("#defdate")
let time = {"realtime": [], "ingame": [], "realtime_noloads": []}
let model = document.querySelectorAll(".masterdiv")[0]
Expand Down Expand Up @@ -625,6 +667,7 @@ document.querySelector("#generate").addEventListener("click", (e) => {
}
run2.querySelector("#videolink").value = video.value
run2.querySelector("#catsel").value = cat
run2.querySelector("#regionsel").value = region.value
run2.querySelector("#pform").querySelector("select").value = platform.value
if (document.querySelector("#defemulator") != null) {
run2.querySelector("#emulator").checked = emulator
Expand Down Expand Up @@ -679,6 +722,7 @@ document.querySelector("#generate").addEventListener("click", (e) => {
}
run2.querySelector("#videolink").value = video.value
run2.querySelector("#catsel").value = cat
run2.querySelector("#regionsel").value = region.value
run2.querySelector("#pform").querySelector("select").value = platform.value
if (document.querySelector("#defemulator") != null) {
run2.querySelector("#emulator").checked = emulator
Expand Down Expand Up @@ -735,6 +779,7 @@ document.querySelector("#generate").addEventListener("click", (e) => {
}
run2.querySelector("#videolink").value = video.value
run2.querySelector("#catsel").value = cat
run2.querySelector("#regionsel").value = region.value
run2.querySelector("#pform").querySelector("select").value = platform.value
if (document.querySelector("#defemulator") != null) {
run2.querySelector("#emulator").checked = emulator
Expand Down Expand Up @@ -784,6 +829,38 @@ document.querySelector("#generate").addEventListener("click", (e) => {
})
document.querySelector("#submit").addEventListener("click", function() {
if (confirm(`Are you sure you want to go through with this? \n \nYou are about to submit ${document.querySelectorAll(".masterdiv").length} runs. \n\nPlease double check everything before proceeding. \n\nClick "OK" to proceed.`)) {

let allruns = []
for (run2 of document.querySelectorAll(".masterdiv")) {
let time = {"realtime": [], "ingame": [], "realtime_noloads": []}
run = {
"run": {
"category": run2.querySelector("#catsel").value ,
"level": run2.querySelector("#lvlsel").value, // create if
"date": run2.querySelector("#date").value,
"region": run2.querySelector("#regionsel").value, //create if
"platform": run2.querySelector("#pform").querySelector("select").value,
"times": {
"realtime": 1234.56,
"realtime_noloads": 1200.10,
"ingame": 1150
},
"emulated": run2.querySelector("#emulator").checked, // create if
"video": run2.querySelector("#videolink").value,
"comment": run2.querySelector("#commentarea").value,
"splitsio": run2.querySelector("#splits").value,
"variables": {
"<variable ID>": {
"type": "user-defined",
"value": "my value"
},
"<variable ID>": {
"type": "pre-defined",
"value": "<value ID>"
}
}
}
}
allruns.push(run)
}
}
})

0 comments on commit 07d8b4a

Please sign in to comment.