SamsungTVController/htdocs/index.html

375 lines
17 KiB
HTML

<!DOCTYPE html>
<html>
<!--Hello! You have found my TV Controller. The API provided in this source is behind a firewall and will be of no use to you. Move along!-->
<head>
<div id="view2"></div>
</head>
<title>Samsung TVController</title>
<!--Styles-->
<style>
body {
background-color: #101010;
color: #ffffff;
}
h1 {
color: #ffffff;
}
nav a {
color: #ffffff;
}
footer {
color: #ffffff;
}
</style>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
crossorigin="anonymous"></script>
<!--END Styles-->
<!--MAIN JS-->
<script>
// Set API URL
let rootURL = "https://grwh.work:3031"
// Init timer VAR
var timer;
// Youtube Shorts Timer - Skip Every 55 Seconds
function startTimer() {
console.log("Shorts timer started!")
showSuccessAlert("Started Shorts Timer")
timer = setInterval(function () {
console.log("Time is up, going to next short");
fetch(rootURL + "/down")
.then(function (response) {
return response.json();
}).then(function (data) {
console.log("Resonse from AutoScroll Request: " + data)
if (data == 1) {
showSuccessAlert("Next Short Requested Successfully!")
console.log("Command: Next Short - SENT!")
} else {
showSuccessAlert("Next Short Request FAILED!")
console.log("Command: Next Short FAILED!")
}
})
}, 55000);
}
// Kill the Timer
function stopTimer() {
showSuccessAlert("Shorts Timer Disabled!")
clearInterval(timer);
}
// Settng up success alerts
function showSuccessAlert(message) {
document.getElementById("view2").innerHTML = "<div class=\"alert alert-success\" role=\"alert\"><CENTER>" + message + "</CENTER></div>";
setInterval(function () {
document.getElementById("view2").innerHTML = "<BR><BR><BR>";
}, 15000);
}
// Setting up Failed Alerts
function showFailAlert(message) {
document.getElementById("view2").innerHTML = "<div class=\"alert alert-danger\" role=\"alert\"><CENTER>" + message + "</CENTER></div>";
setInterval(function () {
console.log("60 seconds are up, going to next short");
document.getElementById("view2").innerHTML = "<BR><BR><BR>";
}, 15000);
}
// This function is only used for the Refresh Button
function generateNewToken() {
fetch(rootURL + "/newToken")
.then(function (response) {
return response.json();
})
.then(function (data) {
if (data == 1) {
showSuccessAlert("New Token Request Sent Successfully!")
return console.log("Command: New Token Request - SENT!")
} else {
showSuccessAlert("New Token Request FAILED!")
return console.log("Command: New Token Request FAILED!")
}
})
}
// Ask the user for the password.
let pass = prompt("Enter the password!", "");
let text;
// Ask the API if the password is correct
fetch(rootURL + "/checkPass?pass=" + pass)
.then(function (response) {
return response.json();
}) // Check for a positive 1 response back
.then(function (data) {
if (data == "1") {
// If they do not submit a password OR hit cancel, fail the login!
if (pass == null || pass == "") {
document.getElementById("view").innerHTML = "WOO"
} else {
// If we got this far, we have logged in, lets tell the user that
showSuccessAlert("You have logged in successfully!")
document.getElementById("view").innerHTML = "<CENTER><IMG SRC=\"../images/icon.png\"></CENTER><a href=\"javascript:window.open('help.html','Click for Key ShortCuts!','width=600,height=400')\">Click for Key ShortCuts!</a><BR><BR><a href=\"javascript:window.open('input.html','Click to Send Text Imput!','width=600,height=400')\"><button type=\"button\" class=\"btn btn-primary\">Open Text Input</button></a><BR><BR><button type=\"button\" class=\"btn btn-primary\" onclick=\"startTimer()\">Enable AutoScroll</button> / <button type=\"button\" class=\"btn btn-primary\" onclick=\"stopTimer()\"> Disable</button> <BR><BR>Commands Not Working? Issue a new Token using: <BR> <button type=\"button\" class=\"btn btn-primary\" onclick=\"generateNewToken()\">Request new Token</button>";
// Adding the event Listening Function
function addEvent(element, eventName, callback) {
if (element.addEventListener) {
element.addEventListener(eventName, callback, false);
} else if (element.attachEvent) {
element.attachEvent("on" + eventName, callback);
} else {
element["on" + eventName] = callback;
}
}
// Lets now listen for events
addEvent(document, "keypress", function (e) {
e = e || window.event;
// Command UP
if (e.key == "w" || e.code == "Numpad8") {
fetch(rootURL + "/up")
.then(function (response) {
return response.json();
})
.then(function (data) {
if (data == 1) {
showSuccessAlert("UP Sent Successfully!")
return console.log("Command: UP - SENT!")
} else {
showSuccessAlert("UP FAILED!")
return console.log("Command: UP FAILED!")
}
})
}
// Command LEFT
if (e.key == "a" || e.code == "Numpad4") {
fetch(rootURL + "/left")
.then(function (response) {
return response.json();
})
.then(function (data) {
if (data == 1) {
showSuccessAlert("LEFT Sent Successfully!")
return console.log("Command: LEFT - SENT!")
} else {
showSuccessAlert("LEFT FAILED!")
return console.log("Command: LEFT FAILED!")
}
})
}
// Command DOWN
if (e.key == "s" || e.key == "2") {
fetch(rootURL + "/down")
.then(function (response) {
return response.json();
})
.then(function (data) {
if (data == 1) {
showSuccessAlert("DOWN Sent Successfully!")
return console.log("Command: DOWN - SENT!")
} else {
showSuccessAlert("DOWN FAILED!")
return console.log("Command: DOWN FAILED!")
}
})
}
// Command RIGHT
if (e.key == "d" || e.code == "Numpad6") {
fetch(rootURL + "/right")
.then(function (response) {
return response.json();
})
.then(function (data) {
if (data == 1) {
showSuccessAlert("RIGHT Sent Successfully!")
return console.log("Command: RIGHT - SENT!")
} else {
showSuccessAlert("UP FAILED!")
return console.log("Command: RIGHT FAILED!")
}
})
}
// Command ENTER
if (e.key == "Enter" || e.code == "Numpad5") {
fetch(rootURL + "/enter")
.then(function (response) {
return response.json();
})
.then(function (data) {
if (data == 1) {
showSuccessAlert("ENTER Sent Successfully!")
return console.log("Command: ENTER - SENT!")
} else {
showSuccessAlert("ENTER FAILED!")
return console.log("Command: ENTEr FAILED!")
}
})
}
// Command BACK
if (e.key == "x" || e.code == "NumpadDecimal") {
fetch(rootURL + "/back")
.then(function (response) {
return response.json();
})
.then(function (data) {
if (data == 1) {
showSuccessAlert("BACK Sent Successfully!")
return console.log("Command: BACK - SENT!")
} else {
showSuccessAlert("BACK FAILED!")
return console.log("Command: BACK FAILED!")
}
})
}
// Command VOL UP
if (e.key == "p" || e.code == "NumpadAdd") {
fetch(rootURL + "/volumeUp")
.then(function (response) {
return response.json();
})
.then(function (data) {
if (data == 1) {
showSuccessAlert("VOLUME UP Sent Successfully!")
return console.log("Command: VOLUME UP - SENT!")
} else {
showSuccessAlert("VOLUME UP FAILED!")
return console.log("Command: VOLUME UP FAILED!")
}
})
}
// Command VOL DOWN
if (e.key == "o" || e.code == "NumpadSubtract") {
fetch(rootURL + "/volumeDown")
.then(function (response) {
return response.json();
})
.then(function (data) {
if (data == 1) {
showSuccessAlert("VOLUME DOWN Sent Successfully!")
return console.log("Command: VOLUME DOWN - SENT!")
} else {
showSuccessAlert("VOLUME DOWN FAILED!")
return console.log("Command: VOLUME DOWN FAILED!")
}
})
}
// Request new token using the R shortcut
if (e.key == "r") {
fetch(rootURL + "/newToken")
.then(function (response) {
return response.json();
})
.then(function (data) {
if (data == 1) {
showSuccessAlert("New Token Request Sent Successfully!")
return console.log("Command: New Token Request - SENT!")
} else {
showSuccessAlert("New Token Request FAILED!")
return console.log("Command: New Token Request FAILED!")
}
})
}
// Command MUTE
if (e.key == "m" || e.code == "Numpad0") {
fetch(rootURL + "/mute")
.then(function (response) {
return response.json();
})
.then(function (data) {
if (data == 1) {
showSuccessAlert("Mute Sent Successfully!")
return console.log("Command: BACK - SENT!")
} else {
showSuccessAlert("Mute FAILED!")
return console.log("Command: Mute FAILED!")
}
})
}
// Command Picture Mode
if (e.key == "l") {
fetch(rootURL + "/pmode")
.then(function (response) {
return response.json();
})
.then(function (data) {
if (data == 1) {
showSuccessAlert("Picture Mode Sent Successfully!")
return console.log("Command: Picutr Mode - SENT!")
} else {
showSuccessAlert("Picture Mode FAILED!")
return console.log("Command: Picture Mode FAILED!")
}
})
}
// Command HOME
if (e.key == "h") {
fetch(rootURL + "/home")
.then(function (response) {
return response.json();
})
.then(function (data) {
if (data == 1) {
showSuccessAlert("HOME Sent Successfully!")
return console.log("Command: HOME - SENT!")
} else {
showSuccessAlert("HOME FAILED!")
return console.log("Command: HOME FAILED!")
}
})
}
});
}
} else {
// Login Failed!
showFailAlert("The password was incorrect!")
document.getElementById("view").innerHTML = "<meta http-equiv=\"refresh\" content=3;>"
}
})
</script>
<!--END MAIN JS-->
</head>
<body>
<!--MAIN VIEWPORT-->
<center>
<div id="view"></div>
<center>
<!--END MAIN VIEWPORT-->
</body>
</html>