374 lines
17 KiB
HTML
374 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>
|