mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-11 09:30:06 -04:00
Merge pull request #1144 from iptv-org/add-reportv.com.ar
Add guide from reportv.com.ar
This commit is contained in:
commit
8284ce3374
9 changed files with 1560 additions and 0 deletions
17
.github/workflows/reportv.com.ar.yml
vendored
Normal file
17
.github/workflows/reportv.com.ar.yml
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
name: reportv.com.ar
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 3 * * *'
|
||||
workflow_dispatch:
|
||||
workflow_run:
|
||||
workflows: [_trigger]
|
||||
types:
|
||||
- completed
|
||||
jobs:
|
||||
load:
|
||||
uses: ./.github/workflows/_load.yml
|
||||
with:
|
||||
site: ${{github.workflow}}
|
||||
secrets:
|
||||
APP_ID: ${{ secrets.APP_ID }}
|
||||
APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}
|
1
sites/reportv.com.ar/__data__/content.html
Normal file
1
sites/reportv.com.ar/__data__/content.html
Normal file
File diff suppressed because one or more lines are too long
1
sites/reportv.com.ar/__data__/no_content.html
Normal file
1
sites/reportv.com.ar/__data__/no_content.html
Normal file
|
@ -0,0 +1 @@
|
|||
<div id="tableContainer" style="background:#FFF;height: 745px;overflow: hidden; position:absolute;width:923px; z-index:0;" class="GrillatableContainer" ><div id="tblGrilla_head" style="overflow:hidden;float:left;min-width:925px;max-width:925px;" class="CronofixedHeader" ><div id="Programa / Película" style="float:left;width:360px;height:18px" class="crono_th" ><div style="float:left;margin-left:4px;margin-bottom:3px;border:solid 1px #333;border-radius:2px;" ><img src='./img/Logos/NoPicture.jpg' title=" - " width="25" heigth="38" alt=''/></div> Programa / Película</div><div id="Categoría" style="float:left;width:175px;height:18px" class="crono_th" >Categoría</div><div id="Género" style="float:left;width:175px;height:18px" class="crono_th" >Género</div><div id="Duración" style="float:left;width:128.75px;height:18px" class="crono_th" >Duración</div><div id="crono_cerrar" style="display:block;float:left;width:46.25px;text-align:center;height:18px" class="crono_th" onclick="hide('divDetalle_Seniales'); hide('divFondoOpacoSeniales');show('divResult')" ><img src='./img/2694/Boton_Cerrar.png' width='13px' height='13px' align='middle' /></div></div><div id="CronotableContainer" style="overflow-x:hidden;float:left;width:923px; height:720px;" class="CronotableContainer" ><div id="tblGrilla_body" style="float:left;min-width:925px;max-width:925px;" class="CronoscrollContent" ><div style="width:925px;height:50px" class="trFecha" >Lo sentimos, no hemos encotrado datos para los filtros seleccionados.</div></div></div></div>
|
364
sites/reportv.com.ar/__data__/no_program.html
Normal file
364
sites/reportv.com.ar/__data__/no_program.html
Normal file
|
@ -0,0 +1,364 @@
|
|||
<script type="text/javascript">
|
||||
<!--
|
||||
var margen_img;
|
||||
var ficha_size;
|
||||
var margen;
|
||||
var capitulo_size;
|
||||
var sinopsis_size;
|
||||
var margin_left_calendario;
|
||||
var Ficha_Tecnica_Height;
|
||||
var Sinopsis_Height;
|
||||
var Capitulo_Height;
|
||||
//-->
|
||||
</script><script type="text/javascript">
|
||||
<!--
|
||||
/************************************************************************/
|
||||
/*ANIMACION DE LLEGADA DE DIVS A LA PANTALLA DETALLE*/
|
||||
/************************************************************************/
|
||||
|
||||
/* Calculo el tama<6D>o que llevaran los box de las fichas */
|
||||
var Sinopsis_Height = 100;
|
||||
var Sinopsis_Margin_Top = 0;
|
||||
var Capitulo_Height = 100;
|
||||
var Capitulo_Margin_Top = 0;
|
||||
var Sinopsis_Visibility = "visible";
|
||||
var Capitulo_Visibility = "visible";
|
||||
|
||||
if ( $("#Capitulo").attr("name") == "Disable" ) {
|
||||
Sinopsis_Height = 150;
|
||||
Sinopsis_Margin_Top = 40;
|
||||
Capitulo_Height = 0;
|
||||
Capitulo_Visibility = "hidden";
|
||||
}
|
||||
|
||||
if ( $("#Sinopsis").attr("name") == "Disable" ) {
|
||||
Capitulo_Height = 150;
|
||||
Capitulo_Margin_Top = 35;
|
||||
Sinopsis_Height = 0;
|
||||
Sinopsis_Visibility = "hidden";
|
||||
}
|
||||
if ( $("#Sinopsis").attr("name") == "Disable" && $("#Capitulo").attr("name") == "Disable" ){
|
||||
Sinopsis_Height = 150;
|
||||
Sinopsis_Margin_Top = 40;
|
||||
Capitulo_Height = 0;
|
||||
Capitulo_Visibility = "hidden";
|
||||
Sinopsis_Visibility = "visible";
|
||||
}
|
||||
|
||||
$("#Ficha").css({
|
||||
"height" : '140px',
|
||||
"width" : "195px",
|
||||
});
|
||||
|
||||
$("#Ficha .inner").css({
|
||||
"height" : '122px',
|
||||
"width" : "98%",
|
||||
});
|
||||
$("#Ficha .h4").css({
|
||||
"height" : '18px',
|
||||
"width" : "100%",
|
||||
});
|
||||
|
||||
$("#Sinopsis").css({
|
||||
"height" : Sinopsis_Height+'px',
|
||||
"margin-top" : Sinopsis_Margin_Top+"px",
|
||||
"width" : "99%",
|
||||
"visibility" : Sinopsis_Visibility,
|
||||
});
|
||||
|
||||
$("#Sinopsis .inner").css({
|
||||
"height" : (Sinopsis_Height - 16) +'px',
|
||||
});
|
||||
|
||||
$("#Capitulo").css({
|
||||
"height" : Capitulo_Height+'px',
|
||||
"margin-top" : Capitulo_Margin_Top+'px',
|
||||
"margin-left" : "0px",
|
||||
"width" : "99%",
|
||||
"visibility" : Capitulo_Visibility,
|
||||
});
|
||||
|
||||
$("#Capitulo .inner").css({
|
||||
"height" : (Capitulo_Height - 16) +'px',
|
||||
});
|
||||
|
||||
// Muestra la seccion de agendar.
|
||||
function Mostrar_Ficha_Agenda() {
|
||||
|
||||
$("#Email").animate({
|
||||
'opacity': '0.0',
|
||||
"height": "0px",
|
||||
"margin-top" : "100%",
|
||||
}, 0 ).show()
|
||||
.animate({
|
||||
'opacity': '1.0',
|
||||
"height": "100%",
|
||||
"margin-top" : "0px",
|
||||
}, 1000 );
|
||||
|
||||
}
|
||||
|
||||
$("#Ficha").css("margin-top","10px");
|
||||
$("#ImgProg").css("margin-top","10px");
|
||||
$("#Calendario").css("margin-top","10px");
|
||||
|
||||
$("#Emisiones").css("opacity",0);
|
||||
|
||||
$("#btnEmisiones").click(function(){
|
||||
$("#Emisiones").animate({
|
||||
'opacity': '0.0',
|
||||
"margin-left" : "580px",
|
||||
"width" : "0px",
|
||||
}, 1500 );
|
||||
$("#Email").animate({
|
||||
'opacity': '0.0',
|
||||
}, 1500 );
|
||||
});
|
||||
//Muestra la seccion de emisiones
|
||||
function Mostrar_Seccion_Emisiones(){
|
||||
|
||||
$("#Emisiones").animate({
|
||||
'opacity': '0.0',
|
||||
"width" : "0px",
|
||||
"margin-left" : "580px",
|
||||
"margin-top" : "17px",
|
||||
'z-index' : '10',
|
||||
}, 0 ).show()
|
||||
.animate({
|
||||
'opacity': '1.0',
|
||||
"margin-left" : "295px",
|
||||
"margin-top" : "17px",
|
||||
"width" : "285px",
|
||||
}, 1500 );
|
||||
|
||||
$("#Email").animate({
|
||||
'opacity': '0.0',
|
||||
"width" : "0px",
|
||||
}, 0 ).show()
|
||||
.animate({
|
||||
"margin-top": "195px",
|
||||
"width" : "100%",
|
||||
}, 1500 );
|
||||
}
|
||||
//-->
|
||||
</script><script type="text/javascript">
|
||||
<!--
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/************************************************************************/
|
||||
|
||||
$("#cerrar").click(function(){
|
||||
hide('divDetalle');
|
||||
hide('divFondoOpacoFull');
|
||||
setTimeout("$('#divFondoOpacoFull').remove()",500);
|
||||
});
|
||||
|
||||
/************************************************************************
|
||||
SECCION TABLA DE EMISIONES
|
||||
************************************************************************/
|
||||
/* Muestra la tabla con las emisiones del programa*/
|
||||
$("#CalendarioDetalle .emision").click( function() {
|
||||
Fecha = $(this).attr("id").split("/");
|
||||
dia = Fecha[0];
|
||||
$("#tblEmisiones tbody tr").each(function(){
|
||||
if($(this).attr("value") != dia) {
|
||||
$(this).css("display","none");
|
||||
}
|
||||
else {
|
||||
$(this).css("display","table-row");
|
||||
}
|
||||
});
|
||||
|
||||
Mostrar_Seccion_Emisiones();
|
||||
});
|
||||
|
||||
|
||||
function verEmisiones(dia) {
|
||||
$("#tblEmisiones tbody tr").each(function(){
|
||||
if($(this).attr("value") != dia && dia != 0) {
|
||||
$(this).css("display","none");
|
||||
}
|
||||
else {
|
||||
$(this).css("display","table-row");
|
||||
}
|
||||
});
|
||||
Mostrar_Seccion_Emisiones(0);
|
||||
};
|
||||
/************************************************************************
|
||||
SECCION RECODATORIO
|
||||
************************************************************************/
|
||||
/* Muestra el div para agendar la emision*/
|
||||
|
||||
function verAgendar(emision, id_programa, id_senial, fecha, hora){
|
||||
|
||||
$("#FechaAgenda").text(emision);
|
||||
$("#id_programa").attr("value",id_programa);
|
||||
$("#id_senial").attr("value",id_senial);
|
||||
$("#fecha_emision").attr("value",fecha + ' ' + hora);
|
||||
$("#fecha_recordatorio").attr("value",1);
|
||||
|
||||
Mostrar_Ficha_Agenda();
|
||||
|
||||
}
|
||||
|
||||
$("#hora_recordatorio").change(function(){
|
||||
$("#fecha_recordatorio").attr("value",this.value);
|
||||
});
|
||||
$("#btnAgendar").attr("disabled","disabled");
|
||||
$("#txtemail").keyup(function(){
|
||||
regex= /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; //FUNCIONA
|
||||
//regex=/^.*?\@+[0-9a-zA-Z])+$/;
|
||||
if (regex.test(this.value)){
|
||||
$("#txtemail").css("color","#000");
|
||||
$("#btnAgendar").attr("disabled",false);
|
||||
} else {
|
||||
$("#btnAgendar").attr("disabled","disabled");
|
||||
$("#txtemail").css("color","#F00");
|
||||
}
|
||||
});
|
||||
/**********************************************************************/
|
||||
$("#btnAgendar").click(function() {
|
||||
InsertarRecordatorio();
|
||||
$("#Email").animate({
|
||||
"height": "0px",
|
||||
"margin-top" : "100%",
|
||||
"opacity": "0.0",
|
||||
}, 1000 );
|
||||
});
|
||||
|
||||
$("#btnCancelarAgenda").click(function() {
|
||||
$("#Email").animate({
|
||||
"height": "0px",
|
||||
"margin-top" : "100%",
|
||||
"opacity": "0.0",
|
||||
}, 1000 );
|
||||
});
|
||||
|
||||
/* Llama al script Recordatorio.php para insertar en base de datos.*/
|
||||
function InsertarRecordatorio(){
|
||||
$.ajax({
|
||||
async: true,
|
||||
type: "POST",
|
||||
url: "Recordatorio.php",
|
||||
dataType: "html",
|
||||
contentType: "application/x-www-form-urlencoded",
|
||||
data: {
|
||||
Alineacion : $("#alineacion").attr("value"),
|
||||
Email : $("#txtemail").attr("value"),
|
||||
idPrograma: $("#id_programa").attr("value"),
|
||||
idSenial: $("#id_senial").attr("value"),
|
||||
FechaEmision : $("#fecha_emision").attr("value"),
|
||||
FechaRecordatorio : $("#fecha_recordatorio").attr("value"),
|
||||
},
|
||||
success: RecordatorioAgendado,
|
||||
error:problemas,
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
function RecordatorioAgendado(datos)
|
||||
{
|
||||
CustomAlert(datos,'Recordatorio Guardado!');
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
<div id="Detalle" style="width:580px; height:420px" >
|
||||
<input type="hidden" id="HEADER" value="TITULO"/>
|
||||
<div id="Fichas">
|
||||
<table id="TablaDetalle" width="100%">
|
||||
<tr height="170px">
|
||||
<td width="140px" >
|
||||
<div id="Ficha" class="outer">
|
||||
<label class="h4">Ficha Técnica</label>
|
||||
<div class="inner">
|
||||
<label class="lable">Canal: </label>
|
||||
<br><label class="lable">Título: </label>
|
||||
|
||||
|
||||
<!---->
|
||||
|
||||
|
||||
|
||||
|
||||
<br><label class='lable'>Inicio: </label>
|
||||
<br><label class="lable">Fin: </label>
|
||||
<br><lable class="lable">Duración: </lable>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td width="160px">
|
||||
<div id="Img">
|
||||
<img id="ImgProg" src="./img/Programas/NoPicture.jpg" width="159px" height="116px">
|
||||
<a href="../buscador/img/Programas/" style="display:block;text-align:center;visibility:hidden" onclick="Galeria('../buscador/img/Programas/');
|
||||
return false;">
|
||||
<img id="persona_mas_fotos" src="./img/2307/Galeria_Personas.png" alt="Galeria de fotos" style="">
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
<td width="200px">
|
||||
<div id="Calendario" >
|
||||
<table id="CalendarioDetalle" class="tablacalendario" cellspacing="3" cellpadding="1" border="0"><tr><td colspan="7" class="tit"><table width="100%" cellspacing="2" cellpadding="0" border="0"><tr><td><span></span></td><td class='titmesano'>Octubre 2022</td><td><span></span></td></tr></table></td></tr><tr><td width="14%" class="diasemana">Lu</td><td width="14%" class="diasemana">Ma</td><td width="14%" class="diasemana">Mi</td><td width="14%" class="diasemana">Ju</td><td width="14%" class="diasemana">Vi</td><td width="14%" class="diasemana">Sá</td><td width="14%" class="diasemana">Do</td></tr><tr><td id='//' class='diainvalido' ><span></span></td><td id='//' class='diainvalido' ><span></span></td><td id='//' class='diainvalido' ><span></span></td><td id='//' class='diainvalido' ><span></span></td><td id='//' class='diainvalido' ><span></span></td><td id='01/10/2022' class='sinemision Dia' ><span>01</span></td><td id='02/10/2022' class='domingo Dia' ><span>02</span></td></tr><tr><td id='03/10/2022' class='sinemision hoy Dia' ><span>03</span></td><td id='04/10/2022' class='sinemision Dia' ><span>04</span></td><td id='05/10/2022' class='sinemision Dia' ><span>05</span></td><td id='06/10/2022' class='sinemision Dia' ><span>06</span></td><td id='07/10/2022' class='sinemision Dia' ><span>07</span></td><td id='08/10/2022' class='sinemision Dia' ><span>08</span></td><td id='09/10/2022' class='domingo Dia' ><span>09</span></td></tr><tr><td id='10/10/2022' class='sinemision Dia' ><span>10</span></td><td id='11/10/2022' class='sinemision Dia' ><span>11</span></td><td id='12/10/2022' class='sinemision Dia' ><span>12</span></td><td id='13/10/2022' class='sinemision Dia' ><span>13</span></td><td id='14/10/2022' class='sinemision Dia' ><span>14</span></td><td id='15/10/2022' class='sinemision Dia' ><span>15</span></td><td id='16/10/2022' class='domingo Dia' ><span>16</span></td></tr><tr><td id='17/10/2022' class='sinemision Dia' ><span>17</span></td><td id='18/10/2022' class='sinemision Dia' ><span>18</span></td><td id='19/10/2022' class='sinemision Dia' ><span>19</span></td><td id='20/10/2022' class='sinemision Dia' ><span>20</span></td><td id='21/10/2022' class='sinemision Dia' ><span>21</span></td><td id='22/10/2022' class='sinemision Dia' ><span>22</span></td><td id='23/10/2022' class='domingo Dia' ><span>23</span></td></tr><tr><td id='24/10/2022' class='sinemision Dia' ><span>24</span></td><td id='25/10/2022' class='sinemision Dia' ><span>25</span></td><td id='26/10/2022' class='sinemision Dia' ><span>26</span></td><td id='27/10/2022' class='sinemision Dia' ><span>27</span></td><td id='28/10/2022' class='sinemision Dia' ><span>28</span></td><td id='29/10/2022' class='sinemision Dia' ><span>29</span></td><td id='30/10/2022' class='domingo Dia' ><span>30</span></td></tr><tr><td id='31/10/2022' class='sinemision Dia' ><span>31</span></td><td id='//' class='diainvalido' ><span></span></td><td id='//' class='diainvalido' ><span></span></td><td id='//' class='diainvalido' ><span></span></td><td id='//' class='diainvalido' ><span></span></td><td id='//' class='diainvalido' ><span></span></td><td id='//' class='diainvalido' ><span></span></td></tr></table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<div id="Sinopsis" class="outer" name="Disable">
|
||||
<label class="h4">Sinopsís</label>
|
||||
<div class="inner" >
|
||||
No hay información disponible.
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<div id="Capitulo" class="outer" name="Disable">
|
||||
<!--<label class="h4">Emisión de hoy</label>-->
|
||||
<div class="inner">
|
||||
|
||||
No hay información disponible.
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
<div id="Emisiones" >
|
||||
<div id="Email">
|
||||
<div>
|
||||
<label id="FechaAgenda"></label>
|
||||
<input type="hidden" id="id_programa" value=""/>
|
||||
<input type="hidden" id="id_senial" value=""/>
|
||||
<input type="hidden" id="fecha_emision" value=""/>
|
||||
<input type="hidden" id="fecha_recordatorio" value=""/>
|
||||
<input type="hidden" id="alineacion" value="2694"/>
|
||||
</div>
|
||||
<div>
|
||||
<label> E-mail </label>
|
||||
<input type="text" id="txtemail"/>
|
||||
</div>
|
||||
<div>
|
||||
<label> Recordar </label>
|
||||
<select id="hora_recordatorio">
|
||||
<option value="1">1 hora</option>
|
||||
<option value="2">2 horas</option>
|
||||
<option value="6">6 horas</option>
|
||||
<option value="12">12 horas</option>
|
||||
</select>
|
||||
<label> antes </label>
|
||||
</div>
|
||||
<div>
|
||||
<input id="btnAgendar" type="button" value="Agendar" title="Agendar" style="width:80px"/>
|
||||
<input id="btnCancelarAgenda" type="button" value="Salir" title="Cancelar" style="width:80px"/>
|
||||
</div>
|
||||
</div>
|
||||
<div id="btnEmisiones">
|
||||
<img title="Ocultar" src="img/2694/OcultarEmisiones.png" width="20px" height="25px">
|
||||
</div>
|
||||
<div id="TablaEmisiones"><table id="tblEmisiones" width="" heigth="" id='tblEmisiones' ></table></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
364
sites/reportv.com.ar/__data__/program1.html
Normal file
364
sites/reportv.com.ar/__data__/program1.html
Normal file
File diff suppressed because one or more lines are too long
364
sites/reportv.com.ar/__data__/program2.html
Normal file
364
sites/reportv.com.ar/__data__/program2.html
Normal file
File diff suppressed because one or more lines are too long
168
sites/reportv.com.ar/reportv.com.ar.config.js
Normal file
168
sites/reportv.com.ar/reportv.com.ar.config.js
Normal file
|
@ -0,0 +1,168 @@
|
|||
require('dayjs/locale/es')
|
||||
const axios = require('axios')
|
||||
const dayjs = require('dayjs')
|
||||
const cheerio = require('cheerio')
|
||||
const utc = require('dayjs/plugin/utc')
|
||||
const timezone = require('dayjs/plugin/timezone')
|
||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||
const _ = require('lodash')
|
||||
|
||||
dayjs.extend(utc)
|
||||
dayjs.extend(timezone)
|
||||
dayjs.extend(customParseFormat)
|
||||
|
||||
module.exports = {
|
||||
site: 'reportv.com.ar',
|
||||
request: {
|
||||
cache: {
|
||||
ttl: 60 * 60 * 1000 // 1 hour
|
||||
},
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
data({ channel, date }) {
|
||||
const formData = new URLSearchParams()
|
||||
formData.append('idSenial', channel.site_id)
|
||||
formData.append('Alineacion', '2694')
|
||||
formData.append('DiaDesde', date.format('YYYY/MM/DD'))
|
||||
formData.append('HoraDesde', '00:00:00')
|
||||
|
||||
return formData
|
||||
}
|
||||
},
|
||||
url: `https://www.reportv.com.ar/buscador/ProgXSenial.php`,
|
||||
parser: async function ({ content, date }) {
|
||||
let programs = []
|
||||
const items = parseItems(content, date)
|
||||
for (let item of items) {
|
||||
const $item = cheerio.load(item)
|
||||
const start = parseStart($item, date)
|
||||
const duration = parseDuration($item)
|
||||
const stop = start.add(duration, 's')
|
||||
const details = await loadProgramDetails($item)
|
||||
programs.push({
|
||||
title: parseTitle($item),
|
||||
category: parseCategory($item),
|
||||
icon: details.icon,
|
||||
description: details.description,
|
||||
directors: details.directors,
|
||||
actors: details.actors,
|
||||
start,
|
||||
stop
|
||||
})
|
||||
}
|
||||
|
||||
return programs
|
||||
},
|
||||
async channels() {
|
||||
const content = await axios
|
||||
.get(`https://www.reportv.com.ar/buscador/Buscador.php?aid=2694`)
|
||||
.then(r => r.data)
|
||||
.catch(console.log)
|
||||
const $ = cheerio.load(content)
|
||||
const items = $('#tr_home_2 > td:nth-child(1) > select > option').toArray()
|
||||
|
||||
return items.map(item => {
|
||||
return {
|
||||
site_id: $(item).attr('value'),
|
||||
name: $(item).text()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
async function loadProgramDetails($item) {
|
||||
const onclick = $item('*').attr('onclick')
|
||||
const regexp = /detallePrograma\((\d+),(\d+),(\d+),(\d+),'([^']+)'\);/g
|
||||
const match = [...onclick.matchAll(regexp)]
|
||||
const [_, id, idc, id_alineacion, idp, title] = match[0]
|
||||
if (!id || !idc || !id_alineacion || !idp || !title) return Promise.resolve({})
|
||||
const formData = new URLSearchParams()
|
||||
formData.append('id', id)
|
||||
formData.append('idc', idc)
|
||||
formData.append('id_alineacion', id_alineacion)
|
||||
formData.append('idp', idp)
|
||||
formData.append('title', title)
|
||||
const content = await axios
|
||||
.post(`https://www.reportv.com.ar/buscador/DetallePrograma.php`, formData)
|
||||
.then(r => r.data.toString())
|
||||
.catch(console.error)
|
||||
if (!content) return Promise.resolve({})
|
||||
|
||||
const $ = cheerio.load(content)
|
||||
|
||||
return Promise.resolve({
|
||||
icon: parseIcon($),
|
||||
actors: parseActors($),
|
||||
directors: parseDirectors($),
|
||||
description: parseDescription($)
|
||||
})
|
||||
}
|
||||
|
||||
function parseActors($) {
|
||||
const section = $('#Ficha > div')
|
||||
.html()
|
||||
.split('<br>')
|
||||
.find(str => str.includes('Actores:'))
|
||||
if (!section) return null
|
||||
const $section = cheerio.load(section)
|
||||
|
||||
return $section('span')
|
||||
.map((i, el) => $(el).text().trim())
|
||||
.get()
|
||||
}
|
||||
|
||||
function parseDirectors($) {
|
||||
const section = $('#Ficha > div')
|
||||
.html()
|
||||
.split('<br>')
|
||||
.find(str => str.includes('Directores:'))
|
||||
if (!section) return null
|
||||
const $section = cheerio.load(section)
|
||||
|
||||
return $section('span')
|
||||
.map((i, el) => $(el).text().trim())
|
||||
.get()
|
||||
}
|
||||
|
||||
function parseDescription($) {
|
||||
return $('#Sinopsis > div').text().trim()
|
||||
}
|
||||
|
||||
function parseIcon($) {
|
||||
const src = $('#ImgProg').attr('src')
|
||||
const url = new URL(src, 'https://www.reportv.com.ar/buscador/')
|
||||
|
||||
return url.href
|
||||
}
|
||||
|
||||
function parseTitle($item) {
|
||||
const [_, title] = $item('div:nth-child(1) > span').text().split(' - ')
|
||||
|
||||
return title
|
||||
}
|
||||
|
||||
function parseCategory($item) {
|
||||
return $item('div:nth-child(3) > span').text()
|
||||
}
|
||||
|
||||
function parseStart($item, date) {
|
||||
const [time, _] = $item('div:nth-child(1) > span').text().split(' - ')
|
||||
|
||||
return dayjs.tz(`${date.format('YYYY-MM-DD')} ${time}`, 'YYYY-MM-DD HH:mm', 'America/Caracas')
|
||||
}
|
||||
|
||||
function parseDuration($item) {
|
||||
const [hh, mm, ss] = $item('div:nth-child(4) > span').text().split(':')
|
||||
|
||||
return parseInt(hh) * 3600 + parseInt(mm) * 60 + parseInt(ss)
|
||||
}
|
||||
|
||||
function parseItems(content, date) {
|
||||
if (!content) return []
|
||||
const $ = cheerio.load(content)
|
||||
const d = _.startCase(date.locale('es').format('DD MMMM YYYY'))
|
||||
|
||||
return $(`.trProg[title*="${d}"]`).toArray()
|
||||
}
|
114
sites/reportv.com.ar/reportv.com.ar.test.js
Normal file
114
sites/reportv.com.ar/reportv.com.ar.test.js
Normal file
|
@ -0,0 +1,114 @@
|
|||
// npx epg-grabber --config=sites/reportv.com.ar/reportv.com.ar.config.js --channels=sites/reportv.com.ar/reportv.com.ar_ve.channels.xml --output=guide.xml --days=2
|
||||
// npm run channels:parse -- --config=./sites/reportv.com.ar/reportv.com.ar.config.js --output=./sites/reportv.com.ar/reportv.com.ar_ve.channels.xml
|
||||
|
||||
const { parser, url, request } = require('./reportv.com.ar.config.js')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const dayjs = require('dayjs')
|
||||
const utc = require('dayjs/plugin/utc')
|
||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||
dayjs.extend(customParseFormat)
|
||||
dayjs.extend(utc)
|
||||
const axios = require('axios')
|
||||
jest.mock('axios')
|
||||
|
||||
const date = dayjs.utc('2022-10-03', 'YYYY-MM-DD').startOf('d')
|
||||
const channel = {
|
||||
site_id: '914',
|
||||
xmltv_id: 'VePlusVenezuela.ve'
|
||||
}
|
||||
|
||||
it('can generate valid url', () => {
|
||||
expect(url).toBe('https://www.reportv.com.ar/buscador/ProgXSenial.php')
|
||||
})
|
||||
|
||||
it('can generate valid request method', () => {
|
||||
expect(request.method).toBe('POST')
|
||||
})
|
||||
|
||||
it('can generate valid request headers', () => {
|
||||
expect(request.headers).toMatchObject({
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
})
|
||||
})
|
||||
|
||||
it('can generate valid request data', () => {
|
||||
const result = request.data({ channel, date })
|
||||
expect(result.get('idSenial')).toBe('914')
|
||||
expect(result.get('Alineacion')).toBe('2694')
|
||||
expect(result.get('DiaDesde')).toBe('2022/10/03')
|
||||
expect(result.get('HoraDesde')).toBe('00:00:00')
|
||||
})
|
||||
|
||||
it('can parse response', async () => {
|
||||
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.html'))
|
||||
|
||||
axios.post.mockImplementation((url, data) => {
|
||||
if (
|
||||
url === 'https://www.reportv.com.ar/buscador/DetallePrograma.php' &&
|
||||
data.get('id') == '286096'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: fs.readFileSync(path.resolve(__dirname, '__data__/program1.html'))
|
||||
})
|
||||
} else if (
|
||||
url === 'https://www.reportv.com.ar/buscador/DetallePrograma.php' &&
|
||||
data.get('id') == '392803'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: fs.readFileSync(path.resolve(__dirname, '__data__/program2.html'))
|
||||
})
|
||||
} else {
|
||||
return Promise.resolve({
|
||||
data: fs.readFileSync(path.resolve(__dirname, '__data__/no_program.html'))
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
let results = await parser({ content, date })
|
||||
results = results.map(p => {
|
||||
p.start = p.start.toJSON()
|
||||
p.stop = p.stop.toJSON()
|
||||
return p
|
||||
})
|
||||
|
||||
expect(results[0]).toMatchObject({
|
||||
start: '2022-10-03T04:00:00.000Z',
|
||||
stop: '2022-10-03T05:00:00.000Z',
|
||||
title: '¿Quién tiene la razón?',
|
||||
category: 'Talk Show',
|
||||
icon: 'https://www.reportv.com.ar/buscador/img/Programas/4401882.jpg',
|
||||
actors: ['Nancy Álvarez'],
|
||||
description:
|
||||
'Espacio que dará de qué hablar cuando la doctora Nancy Álvarez y Carmen Jara, acompañadas de un jurado implacable, lleguen a escuchar y a resolver los problemas de las partes en conflicto para luego decidir quién tiene la razón.'
|
||||
})
|
||||
|
||||
expect(results[21]).toMatchObject({
|
||||
start: '2022-10-04T03:00:00.000Z',
|
||||
stop: '2022-10-04T04:00:00.000Z',
|
||||
title: 'Valeria',
|
||||
category: 'Comedia',
|
||||
icon: 'https://www.reportv.com.ar/buscador/img/Programas/18788047.jpg',
|
||||
directors: ['Inma Torrente'],
|
||||
actors: [
|
||||
'Diana Gómez',
|
||||
'Silma López',
|
||||
'Paula Malia',
|
||||
'Teresa Riott',
|
||||
'Maxi Iglesias',
|
||||
'Juanlu González',
|
||||
'Aitor Luna',
|
||||
'Lauren McFall',
|
||||
'Éva Martin',
|
||||
'Raquel Ventosa'
|
||||
],
|
||||
description:
|
||||
'Valeria es una escritora que no está pasando por su mejor momento a nivel profesional y sentimental. La distancia emocional que la separa de su marido la lleva a refugiarse en sus tres mejores amigas: Carmen, Lola y Nerea. Valeria y sus amigas están inmersas en un torbellino de emociones de amor, amistad, celos, infidelidad, dudas, desamor, secretos, trabajo, preocupaciones, alegrías y sueños sobre el futuro.'
|
||||
})
|
||||
})
|
||||
|
||||
it('can handle empty guide', async () => {
|
||||
const content = fs.readFileSync(path.resolve(__dirname, '__data__/no_content.html'))
|
||||
const result = await parser({ content, date })
|
||||
expect(result).toMatchObject([])
|
||||
})
|
167
sites/reportv.com.ar/reportv.com.ar_ve.channels.xml
Normal file
167
sites/reportv.com.ar/reportv.com.ar_ve.channels.xml
Normal file
|
@ -0,0 +1,167 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<site site="reportv.com.ar">
|
||||
<channels>
|
||||
<channel lang="en" xmltv_id="AdrenalinaSportsNetwork.us" site_id="2793">ADRENALINA SPORTS NETWORK</channel>
|
||||
<channel lang="en" xmltv_id="AgrotendenciaTV.cr" site_id="2280">AGROTENDENCIA</channel>
|
||||
<channel lang="en" xmltv_id="ANTV.ve" site_id="2187">ANTV</channel>
|
||||
<channel lang="en" xmltv_id="AvilaTV.ve" site_id="3300">ÁVILA TV</channel>
|
||||
<channel lang="en" xmltv_id="BabyTV.uk" site_id="695">BABY TV</channel>
|
||||
<channel lang="en" xmltv_id="BethelTV.pe" site_id="808">BETHEL</channel>
|
||||
<channel lang="en" xmltv_id="BoliviaTV.bo" site_id="4055">BOLIVIA TV</channel>
|
||||
<channel lang="en" xmltv_id="BrazzersTV.us" site_id="3290">BRAZZERS TV</channel>
|
||||
<channel lang="en" xmltv_id="CanalI.ve" site_id="967">CANAL I</channel>
|
||||
<channel lang="en" xmltv_id="Colombeia.ve" site_id="2626">COLOMBEIA</channel>
|
||||
<channel lang="en" xmltv_id="ConCienciaTV.ve" site_id="2831">CONCIENCIA TV</channel>
|
||||
<channel lang="en" xmltv_id="DWEspanol.de" site_id="16">DW ESPAÑOL</channel>
|
||||
<channel lang="en" xmltv_id="Eurochannel.us" site_id="337">EUROCHANNEL</channel>
|
||||
<channel lang="en" xmltv_id="EuropaEuropa.ar" site_id="184">EUROPA EUROPA</channel>
|
||||
<channel lang="en" xmltv_id="Globovision.ve" site_id="309">GLOBOVISION</channel>
|
||||
<channel lang="en" xmltv_id="GoldenPremier.mx" site_id="2376">GOLDEN PREMIER</channel>
|
||||
<channel lang="en" xmltv_id="IVC.ve" site_id="3315">IVC</channel>
|
||||
<channel lang="en" xmltv_id="IVCHD.ve" site_id="4479">IVC HD</channel>
|
||||
<channel lang="en" xmltv_id="LaVozdeMaria.do" site_id="1945">LA VOZ DE MARIA</channel>
|
||||
<channel lang="en" xmltv_id="MeridianoTV.ve" site_id="934">MERIDIANO TV</channel>
|
||||
<channel lang="en" xmltv_id="MultiPremier.mx" site_id="106">MULTIPREMIER</channel>
|
||||
<channel lang="en" xmltv_id="PenthouseTV.us" site_id="3291">PENTHOUSE</channel>
|
||||
<channel lang="en" xmltv_id="RTPInternacional.pt" site_id="931">RTP INTERNACIONAL</channel>
|
||||
<channel lang="en" xmltv_id="SerTV.pa" site_id="2226">SERTV</channel>
|
||||
<channel lang="en" xmltv_id="SunChannel.ve" site_id="771">SUN CHANNEL</channel>
|
||||
<channel lang="en" xmltv_id="TelefeInternacional.ar" site_id="149">TELEFE INTERNACIONAL</channel>
|
||||
<channel lang="en" xmltv_id="Televen.ve" site_id="408">TELEVEN</channel>
|
||||
<channel lang="en" xmltv_id="TLT.ve" site_id="3530">TLT</channel>
|
||||
<channel lang="en" xmltv_id="Tooncast.us" site_id="880">TOONCAST</channel>
|
||||
<channel lang="en" xmltv_id="TVes.ve" site_id="2186">TVES</channel>
|
||||
<channel lang="en" xmltv_id="TVFamilia.ve" site_id="3413">TV FAMILIA</channel>
|
||||
<channel lang="en" xmltv_id="ValeTV.ve" site_id="3357">VALE TV</channel>
|
||||
<channel lang="en" xmltv_id="Venevision.ve" site_id="2138">VENEVISION</channel>
|
||||
<channel lang="en" xmltv_id="Venus.ar" site_id="3294">VENUS</channel>
|
||||
<channel lang="en" xmltv_id="VePlusVenezuela.ve" site_id="914">VENEVISION PLUS</channel>
|
||||
<channel lang="en" xmltv_id="Vive.ve" site_id="407">VIVE TV</channel>
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1054">CLASICOS INSTRUMENTALES</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1101">FOX SPORTS 3</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1102">DISNEY JR</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1112">TRU TV</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1117">SY FY</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1132">ESPN EXTRA HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="115">HTV</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1153">TELEMUNDO</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1154">CANAL 13</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1181">DISCOVERY HD THEATER</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1226">NICK JR</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1229">NICKELODEON</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1258">SPACE HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="13">CNN</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1330">CCTV 4</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1332">X-TIME</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1339">MTV</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1348">HBO MUNDI</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="135">TV PUBLICA</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1362">AMC</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="137">DE PELICULA</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1502">RUSSIA TODAY</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1531">HGTV</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1537">STAR CHANNEL HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1720">ROCK ALTERNATIVO</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1752">MAS CHIC</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1835">GLITZ</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="1966">TBS VERYFUNNY</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2005">ESPN 3</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2020">ESPN 3 HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2037">COMEDY CENTRAL</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="21">HBO</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2127">HBO 2</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2165">HBO PLUS</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2202">FOX SPORTS 2</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2204">SPACE</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2217">PASIONES HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="222">ESPN 4 HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2235">LAS ESTRELLAS HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2293">CINEMAX</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2360">NICKMUSIC</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2566">ADRENALINA SPORTS NETWORK HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2603">ESPN</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2669">HOLA TV</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2670">HOLA TV HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2790">LIFETIME</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2791">UNIVISION HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="281">CANAL 24 HS</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2824">H2</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2835">TLNOVELAS</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2899">ESPN 2</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="29">RAI</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2910">PARAMOUNT NETWORK</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="2932">ANIMAL PLANET</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="3041">TNT SERIES</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="311">TYC SPORTS HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="3135">DISCOVERY HOME AND HEALTH</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="3292">PLAYBOY</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="3313">FANB TV</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="334">HBO XTREME</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="335">HBO FAMILY</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="3352">TVEPACO</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="3381">CANAL GUIA INTER</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="339">TLC</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="3422">HBO POP PANAMERICANO</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="3450">FOOD NETWORK HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="3467">CINECANAL</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="374">CUBAVISION</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="3750">TLT HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="38">TV5</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="386">DISNEY</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="388">TELESUR</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="3901">SHOWVEN TV</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="396">DISCOVERY KIDS</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="401">GOLDEN</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="403">CARTOON NETWORK</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="404">NATIONAL GEOGRAPHIC</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="413">ENLACE</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="420">VTV</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="423">UNIVERSAL CHANNEL</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="427">FX</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="4361">ESPN 4</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="438">DISCOVERY CHANNEL</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="445">HISTORY</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="446">SONY</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="4527">GOLDEN EDGE HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="453">CARTOONITO</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="455">A&E MUNDO</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="461">TNT</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="466">WARNER</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="473">EL GOURMET</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="479">AXN</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="491">ENTERTAINMENT TELEVISION</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="492">DISCOVERY TURBO</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="493">DISCOVERY SCIENCE</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="4993">GOLDEN PLUS HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="500">HBO SIGNATURE</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="532">80S HITS</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="533">90S HITS</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="535">EXITOS EN ESPAÑOL</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="536">EXITOS EN INGLES</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="545">JAZZ CLASICO</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="546">MARIACHI</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="571">NUEVA ERA</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="572">CONTEMPORANEA</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="580">STUDIO UNIVERSAL</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="59">TVE</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="591">DISCOVERY ID</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="61">ANTENA3</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="6223">CLAROSPORTS</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="63">FILM&ARTS</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="64">EWTN</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="6653">BYM SPORTS</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="6996">DIRECTV SPORTS</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="6997">DIRECTV SPORTS HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="6998">DIRECTV SPORTS 2</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="6999">DIRECTV SPORTS 2 HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="7000">DIRECTV SPORTS +</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="7001">DIRECTV SPORTS + HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="7263">BYM SPORTS HD</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="727">MTV HITS</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="778">STAR CHANNEL</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="9">LAS ESTRELLAS</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="910">TCM</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="917">I-SAT</channel> -->
|
||||
<!-- <channel lang="en" xmltv_id="" site_id="933">VH1 CLASSIC</channel> -->
|
||||
</channels>
|
||||
</site>
|
Loading…
Add table
Add a link
Reference in a new issue