const API_KEY = ‘351d25847463cfcdc3f4b4b7f36aec15’;
const cidades = [
{ nome: “São Paulo”, codigo: “São Paulo,BR”, bandeira: “🇧🇷” },
{ nome: “Rio de Janeiro”, codigo: “Rio de Janeiro,BR”, bandeira: “🇧🇷” },
{ nome: “Brasília”, codigo: “Brasília,BR”, bandeira: “🇧🇷” },
{ nome: “Salvador”, codigo: “Salvador,BR”, bandeira: “🇧🇷” },
{ nome: “Fortaleza”, codigo: “Fortaleza,BR”, bandeira: “🇧🇷” },
{ nome: “Belo Horizonte”, codigo: “Belo Horizonte,BR”, bandeira: “🇧🇷” },
{ nome: “Manaus”, codigo: “Manaus,BR”, bandeira: “🇧🇷” }
];
async function buscaTempo() {
const container = document.getElementById(‘tempo-brasil’);
container.innerHTML = ‘Carregando previsão…’;
const promises = cidades.map(c =>
fetch(`https://api.openweathermap.org/data/2.5/weather?q=${encodeURIComponent(c.codigo)}&units=metric&lang=pt_br&appid=${API_KEY}`)
.then(r => r.json())
.catch(e => ({ error: true, nome: c.nome }))
);
const resultados = await Promise.all(promises);
container.innerHTML = “”;
resultados.forEach((res, i) => {
const cidade = cidades[i];
if (res.weather) {
const card = `
${cidade.bandeira} ${cidade.nome}
${res.weather[0].description}
🌡️ ${Math.round(res.main.temp)}°C — Sensação ${Math.round(res.main.feels_like)}°C
💧 Humidade: ${res.main.humidity}%
Atualizado:
${new Date(res.dt * 1000).toLocaleTimeString(“pt-BR”)}
`;
container.insertAdjacentHTML(“beforeend”, card);
} else {
container.insertAdjacentHTML(“beforeend”, `
Erro ao carregar ${cidade.nome}
`);
}
});
}
buscaTempo();
Cotações em Tempo Real
🇺🇸 Dólar (USD → BRL):
🇪🇺 Euro (EUR → BRL):
🇬🇧 Libra (GBP → BRL):
Atualizado automaticamente • Exchangerate-API
async function carregarCotacoes() {
const apiKey = “d9bbd8a8077b5945f06a97ff”;
try {
// USD
const usd = await fetch(`https://v6.exchangerate-api.com/v6/${apiKey}/latest/USD`).then(r => r.json());
document.getElementById(“usd”).textContent = usd.conversion_rates.BRL.toFixed(2);
// EUR
const eur = await fetch(`https://v6.exchangerate-api.com/v6/${apiKey}/latest/EUR`).then(r => r.json());
document.getElementById(“eur”).textContent = eur.conversion_rates.BRL.toFixed(2);
// GBP
const gbp = await fetch(`https://v6.exchangerate-api.com/v6/${apiKey}/latest/GBP`).then(r => r.json());
document.getElementById(“gbp”).textContent = gbp.conversion_rates.BRL.toFixed(2);
} catch (erro) {
console.error(“Erro ao carregar cotações:”, erro);
}
}
carregarCotacoes();