const aceStreamUrl='https://ia600309.us.archive.org/8/items/abcd_20240416/Arena4view.txt';const translationsUrl='translations.json';let translations={};let eventos=[];async function loadTranslations(){try{const response=await fetch(translationsUrl);if(!response.ok){throw new Error('Error al cargar el diccionario de traducciones')}translations=await response.json()}catch(error){console.error('Error:',error)}}async function getAceStreamLinks(){try{const response=await fetch(aceStreamUrl);if(!response.ok){throw new Error('Error al obtener los enlaces AceStream')}const text=await response.text();const lines=text.split('n');const aceStreamMap={};lines.forEach(line=>{const[key,value]=line.split('#');if(key&&value){aceStreamMap[key.trim()]=value.trim()}});return aceStreamMap}catch(error){console.error('Error:',error);return{}}}function formatDate(dateString){return dateString.split('/').slice(0,2).join('/')}function formatTime(timeString){return timeString.replace(' CET','')}function translateTable(table){const rows=table.querySelectorAll('tr');const headerRow=rows[0];if(headerRow){const headerCells=headerRow.querySelectorAll('td');headerCells.forEach((cell)=>{const text=cell.textContent.trim();if(text){const translatedText=translations[text]||text;cell.textContent=translatedText}})}rows.forEach((row,rowIndex)=>{if(rowIndex===0)return;const cells=row.querySelectorAll('td');cells.forEach((cell,cellIndex)=>{if(cellIndex===0){cell.textContent=formatDate(cell.textContent.trim())}if(cellIndex===1){cell.textContent=formatTime(cell.textContent.trim())}if(cellIndex===3||cellIndex===4)return;const text=cell.textContent.trim();if(text){const translatedText=Object.keys(translations).reduce((acc,key)=>{return acc.replace(new RegExp(key,'gi'),translations[key])},text);cell.textContent=translatedText}})})}function mostrarEventosBaloncesto(aceStreamMap){const eventosDiv=document.getElementById('eventos');eventosDiv.innerHTML='';const groupedEvents=eventos.reduce((acc,evento)=>{const[dia,hora,deporte,competicion,eventoNombre,live]=evento;if(deporte.toLowerCase()==='baloncesto'&&dia===obtenerFechaHoy()){if(!acc[competicion]){acc[competicion]=[]}acc[competicion].push(evento)}return acc},{});if(Object.keys(groupedEvents).length===0){const noEventsHTML=`
NO HAY EVENTOS DISPONIBLES POR EL MOMENTO,PASATE MAS TARDE
`;eventosDiv.innerHTML=noEventsHTML;return}for(const competicion in groupedEvents){const events=groupedEvents[competicion];const titleCard=document.createElement('div');titleCard.classList.add('title-card');titleCard.textContent=competicion;const cardsContainer=document.createElement('div');cardsContainer.classList.add('cards-container');events.forEach(evento=>{const[dia,hora,deporte,competicion,eventoNombre,live]=evento;const eventCard=document.createElement('div');eventCard.classList.add('event-card');const eventTitle=document.createElement('h3');eventTitle.textContent=`${hora}${eventoNombre}`;eventCard.appendChild(eventTitle);const eventDescription=document.createElement('p');eventDescription.textContent="Disfruta del contenido";eventCard.appendChild(eventDescription);const canales=live.trim().split(/[-s,]+/);canales.forEach((canal,index)=>{const key=`av${canal}`;const enlace=aceStreamMap[key];if(enlace){const btn=document.createElement('a');btn.href=enlace;btn.target="_blank";btn.classList.add('btn');btn.textContent=`OP${index+1}`;eventCard.appendChild(btn)}});cardsContainer.appendChild(eventCard)});eventosDiv.appendChild(titleCard);eventosDiv.appendChild(cardsContainer)}}function obtenerFechaHoy(){const hoy=new Date();const dia=String(hoy.getDate()).padStart(2,'0');const mes=String(hoy.getMonth()+1).padStart(2,'0');return`${dia}/${mes}`}const apiUrl='https://api.codetabs.com/v1/proxy/?quest=https://www.arena4viewer.co.in/misguia2.php';let aceStreamMap={};async function fetchData(){try{await loadTranslations();aceStreamMap=await getAceStreamLinks();const response=await fetch(apiUrl);if(!response.ok){throw new Error('Error al obtener los datos')}const html=await response.text();const parser=new DOMParser();const doc=parser.parseFromString(html,'text/html');const table=doc.querySelector('table.auto-style2');const eventosDiv=document.getElementById('eventos');if(table){const rows=table.querySelectorAll('tr');const lastRow=rows[rows.length-1];const lastRowContent=lastRow.textContent.trim();if(lastRowContent===""||lastRowContent==="No disponible"||lastRowContent.includes("Last update")){lastRow.remove()}translateTable(table);eventos=Array.from(rows).slice(1).map(row=>{const cells=row.querySelectorAll('td');return Array.from(cells).map(cell=>cell.textContent.trim())});mostrarEventosBaloncesto(aceStreamMap)}else{eventosDiv.innerHTML='

No se encontraron eventos.

'}}catch(error){console.error('Error:',error);document.getElementById('eventos').innerHTML='

Error al cargar los eventos.

'}}window.onload=fetchData;