/** * @returns {Promise<{server_ip: string, server_port: number}>} */ async function getServerConfig() { const response = await fetch('/api/ip'); return await response.json(); } async function getMediaStat() { const response = await fetch('/api/stats'); return await response.json(); } async function toggleStatHidden() { const section_stat = document.getElementById("stat") section_stat.hidden = !section_stat.hidden } function openPopup() { document.getElementById("popup").style.display = "block"; } function closePopup() { document.getElementById("popup").style.display = "none"; } getMediaStat() .then(data => { console.log("Antwort von /api/stats:", data); // Debug-Ausgabe if (!data || typeof data !== 'object' || !data.videos || typeof data.videos !== 'object') { throw new Error("Ungültiges Antwortformat oder fehlende 'videos'-Eigenschaft"); } const stat_Container = document.getElementById('stat'); Object.keys(data.videos).forEach(key => { const video = data.videos[key]; const card = document.createElement('div'); card.className = 'video-card'; card.id = key card.innerHTML = `