var library = []; var URLINFO = new URL(window.location.href); document.addEventListener("DOMContentLoaded", function() { document.getElementById("query").addEventListener("keydown", function(event) { if (event.keyCode == 13) { event.preventDefault(); document.getElementById("submit").click(); } }); var raw = new XMLHttpRequest(); var libIndic = document.getElementById("libIndic"); libIndic.innerHTML = "loading"; raw.addEventListener("load", function() { if (this.status != 200) return alert("Cannot fetch library"); var items = this.responseText.split("\n"); for (var i = 0; i < items.length; i++) { if (items[i] == "") continue; var info = JSON.parse(items[i]); info.lName = info.name.toLowerCase().split(" ").join("_"); library.push(info); } libIndic.innerHTML = "loaded"; }); raw.open("GET", "https://home.nezbednik.eu.org:2000/NTV_offering/library.txt"); raw.send(); }); window.addEventListener("message", (data) => { if (data.data == "closeQueue") document.getElementById("queueButton").click(); }); function doSearch() { document.getElementById("nosearch").style.display = "none"; document.getElementById("noresults").style.display = "none"; var searching = document.getElementById("searching"); var resultsH = document.getElementById("results"); resultsH.style.display = "none"; resultsH.innerHTML = ""; searching.style.display = "block"; var titles = document.createElement("tr"); var titleName = document.createElement("th"); titleName.innerHTML = "name & stream"; titles.appendChild(titleName); var titleSource = document.createElement("th"); titleSource.innerHTML = "source"; titles.appendChild(titleSource); var titleAdd = document.createElement("th"); titleAdd.innerHTML = "request"; titles.appendChild(titleAdd); resultsH.appendChild(titles); var query = document.getElementById("query").value.toLowerCase().split(" ").join("_"); var results = library.filter((a) => { return a.lName.includes(query); }); for (var i = 0; i < results.length; i++) { var tr = document.createElement("tr"); var _name = document.createElement("td"); var name = document.createElement("a"); name.classList.add("name"); name.href = results[i].stream; name.setAttribute("target", "_blank"); name.innerHTML = (Object.keys(results[i]).includes("prefix") ? ("

(" + results[i].prefix + ")

") : "") + results[i].name; name.style.color = "blue"; _name.appendChild(name); tr.appendChild(_name); var source = document.createElement("td"); source.innerHTML = results[i].source; tr.appendChild(source); var _add = document.createElement("td"); var add = document.createElement("button"); add.textContent = "request!"; add.setAttribute("onclick", "event.preventDefault(); doRequest(this)"); add.setAttribute("data-source", results[i].source); add.setAttribute("data-item", results[i].item); _add.appendChild(add); if (URLINFO.searchParams.has("commandMode") && URLINFO.searchParams.get("commandMode").toString() == "1") { var spacer = document.createElement("a"); spacer.innerHTML = " "; _add.appendChild(spacer); var copy = document.createElement("button"); copy.textContent = "copy"; copy.setAttribute("onclick", "event.preventDefault(); prompt('your command', './makeJSON.sh \\\"' + this.getAttribute('data-stream') + '\\\" \\\"' + this.getAttribute('data-name').split('\"').join('\\\\\\\"') + '\\\" \\\"' + this.getAttribute('data-source') + '\\\"')"); copy.setAttribute("data-stream", results[i].stream); copy.setAttribute("data-name", results[i].name); copy.setAttribute("data-source", results[i].source); _add.appendChild(copy); } tr.appendChild(_add); resultsH.appendChild(tr); } resultsH.style.display = ""; searching.style.display = "none"; } function doRequest(obj) { var comment = prompt("Please enter any wishes here. Special title? Dedication? Will show in the queue menu!"); if (comment == null) comment = ""; var source = obj.getAttribute("data-source"); var item = obj.getAttribute("data-item"); obj.textContent = "requesting"; var paramObj = new URL("http://a.a"); paramObj.searchParams.set("source", source); paramObj.searchParams.set("item", item); if (comment != "") paramObj.searchParams.set("comment", comment); var raw = new XMLHttpRequest(); raw.addEventListener("load", function() { if (this.status != 200) return obj.textContent = "failed :\\"; obj.textContent = "requested!"; }); raw.open("POST", "https://home.nezbednik.eu.org:2000/NTV_offering/request.php"); raw.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); raw.send(paramObj.search.slice(1)); }