129 lines
5.1 KiB
JavaScript
129 lines
5.1 KiB
JavaScript
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") ? ("<p href=\"about:blank\" style=\"text-decoration: none; display: inline; color: #3399ff;\">(" + results[i].prefix + ")</p> ") : "") + 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));
|
|
}
|