ServerStatus/server-status-realsteel.js

63 lines
2.7 KiB
JavaScript

String.prototype.trunc = String.prototype.trunc ||
function(n){
return (this.length > n) ? this.substr(0,n-1)+'…' : this;
};
var totalPlayersOnline = 0;
function addServers() {
for (var i=0; i<servers.length; i++) {
if (servers[i].visible) {
var links = '';
if (servers[i].links.length > 0) {
for(l=0;l<servers[i].links.length;l++) {
if (l < (servers[i].links.length-1)) {links += '<a href="'+servers[i].links[l][1]+'"'+servers[i].links[l][2]+'>'+servers[i].links[l][0]+'</a> | ';}
else {links += '<a href="'+servers[i].links[l][1]+'"'+servers[i].links[l][2]+'>'+servers[i].links[l][0]+'</a>';}
}
}
jQuery('#server-status-servers').append(
'<div class="server" id="server-'+i+'">'+
'<div class="server-icon"><img src="'+servers[i].icon+'" /></div>'+
'<div class="server-title">'+servers[i].title+'</div>'+
'<div class="server-ip" data-ip="'+servers[i].ip+'">'+servers[i].displayip+'</div>'+
'<div class="server-players"> 0/0 </div>'+
'<div class="server-map"></div>'+
'<div class="server-actions">'+links+'</div>'+
'<div class="server-indicator"><i class="fa fa-circle"></i></div>'+
'</div>'
);
}
}
}
function checkServersStatus() {
totalPlayersOnline = 0;
jQuery('.server').each(function() {
if (jQuery(this).hasClass('ignore')) {}
else {
var i = jQuery(this).attr('id').split('server-').join('');
jQuery('#server-'+i).find('.server-indicator').find('i').removeClass('fa-circle').addClass('fa-spinner').addClass('fa-pulse').removeClass('green').removeClass('red');
jQuery.getJSON('https://vps.moow.info/scripts/server-status/query.php?type='+servers[i].type+'&ip=' + servers[i].ip, function(response) {
if (response["status"] == "offline") {
jQuery('#server-'+i).find('.server-indicator').find('i').removeClass('fa-spinner').removeClass('fa-pulse').addClass('fa-circle').removeClass('green').addClass('red');
jQuery('#server-'+i).find('.server-players').html(' 0/0 ');
}
else {
jQuery('#server-'+i).find('.server-indicator').find('i').removeClass('fa-spinner').removeClass('fa-pulse').addClass('fa-circle').removeClass('red').addClass('green');
jQuery('#server-'+i).find('.server-players').html(response["players"]);
jQuery('#server-'+i).find('.server-map').html(response["map"].trunc(15));
totalPlayersOnline = totalPlayersOnline + parseInt(response["players"].split('\/')[0]);
jQuery('.server-status-total-num').html(totalPlayersOnline);
}
});
}
});
}
jQuery(function() {
addServers();
checkServersStatus();
setInterval('checkServersStatus();',15000);
});