MediaWiki:Common.js

Материал из Vanilla Station
Перейти к: навигация, поиск

Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
const currentURL = window.location.href;

const serversStatus = [
  {
    name: "vanilla",
    connect: "https://thingproxy.freeboard.io/fetch/http://147.45.108.112:1212/status"
  }
];

function getServersInfo(connect, callback) {
  const xhr = new XMLHttpRequest();
  xhr.open('GET', connect, true);
  xhr.onload = function() {
    if (xhr.status >= 200 && xhr.status < 300) {
      const data = JSON.parse(xhr.responseText);
      callback(null, data);
    } else {
      callback('Ошибка при выполнении запроса: ' + xhr.status, null);
    }
  };
  xhr.onerror = function() {
    callback('Ошибка при выполнении запроса', null);
  };
  xhr.send();
}

function shangeServersInfo(serverObj, serverName) {
	console.log(serverObj, serverName);
	
	if (currentURL.includes("Kerisar")) {
      	const serverStatusFrame = document.getElementById(serverName);
      	
      	serverStatusFrame.querySelector(".serverInfoRoundSet").textContent = "#" + serverObj.round;
      	if (serverObj.status === 0) {
      		serverStatusFrame.querySelector(".serverStatusSet").textContent = "Лобби";
      	}
      	if (serverObj.status === 1) {
      		serverStatusFrame.querySelector(".serverStatusSet").textContent = "Раунд идёт";
      	}
      	if (serverObj.status === 2) {
      		serverStatusFrame.querySelector(".serverStatusSet").textContent = "Завершение";
      	}
      	serverStatusFrame.querySelector(".serverMapSet").textContent = serverObj.map;
      	serverStatusFrame.querySelector(".serverTimeSet").textContent = serverObj.time;
      	serverStatusFrame.querySelector(".serverPlayersSet").textContent = serverObj.players;
      	serverStatusFrame.querySelector(".serverPresetSet").textContent = serverObj.preset;
    }
}

function standartServersInfo(connect, name) {
getServersInfo(connect, function(error, data) {
    if (error) {
      console.error(error); // Обработка ошибок
    } else {
      const serverInfo = {
      	name: data.name,
        round: data.round_id,
        status: data.run_level,
        map: data.map,
        time: new Date(data.round_start_time).toLocaleString(),
        players: data.players,
        preset: data.preset
      };
      	shangeServersInfo(serverInfo, name);
    }
  });
}


function standartServersInfoAll() {
	for (var i = 0; i < serversStatus.length; i++) {
		standartServersInfo(serversStatus[i].connect, serversStatus[i].name);
	}
}


$(document).ready(function() {
	if (currentURL.includes("Kerisar")) {
		standartServersInfoAll();
	}	
	
});