Widget:Droflax

De Wiki Gla
Revisão de 18h23min de 8 de abril de 2025 por Droflax (discussão | contribs)
Ir para navegação Ir para pesquisar

Receitas do Baratie e Aliança

Carregando receitas...

Baratie

Aliança

<script> // Datos de ejemplo para cuando falle la carga const dadosExemplo = {

 "baratie": {
   "b1": {
     "nome": "Carne",
     "thumb": "https://via.placeholder.com/50",
     "cost": 5000
   },
   "b2": {
     "nome": "Peixe",
     "thumb": "https://via.placeholder.com/50",
     "cost": 5000
   }
 },
 "alianca": {
   "a1": {
     "nome": "Bife e Ovo de Frigideira",
     "thumb": "https://via.placeholder.com/50",
     "cost": 720
   },
   "a2": {
     "nome": "Medalhão de Carne",
     "thumb": "https://via.placeholder.com/50",
     "cost": 850
   }
 }

};

// 1. Elementos del DOM const loadingEl = document.getElementById('loading'); const errorEl = document.getElementById('error'); const baratieList = document.querySelector('#baratie-container .receitas-list'); const aliancaList = document.querySelector('#alianca-container .receitas-list');

// 2. Función mejorada para cargar el JSON async function cargarReceitas() {

 try {
   const response = await fetch('https://wiki.gla.com.br/index.php/Receitas.json', {
     headers: {
       'Accept': 'application/json'
     },
     cache: 'no-cache'
   });
   
   // Verificar si la respuesta es HTML en lugar de JSON
   const contentType = response.headers.get('content-type');
   if (contentType && contentType.includes('text/html')) {
     throw new Error('O servidor retornou uma página HTML em vez de JSON');
   }
   
   if (!response.ok) {
     throw new Error(`Erro HTTP: ${response.status}`);
   }
   
   return await response.json();
 } catch (err) {
   console.error('Erro ao cargar receitas:', err);
   errorEl.textContent = `Não foi possível carregar as receitas. Usando dados locais. (${err.message})`;
   errorEl.style.display = 'block';
   return dadosExemplo; // Retorna dados de ejemplo
 }

}

// 3. Función para mostrar las recetas function mostrarReceitas(data) {

 if (!data) return;
 
 baratieList.innerHTML = ;
 aliancaList.innerHTML = ;
 
 // Mostrar recetas de Baratie
 if (data.baratie) {
   for (const [id, receita] of Object.entries(data.baratie)) {
     baratieList.innerHTML += `
         <img src="${receita.thumb}" width="50" height="50" style="object-fit:cover;">
           ${receita.nome}
${receita.cost.toLocaleString()} Berry
     `;
   }
 }
 
 // Mostrar recetas de Aliança
 if (data.alianca) {
   for (const [id, receita] of Object.entries(data.alianca)) {
     aliancaList.innerHTML += `
         <img src="${receita.thumb}" width="50" height="50" style="object-fit:cover;">
           ${receita.nome}
${receita.cost.toLocaleString()} Berry
     `;
   }
 }

}

// 4. Inicialización mejorada (async function init() {

 try {
   const receitas = await cargarReceitas();
   mostrarReceitas(receitas);
 } catch (err) {
   console.error('Erro na inicialização:', err);
   errorEl.textContent = 'Erro crítico ao cargar o widget';
   errorEl.style.display = 'block';
   mostrarReceitas(dadosExemplo); // Muestra datos de ejemplo como último recurso
 } finally {
   loadingEl.style.display = 'none';
 }

})(); </script>