// api klíč získáte na https://api.nasa.gov/ API_KEY = "DEMO_KEY"; API_URL = "https://api.nasa.gov/planetary/apod"; //elementy const btnDnes = document.getElementById("btnDnes"); const btnNahodny = document.getElementById("btnNahodny"); const stav = document.getElementById("stav"); const apodKarta = document.getElementById("apodKarta"); const nadpis = document.getElementById("nadpis"); const datum = document.getElementById("datum"); const popis = document.getElementById("popis"); const autor = document.getElementById("autor"); const mediaKontejner = document.getElementById("mediaKontejner"); function ziskejDnesniDatum() { const dnes= new Date(); const rok = dnes.getFullYear(); const mesic = String(dnes.getMonth()+1).padStart(2,"0"); const den = String(dnes.getDate()).padStart(2,"0"); return `${rok}-${mesic}-${den}`; } function ziskejNahodnyDatum() { const start = new Date(1995,5,16); const konec= new Date(); const nahodny = new Date(start.getTime() + Math.random() * (konec.getTime() - start.getTime())); const rok = nahodny.getFullYear(); const mesic = String(nahodny.getMonth()+1).padStart(2,"0"); const den = String(nahodny.getDate()).padStart(2,"0"); return `${rok}-${mesic}-${den}`; } //hlavní funkce async function nactiAPOD(vybranyDatum) { stav.innerText = "Načítám snímek...."; stav.classList.add = "nacitani" try { // & = AltGR + C url = `${API_URL}?api_key=${API_KEY}&date=${vybranyDatum}` console.log(url) const odpoved = await fetch(url); if(!odpoved.ok) { throw new Error(`chyba serveru (HTTP ${odpoved.status})`); } const data = await odpoved.json(); //kontrola chybové hlášky z API (např. špatný klíč) if (data.code && data.code !== 200) { throw new Error(data.msg || "Neznáma chyba API"); } //zobrazení obsahu podle typu média if (data.media_type === "video") { mediaKontejner.innerHTML = ``; } else { const imgUrl = data.hdurl || data.url; mediaKontejner.innerHTML = `${data.title}`; } //doplnime informace do karty nadpis.innerText = data.title; datum.innerText = data.date; popis.innerText = data.explanation; autor.innerText = data.copyright || "NASA"; //zobrazení karty apodKarta.classList.remove("d-none"); stav.innerText = ""; } catch (error) { stav.innerText = "Chyba: " + error.message; console.error("Chyba při načítaní dat",error); } finally { stav.classList.remove("nacitani") } } //přidamé odposlech na tlačítka btnDnes.addEventListener("click", function () { nactiAPOD(ziskejDnesniDatum()); }) btnNahodny.addEventListener("click", function () { nactiAPOD(ziskejNahodnyDatum()); })