MediaWiki:Common.js: различия между версиями
Remove obsolete status script Метка: очистка |
Живой статус игрового сервера |
||
| Строка 1: | Строка 1: | ||
(() => { | |||
const status = document.getElementById('rs-server-status'); | |||
if (!status) { | |||
return; | |||
} | |||
const players = document.getElementById('rs-status-players'); | |||
const maxPlayers = document.getElementById('rs-status-max'); | |||
const map = document.getElementById('rs-status-map'); | |||
const preset = document.getElementById('rs-status-preset'); | |||
const label = document.getElementById('rs-status-label'); | |||
async function updateServerStatus() { | |||
try { | |||
const response = await fetch('/server-status', { | |||
cache: 'no-store', | |||
headers: { | |||
'Accept': 'application/json' | |||
} | |||
}); | |||
if (!response.ok) { | |||
throw new Error(`HTTP ${response.status}`); | |||
} | |||
const data = await response.json(); | |||
players.textContent = | |||
Number.isInteger(data.players) ? data.players : '—'; | |||
maxPlayers.textContent = | |||
Number.isInteger(data.soft_max_players) | |||
? data.soft_max_players | |||
: '—'; | |||
map.textContent = | |||
typeof data.map === 'string' && data.map.trim() | |||
? data.map | |||
: '—'; | |||
preset.textContent = | |||
typeof data.preset === 'string' && data.preset.trim() | |||
? data.preset | |||
: '—'; | |||
label.textContent = 'СЕРВЕР'; | |||
status.classList.remove('rs-home-status--offline'); | |||
status.classList.add('rs-home-status--online'); | |||
} catch (error) { | |||
players.textContent = '—'; | |||
maxPlayers.textContent = '—'; | |||
map.textContent = '—'; | |||
preset.textContent = 'Недоступен'; | |||
label.textContent = 'СЕРВЕР'; | |||
status.classList.remove('rs-home-status--online'); | |||
status.classList.add('rs-home-status--offline'); | |||
console.warn('RedStar server status unavailable:', error); | |||
} | |||
} | |||
updateServerStatus(); | |||
window.setInterval(updateServerStatus, 30000); | |||
})(); | |||
Версия от 14:19, 29 сентября 2026
(() => {
const status = document.getElementById('rs-server-status');
if (!status) {
return;
}
const players = document.getElementById('rs-status-players');
const maxPlayers = document.getElementById('rs-status-max');
const map = document.getElementById('rs-status-map');
const preset = document.getElementById('rs-status-preset');
const label = document.getElementById('rs-status-label');
async function updateServerStatus() {
try {
const response = await fetch('/server-status', {
cache: 'no-store',
headers: {
'Accept': 'application/json'
}
});
if (!response.ok) {
throw new Error(`HTTP ${response.status}`);
}
const data = await response.json();
players.textContent =
Number.isInteger(data.players) ? data.players : '—';
maxPlayers.textContent =
Number.isInteger(data.soft_max_players)
? data.soft_max_players
: '—';
map.textContent =
typeof data.map === 'string' && data.map.trim()
? data.map
: '—';
preset.textContent =
typeof data.preset === 'string' && data.preset.trim()
? data.preset
: '—';
label.textContent = 'СЕРВЕР';
status.classList.remove('rs-home-status--offline');
status.classList.add('rs-home-status--online');
} catch (error) {
players.textContent = '—';
maxPlayers.textContent = '—';
map.textContent = '—';
preset.textContent = 'Недоступен';
label.textContent = 'СЕРВЕР';
status.classList.remove('rs-home-status--online');
status.classList.add('rs-home-status--offline');
console.warn('RedStar server status unavailable:', error);
}
}
updateServerStatus();
window.setInterval(updateServerStatus, 30000);
})();