"use strict"; $(document).ready(() => { const endpoint = location.host === 'forum.mcmp.su' ? 'https://mcmp.su' : '' const Monitoring = { servers: [ {"name":"Magic 1.12.2","url":"\/magic"}, {"name":"TechnoMagic 1.12.2","url":"\/technomagic"}, {"name":"TechnoMagic Sky 1.12.2","url":"\/tmsky"} ], updateMon: () => { const servers = Monitoring.servers; let newHTML $.ajax({ url: `${endpoint}/monitoring/f`, beforeSend: () => { newHTML = ""; let owidth = []; for (let i = 0; i < servers.length; i++) newHTML += Monitoring.genHTML(servers[i]["name"], "", 2); $(".OneServer").each((i, e) => owidth.push($(e).find(".OnlineBar").data("width"))); newHTML += Monitoring.comHTML("", 2); $("#Monitoring").html(newHTML); $(".OneServer").each((i, e) => { $(e.currentTarget).find(".OnlineBar").css('width', owidth[i]); $(e.currentTarget).find(".OnlineBar").animate({ "width": "100%" }, 1200); }); }, success: data => { data = JSON.parse(data); newHTML = ""; for (let i = 0; i < servers.length; i++) newHTML += Monitoring.genHTML(servers[i]["name"], data, 1); newHTML += Monitoring.comHTML(data, 1); }, error: () => { newHTML = ""; for (let i = 0; i < servers.length; i++) newHTML += Monitoring.genHTML(servers[i]["name"], "", 3); newHTML += Monitoring.comHTML("", 3); }, complete: () => { setTimeout(() => { $("#Monitoring").html(newHTML); $(".OneServer").each((i, e) => { $(e).find(".OnlineBar").animate({ "width": $(e).find(".OnlineBar").data("width") }, 550); }); }, 1210); } }); }, genHTML: (server, data, genType) => { let onBar, srvOnlStr, statusClass, id; if (genType === 1) { const {s: _statusClass, i: _id, o: _online, m: _slots} = data[server] statusClass = _statusClass; id = _id; if (statusClass === "offline") { srvOnlStr = 'Недоступен'; onBar = 100; } else { srvOnlStr = _online + ' '; if (_online >= _slots) { onBar = 100 statusClass = 'full' } else { onBar = Math.min((_online / _slots) * 100, 100) * (_slots >= 100 ? 1.65 : (_slots <= 40 ? 0.9 : 1.65)) } } } if (genType === 2) { srvOnlStr = ''; onBar = 100; statusClass = "loading"; } if (genType === 3) { srvOnlStr = "Ошибка.."; onBar = 100; statusClass = "upderr"; } return `
Общий онлайн: ${fullOnlStr}
Сегодняшний рекорд: ${todRec}