twitch-irl-docker/build/www/remote.js

130 lines
5.7 KiB
JavaScript

function jq(id) {
return "#" + id.replace(/(\|)/g, "\\$1");
}
function clickButton({cmd=false, action=false, dayflat=false}) {
console.log(dayflat);
if (dayflat && cmd == "stream") {
alert('Dayflat active?');
}
if (cmd && action) {
$("body").addClass("loading");
$.ajax({
type: "post",
url: "./set_obs.py",
data: { "cmd": cmd, "action": action},
cache: false,
success: function() {
console.log(cmd + " command with parameter "+ action +" was send successfully.");
},
error: function() {
$('#ajaxerror').addClass("visible");
$('#lowbitrate').removeClass("visible");
$('#obserror').removeClass("visible");
console.log('Could not set OBS status')
}
});
setTimeout(function(){
$("body").removeClass("loading");
},5000);
}
}
$(document).ready(function() {
setInterval(function(){
$.ajax({
datatype: "json",
url: "/data.py",
cache: false,
timeout: 2500,
success: function(result) {
$('#ajaxerror').removeClass("visible");
var time = result.totalstreamtime / 60;
$("#info").html("Dropped Frames: "+parseFloat(result.numdroppedframes).toFixed(0)+" - Live: "+parseFloat(time).toFixed(0)+" Minutes - CPU: "+parseFloat(result.cpuusage).toFixed(2)+"% - OBS In: "+parseFloat(result.bitrate).toFixed(0)+"kb/s - OBS Out: "+parseFloat(result.kbitspersec).toFixed(0)+"kb/s - Connections: "+parseFloat(result.connections).toFixed(0));
if (result.liveu == "True") {
$("#liveu").html("Connected: "+result.batteryconnected+" - Charging: "+result.batterycharging+" - Discharging: "+result.batterydischarging+" - Time to empty: "+parseFloat(result.batterytime).toFixed(0)+" Minutes ("+parseFloat(result.batterypercentage).toFixed(2)+"%)");
}
if (result.lowbitrate == "True" ) {
$('#lowbitrate').addClass("visible");
} else {
$('#lowbitrate').removeClass("visible");
}
$('#sceneform :button').removeClass("active");
$('#' + result.currentscene).addClass("active");
if (result.obsstatus == "False") {
$('#lowbitrate').removeClass("visible");
$('#ajaxerror').removeClass("visible");
$('#obserror').addClass("visible");
throw new Error('OBS CONNECTION ERROR');
} else {
$('#obserror').removeClass("visible");
}
if (result.streamingstatus == "True") {
$('#startbutton').addClass("active");
$('#startbutton').text("Stop Stream");
$('#startbutton').attr("onclick", "clickButton({cmd: 'stream', action: 'stop'})");
} else {
$('#startbutton').removeClass("active");
$('#startbutton').text("Start Stream");
if (result.dayflat) {
$('#startbutton').attr("onclick", "clickButton({cmd: 'stream', action: 'start', dayflat: 'True'})");
} else {
$('#startbutton').attr("onclick", "clickButton({cmd: 'stream', action: 'start'})");
}
}
if (result.activefilters) {
activefilters = result.activefilters.split(',');
for (i = 0; i < activefilters.length; i++) {
var btn = $(jq(activefilters[i]));
btn.addClass('active');
btn.text(activefilters[i] + ' (Active)');
btn.attr("onclick", "clickButton({cmd: 'source', action: 'filter|" +activefilters[i]+ "|0'})");
}
}
if (result.mutedfilters) {
mutedfilters = result.mutedfilters.split(',');
for (i = 0; i < mutedfilters.length; i++) {
var btn = $(jq(mutedfilters[i]));
btn.removeClass('active');
btn.text(mutedfilters[i] + ' (Disabled)');
btn.attr("onclick", "clickButton({cmd: 'source', action: 'filter|" +mutedfilters[i]+ "|1'})");
}
}
if (result.activeaudio) {
activeaudio = result.activeaudio.split(',')
for (i = 0; i < activeaudio.length; i++) {
var btn = $(jq(activeaudio[i]));
btn.addClass('active');
btn.text(activeaudio[i] + ' (Active)');
}
}
if (result.mutedaudio) {
mutedaudio = result.mutedaudio.split(',')
for (i = 0; i < mutedaudio.length; i++) {
var btn = $(jq(mutedaudio[i]));
btn.removeClass('active');
btn.text(mutedaudio[i] + ' (Muted)');
}
}
},
error: function(xhr, ajaxOptions, thrownError) {
$('#ajaxerror').addClass("visible");
$('#lowbitrate').removeClass("visible");
$('#obserror').removeClass("visible");
console.log("Error");
console.log(xhr.status);
console.log(thrownError);
}
});
}, 1000);
});