const MOVISTAR_VOD_API_BASE_URL = 'https://ottcache.dof6.com/movistarplus/webplayer/OTT/epg'; const MOVISTAR_VOD_CACHE_MAX_AGE_MS = 12 * 60 * 60 * 1000; const MOVISTAR_VOD_ITEMS_PER_PAGE = 48; let movistarVodData = []; let movistarVodSelectedDate = new Date(); let movistarVodChannelMap = {}; let movistarVodOrderedChannels = []; let movistarVodGenreMap = {}; let movistarVodSelectedChannelId = ''; let movistarVodSelectedGenre = ''; let movistarVodSearchTerm = ''; let movistarVodCurrentPage = 1; let movistarVodFilteredPrograms = []; function openMovistarVODModal() { const today = new Date(); const yyyy = today.getFullYear(); const mm = String(today.getMonth() + 1).padStart(2, '0'); const dd = String(today.getDate()).padStart(2, '0'); $('#movistarVODDateInput').val(`${yyyy}-${mm}-${dd}`); movistarVodSelectedDate = today; $('#movistarVODModal-search-input').val(''); movistarVodSearchTerm = ''; movistarVodCurrentPage = 1; $('#movistarVODModal').modal('show'); loadMovistarVODData(); } async function loadMovistarVODData() { showLoading(true, "Cargando EPG de Movistar VOD..."); const programsContainer = $('#movistarVODModal-programs').empty(); const noResultsP = $('#movistarVODModal-no-results'); noResultsP.addClass('d-none'); programsContainer.html('
${escapeHtml(prog.CanalNombre || 'Desconocido')}
${startTime} - ${endTime} (${prog.Duracion} min)
${prog.GeneroComAntena ? `${escapeHtml(prog.GeneroComAntena)}
` : ''}Canal: ${escapeHtml(programData.CanalNombre || 'Desconocido')}
`; detailsHtml += `Duración: ${escapeHtml(formatVodDuration(programData.Duracion))}
`; if (fichaData?.Anno) detailsHtml += `Año: ${escapeHtml(fichaData.Anno)}
`; if (fichaData?.Nacionalidad) detailsHtml += `Nacionalidad: ${escapeHtml(fichaData.Nacionalidad)}
`; const description = fichaData?.Descripcion || fichaData?.Sinopsis; if (description) detailsHtml += `Descripción: ${escapeHtml(description)}
`; if (fichaData?.Actores) detailsHtml += `Actores: ${escapeHtml(fichaData.Actores)}
`; if (fichaData?.Directores) detailsHtml += `Directores: ${escapeHtml(fichaData.Directores)}
`; if (fichaData?.Valoracion?.Valoracion) { detailsHtml += `Valoración: ${escapeHtml(fichaData.Valoracion.Valoracion.toFixed(1))}⭐ (${escapeHtml(fichaData.Valoracion.Valoraciones)} votos)
`; } detailsHtml += `