<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Eventos Deportivos en Vivo</title>
    <style>
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #1e2022;
            color: #ffffff;
            line-height: 1.6;
        }

        header {
            background-color: #2d3436;
            color: white;
            text-align: center;
            padding: 2rem;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }

        header h1 {
            margin: 0;
            font-size: 2.5rem;
            color: #ffffff;
        }

        main {
            max-width: 1200px;
            margin: 2rem auto;
            padding: 0 1rem;
        }

        .loading {
            text-align: center;
            padding: 2rem;
            font-size: 1.2rem;
            color: #ffffff;
        }

        .error {
            background-color: #ff4757;
            color: white;
            padding: 1rem;
            border-radius: 4px;
            margin: 1rem 0;
            text-align: center;
        }

        table {
            width: 100%;
            border-collapse: collapse;
            background-color: #2d3436;
            border-radius: 8px;
            overflow: hidden;
            margin-top: 2rem;
            box-shadow: 0 4px 6px rgba(0,0,0,0.1);
        }

        th, td {
            padding: 1rem;
            text-align: left;
            border-bottom: 1px solid #3d4246;
        }

        th {
            background-color: #ce2e34;
            color: white;
            font-weight: 600;
        }

        tr:hover {
            background-color: #3d4246;
        }

        td a {
            color: #ffffff;
            text-decoration: none;
            font-weight: 500;
            transition: color 0.3s ease;
        }

        td a:hover {
            color: #007acc;
        }

        small {
            color: #95a5a6;
            display: block;
            margin-top: 0.5rem;
        }

        @media (max-width: 768px) {
            table {
                display: block;
                overflow-x: auto;
                white-space: nowrap;
            }

            th, td {
                padding: 0.75rem;
            }

            header h1 {
                font-size: 1.8rem;
            }
        }
    </style>
</head>
<body>
    <header>
        <h1>/⁠╲⁠/⁠\⁠╭⁠(⁠•⁠‿⁠•⁠)⁠╮⁠/⁠\⁠╱⁠\</h1>
        <h1>Eventos Deportivos en Vivo</h1>
        <h1>by TokyoGhoull</h1>
    </header>

    <main>
        <div id="loading" class="loading">Cargando eventos deportivos...</div>
        
        <table id="events-table" style="display: none;">
            <thead>
                <tr>
                    <th>Día</th>
                    <th>Hora</th>
                    <th>Evento</th>
                </tr>
            </thead>
            <tbody></tbody>
        </table>
    </main>

    <script>
        document.addEventListener("DOMContentLoaded", async () => {
            const table = document.getElementById("events-table");
            const tableBody = table.querySelector("tbody");
            const loadingDiv = document.getElementById("loading");

            // Diccionario de días en inglés a español
            const daysDict = {
                "SATURDAY": "Sábado",
                "SUNDAY": "Domingo",
                "MONDAY": "Lunes",
                "TUESDAY": "Martes",
                "WEDNESDAY": "Miércoles",
                "THURSDAY": "Jueves",
                "FRIDAY": "Viernes"
            };

            try {
                const response = await fetch("https://api.codetabs.com/v1/proxy/?quest=https://sportsonline.gl", {
                    method: "GET",
                    mode: "cors",
                    headers: {
                        "accept": "*/*",
                        "accept-language": "es-ES,es;q=0.9",
                        "sec-fetch-dest": "empty",
                        "sec-fetch-mode": "cors",
                        "sec-fetch-site": "cross-site"
                    }
                });

                if (!response.ok) {
                    throw new Error(`Error al cargar los datos: ${response.status}`);
                }

                const content = await response.text();
                
                // Separar el contenido por líneas y limpiar espacios en blanco
                const lines = content.split('\n').map(line => line.trim()).filter(line => line.length > 0);
                
                let currentDay = "";
                let currentChannels = new Map(); // Para almacenar los canales y sus idiomas

                lines.forEach(line => {
                    // Si es un día de la semana
                    if (daysDict[line.toUpperCase()]) {
                        currentDay = daysDict[line.toUpperCase()];
                        return;
                    }

                    // Si es una definición de canal (ejemplo: "HD1 ENGLISH")
                    if (line.match(/^(HD|BR)\d+\s+[A-Z]+$/)) {
                        const [channel, language] = line.split(/\s+/);
                        currentChannels.set(channel, language);
                        return;
                    }

                    // Si es una línea de evento (comienza con hora "XX:XX")
                    const eventMatch = line.match(/^(\d{2}:\d{2})\s+(.+?)\s*\|\s*(.+)$/);
                    if (eventMatch) {
                        const [, time, eventName, channelUrl] = eventMatch;
                        
                        // Extraer el identificador del canal de la URL
                        const channelId = channelUrl.split('/').pop().replace('.php', '').toUpperCase();
                        
                        // Obtener el idioma del canal
                        const language = currentChannels.get(channelId) || "Desconocido";

                        // Crear la fila de la tabla
                        const row = document.createElement('tr');
                        row.innerHTML = `
                            <td>${currentDay}</td>
                            <td>${time}</td>
                            <td>
                                <a href="${channelUrl}" target="_blank">${eventName}</a>
                                <small>Canal: ${channelId} - Idioma: ${language}</small>
                            </td>
                        `;
                        tableBody.appendChild(row);
                    }
                });

                // Ocultar mensaje de carga y mostrar la tabla
                loadingDiv.style.display = "none";
                table.style.display = "table";

            } catch (error) {
                console.error("Error:", error);
                loadingDiv.innerHTML = `
                    <div class="error">
                        Error al cargar los eventos: ${error.message}
                        <br>
                        Por favor, intenta recargar la página.
                    </div>
                `;
            }
        });
    </script>
</body>
</html>