Replace LF line endings with CRLF

This commit is contained in:
freearhey
2025-09-28 17:55:05 +03:00
parent efc74efcf8
commit b6a589c62a
1192 changed files with 445631 additions and 445631 deletions

View File

@@ -1,21 +1,21 @@
# reportv.com.ar
https://www.reportv.com.ar/buscador/Buscador.php?aid=2337
### Download the guide
```sh
npm run grab --- --site=reportv.com.ar
```
### Update channel list
```sh
npm run channels:parse --- --config=./sites/reportv.com.ar/reportv.com.ar.config.js --output=./sites/reportv.com.ar/reportv.com.ar.channels.xml
```
### Test
```sh
npm test --- reportv.com.ar
```
# reportv.com.ar
https://www.reportv.com.ar/buscador/Buscador.php?aid=2337
### Download the guide
```sh
npm run grab --- --site=reportv.com.ar
```
### Update channel list
```sh
npm run channels:parse --- --config=./sites/reportv.com.ar/reportv.com.ar.config.js --output=./sites/reportv.com.ar/reportv.com.ar.channels.xml
```
### Test
```sh
npm test --- reportv.com.ar
```

View File

@@ -1,166 +1,166 @@
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="0">Todos</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="38">TV5</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="135">TV PUBLICA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="137">DE PELICULA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="222">ESPN 4 HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="281">CANAL 24 HS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="311">TYC SPORTS HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="374">CUBAVISION</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="386">DISNEY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="396">DISCOVERY KIDS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="403">CARTOON NETWORK</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="404">NATIONAL GEOGRAPHIC</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="413">ENLACE</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="423">UNIVERSAL CHANNEL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="427">FX</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="438">DISCOVERY CHANNEL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="446">SONY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="453">CARTOONITO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="455">A&amp;E MUNDO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="479">AXN</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="491">ENTERTAINMENT TELEVISION</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="532">80S HITS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="533">90S HITS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="535">EXITOS EN ESPAÑOL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="536">EXITOS EN INGLES</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="545">JAZZ CLASICO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="546">MARIACHI</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="571">NUEVA ERA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="572">CONTEMPORANEA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="591">DISCOVERY ID</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="727">MTV HITS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="778">STAR CHANNEL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1054">CLASICOS INSTRUMENTALES</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1101">FOX SPORTS 3</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1132">ESPN EXTRA HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1154">CANAL 13</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1258">SPACE HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1330">CCTV 4</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1332">X-TIME</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1537">STAR CHANNEL HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1720">ROCK ALTERNATIVO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2005">ESPN 3</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2020">ESPN 3 HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2202">FOX SPORTS 2</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2204">SPACE</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2235">LAS ESTRELLAS HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2360">NICKMUSIC</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2566">ADRENALINA SPORTS NETWORK HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2603">ESPN</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2670">HOLA TV HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2791">UNIVISION HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2899">ESPN 2</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="3041">TNT SERIES</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="3381">CANAL GUIA INTER</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="3467">CINECANAL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="3750">TLT HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="3901">SHOWVEN TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="4361">ESPN 4</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="4479">IVC HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="6223">CLAROSPORTS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="6653">BYM SPORTS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="6996">DIRECTV SPORTS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="6997">DIRECTV SPORTS HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="6999">DIRECTV SPORTS 2 HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="7001">DIRECTV SPORTS + HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="7263">BYM SPORTS HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="AdrenalinaSportsNetwork.us" site_id="2793">ADRENALINA SPORTS NETWORK</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="AgrotendenciaTV.cr" site_id="2280">AGROTENDENCIA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="AMCLatinAmerica.us" site_id="1362">AMC</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="AnimalPlanetLatinAmerica.us" site_id="2932">ANIMAL PLANET</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Antena3Internacional.es" site_id="61">ANTENA3</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="ANTV.ve" site_id="2187">ANTV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="AvilaTV.ve" site_id="3300">ÁVILA TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="BabyTV.uk" site_id="695">BABY TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="BethelTV.pe" site_id="808">BETHEL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="BoliviaTV.bo" site_id="4055">BOLIVIA TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="BrazzersTVEurope.us" site_id="3290">BRAZZERS TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="CanalI.ve" site_id="967">CANAL I</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="CinemaxLatinAmerica.us" site_id="2293">CINEMAX</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="CNNInternational.us@LatinAmerica" site_id="13">CNN</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Colombeia.ve" site_id="2626">COLOMBEIA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="ComedyCentralLatinAmerica.us@Panregional" site_id="2037">COMEDY CENTRAL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="ConCienciaTV.ve" site_id="2831">CONCIENCIA TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DirecTVSports2.us" site_id="6998">DIRECTV SPORTS 2</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DirecTVSportsPlus.us" site_id="7000">DIRECTV SPORTS +</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DiscoveryHomeHealthLatinAmerica.mx@Chile" site_id="3135">DISCOVERY HOME AND HEALTH</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DiscoveryScienceLatinAmerica.us" site_id="493">DISCOVERY SCIENCE</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DiscoveryTheaterLatinAmerica.us" site_id="1181">DISCOVERY HD THEATER</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DiscoveryTurboLatinAmerica.us@Panregional" site_id="492">DISCOVERY TURBO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DisneyJrLatinAmerica.ar@North" site_id="1102">DISNEY JR</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DW.de@Espanol" site_id="16">DW ESPAÑOL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="ElGourmet.ar@South" site_id="473">EL GOURMET</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Eurochannel.uk" site_id="337">EUROCHANNEL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="EuropaEuropa.ar" site_id="184">EUROPA EUROPA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="EWTNEspana.es@LatinAmerica" site_id="64">EWTN</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="FilmArts.ar@Panregional" site_id="63">FILM&amp;ARTS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="FoodNetworkLatinAmerica.us@Panregional" site_id="3450">FOOD NETWORK HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Glitz.ar@Panregional" site_id="1835">GLITZ</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Globovision.ve" site_id="309">GLOBOVISION</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="GoldenEdge.mx@Panregional" site_id="4527">GOLDEN EDGE HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Golden.mx@Panregional" site_id="401">GOLDEN</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="GoldenPlus.mx" site_id="4993">GOLDEN PLUS HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="GoldenPremier.mx" site_id="2376">GOLDEN PREMIER</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBO2LatinAmerica.us" site_id="2127">HBO 2</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBOFamilyLatinAmerica.us" site_id="335">HBO FAMILY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBOLatinAmerica.us" site_id="21">HBO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBOMundiLatinAmerica.us" site_id="1348">HBO MUNDI</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBOPlusLatinAmerica.us" site_id="2165">HBO PLUS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBOPopLatinAmerica.us" site_id="3422">HBO POP PANAMERICANO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBOSignatureLatinAmerica.us" site_id="500">HBO SIGNATURE</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBOXtremeLatinAmerica.us" site_id="334">HBO XTREME</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HGTVLatinAmerica.us@Panregional" site_id="1531">HGTV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="History2LatinAmerica.us@Panregional" site_id="2824">H2</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HistoryLatinAmerica.us@South" site_id="445">HISTORY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HolaTVLatinAmerica.us" site_id="2669">HOLA TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HTV.us" site_id="115">HTV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="ISat.ar@Panregional" site_id="917">I-SAT</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="IVC.ve" site_id="3315">IVC</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="LasEstrellasLatinAmerica.mx" site_id="9">LAS ESTRELLAS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="LaTeleTuya.ve" site_id="3530">TLT</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="LaVozdeMaria.do" site_id="1945">LA VOZ DE MARIA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="LifetimeLatinAmerica.us@Panregional" site_id="2790">LIFETIME</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="MasChic.ar@Panregional" site_id="1752">MAS CHIC</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="MeridianoTV.ve" site_id="934">MERIDIANO TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="MTV80s.uk" site_id="933">VH1 CLASSIC</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="MTVLatinAmerica.us@Panregional" site_id="1339">MTV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="MultiPremier.mx" site_id="106">MULTIPREMIER</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="NickelodeonLatinAmerica.us@Panregional" site_id="1229">NICKELODEON</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="NickJrLatinAmerica.us@Panregional" site_id="1226">NICK JR</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="ParamountNetworkLatinAmerica.us@Panregional" site_id="2910">PARAMOUNT NETWORK</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="PasionesLatinAmerica.us" site_id="2217">PASIONES HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="PenthouseTV.us" site_id="3291">PENTHOUSE</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="PlayboyTVLatinAmerica.us" site_id="3292">PLAYBOY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="RaiItalia.it@America" site_id="29">RAI</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="RTenEspanol.ru" site_id="1502">RUSSIA TODAY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="RTPiAmerica.pt" site_id="931">RTP INTERNACIONAL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="SerTV.pa" site_id="2226">SERTV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="StudioUniversalLatinAmerica.us@Panregional" site_id="580">STUDIO UNIVERSAL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="SunChannel.ve" site_id="771">SUN CHANNEL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="SyfyLatinAmerica.us@Panregional" site_id="1117">SY FY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TBSLatinAmerica.us@Panregional" site_id="1966">TBS VERYFUNNY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TCMLatinAmerica.us@Panregional" site_id="910">TCM</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TelefeInternacional.ar" site_id="149">TELEFE INTERNACIONAL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TelemundoInternacional.us" site_id="1153">TELEMUNDO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Telesur.ve" site_id="388">TELESUR</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Televen.ve" site_id="408">TELEVEN</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TLCLatinAmerica.us@Panregional" site_id="339">TLC</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TlnovelasLatinAmerica.mx" site_id="2835">TLNOVELAS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TNTLatinAmerica.us@Center" site_id="461">TNT</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Tooncast.us" site_id="880">TOONCAST</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="truTVLatinAmerica.us" site_id="1112">TRU TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TVEInternacionalAmerica.es" site_id="59">TVE</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TVes.ve" site_id="2186">TVES</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TVFamilia.ve" site_id="3413">TV FAMILIA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TVFANB.ve" site_id="3313">FANB TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="ValeTV.ve" site_id="3357">VALE TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Venevision.ve" site_id="2138">VENEVISION</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="VenezolanadeTelevision.ve" site_id="420">VTV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Venus.ar" site_id="3294">VENUS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="VepacoTV.ve" site_id="3352">TVEPACO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="VePlus.ve" site_id="914">VENEVISION PLUS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Vive.ve" site_id="407">VIVE TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="WarnerChannel.us@Venezuela" site_id="466">WARNER</channel>
</channels>
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="0">Todos</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="38">TV5</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="135">TV PUBLICA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="137">DE PELICULA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="222">ESPN 4 HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="281">CANAL 24 HS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="311">TYC SPORTS HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="374">CUBAVISION</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="386">DISNEY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="396">DISCOVERY KIDS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="403">CARTOON NETWORK</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="404">NATIONAL GEOGRAPHIC</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="413">ENLACE</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="423">UNIVERSAL CHANNEL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="427">FX</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="438">DISCOVERY CHANNEL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="446">SONY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="453">CARTOONITO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="455">A&amp;E MUNDO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="479">AXN</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="491">ENTERTAINMENT TELEVISION</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="532">80S HITS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="533">90S HITS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="535">EXITOS EN ESPAÑOL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="536">EXITOS EN INGLES</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="545">JAZZ CLASICO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="546">MARIACHI</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="571">NUEVA ERA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="572">CONTEMPORANEA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="591">DISCOVERY ID</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="727">MTV HITS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="778">STAR CHANNEL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1054">CLASICOS INSTRUMENTALES</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1101">FOX SPORTS 3</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1132">ESPN EXTRA HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1154">CANAL 13</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1258">SPACE HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1330">CCTV 4</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1332">X-TIME</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1537">STAR CHANNEL HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="1720">ROCK ALTERNATIVO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2005">ESPN 3</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2020">ESPN 3 HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2202">FOX SPORTS 2</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2204">SPACE</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2235">LAS ESTRELLAS HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2360">NICKMUSIC</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2566">ADRENALINA SPORTS NETWORK HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2603">ESPN</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2670">HOLA TV HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2791">UNIVISION HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="2899">ESPN 2</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="3041">TNT SERIES</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="3381">CANAL GUIA INTER</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="3467">CINECANAL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="3750">TLT HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="3901">SHOWVEN TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="4361">ESPN 4</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="4479">IVC HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="6223">CLAROSPORTS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="6653">BYM SPORTS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="6996">DIRECTV SPORTS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="6997">DIRECTV SPORTS HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="6999">DIRECTV SPORTS 2 HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="7001">DIRECTV SPORTS + HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="" site_id="7263">BYM SPORTS HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="AdrenalinaSportsNetwork.us" site_id="2793">ADRENALINA SPORTS NETWORK</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="AgrotendenciaTV.cr" site_id="2280">AGROTENDENCIA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="AMCLatinAmerica.us" site_id="1362">AMC</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="AnimalPlanetLatinAmerica.us" site_id="2932">ANIMAL PLANET</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Antena3Internacional.es" site_id="61">ANTENA3</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="ANTV.ve" site_id="2187">ANTV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="AvilaTV.ve" site_id="3300">ÁVILA TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="BabyTV.uk" site_id="695">BABY TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="BethelTV.pe" site_id="808">BETHEL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="BoliviaTV.bo" site_id="4055">BOLIVIA TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="BrazzersTVEurope.us" site_id="3290">BRAZZERS TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="CanalI.ve" site_id="967">CANAL I</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="CinemaxLatinAmerica.us" site_id="2293">CINEMAX</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="CNNInternational.us@LatinAmerica" site_id="13">CNN</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Colombeia.ve" site_id="2626">COLOMBEIA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="ComedyCentralLatinAmerica.us@Panregional" site_id="2037">COMEDY CENTRAL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="ConCienciaTV.ve" site_id="2831">CONCIENCIA TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DirecTVSports2.us" site_id="6998">DIRECTV SPORTS 2</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DirecTVSportsPlus.us" site_id="7000">DIRECTV SPORTS +</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DiscoveryHomeHealthLatinAmerica.mx@Chile" site_id="3135">DISCOVERY HOME AND HEALTH</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DiscoveryScienceLatinAmerica.us" site_id="493">DISCOVERY SCIENCE</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DiscoveryTheaterLatinAmerica.us" site_id="1181">DISCOVERY HD THEATER</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DiscoveryTurboLatinAmerica.us@Panregional" site_id="492">DISCOVERY TURBO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DisneyJrLatinAmerica.ar@North" site_id="1102">DISNEY JR</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="DW.de@Espanol" site_id="16">DW ESPAÑOL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="ElGourmet.ar@South" site_id="473">EL GOURMET</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Eurochannel.uk" site_id="337">EUROCHANNEL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="EuropaEuropa.ar" site_id="184">EUROPA EUROPA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="EWTNEspana.es@LatinAmerica" site_id="64">EWTN</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="FilmArts.ar@Panregional" site_id="63">FILM&amp;ARTS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="FoodNetworkLatinAmerica.us@Panregional" site_id="3450">FOOD NETWORK HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Glitz.ar@Panregional" site_id="1835">GLITZ</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Globovision.ve" site_id="309">GLOBOVISION</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="GoldenEdge.mx@Panregional" site_id="4527">GOLDEN EDGE HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Golden.mx@Panregional" site_id="401">GOLDEN</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="GoldenPlus.mx" site_id="4993">GOLDEN PLUS HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="GoldenPremier.mx" site_id="2376">GOLDEN PREMIER</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBO2LatinAmerica.us" site_id="2127">HBO 2</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBOFamilyLatinAmerica.us" site_id="335">HBO FAMILY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBOLatinAmerica.us" site_id="21">HBO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBOMundiLatinAmerica.us" site_id="1348">HBO MUNDI</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBOPlusLatinAmerica.us" site_id="2165">HBO PLUS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBOPopLatinAmerica.us" site_id="3422">HBO POP PANAMERICANO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBOSignatureLatinAmerica.us" site_id="500">HBO SIGNATURE</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HBOXtremeLatinAmerica.us" site_id="334">HBO XTREME</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HGTVLatinAmerica.us@Panregional" site_id="1531">HGTV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="History2LatinAmerica.us@Panregional" site_id="2824">H2</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HistoryLatinAmerica.us@South" site_id="445">HISTORY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HolaTVLatinAmerica.us" site_id="2669">HOLA TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="HTV.us" site_id="115">HTV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="ISat.ar@Panregional" site_id="917">I-SAT</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="IVC.ve" site_id="3315">IVC</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="LasEstrellasLatinAmerica.mx" site_id="9">LAS ESTRELLAS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="LaTeleTuya.ve" site_id="3530">TLT</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="LaVozdeMaria.do" site_id="1945">LA VOZ DE MARIA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="LifetimeLatinAmerica.us@Panregional" site_id="2790">LIFETIME</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="MasChic.ar@Panregional" site_id="1752">MAS CHIC</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="MeridianoTV.ve" site_id="934">MERIDIANO TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="MTV80s.uk" site_id="933">VH1 CLASSIC</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="MTVLatinAmerica.us@Panregional" site_id="1339">MTV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="MultiPremier.mx" site_id="106">MULTIPREMIER</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="NickelodeonLatinAmerica.us@Panregional" site_id="1229">NICKELODEON</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="NickJrLatinAmerica.us@Panregional" site_id="1226">NICK JR</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="ParamountNetworkLatinAmerica.us@Panregional" site_id="2910">PARAMOUNT NETWORK</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="PasionesLatinAmerica.us" site_id="2217">PASIONES HD</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="PenthouseTV.us" site_id="3291">PENTHOUSE</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="PlayboyTVLatinAmerica.us" site_id="3292">PLAYBOY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="RaiItalia.it@America" site_id="29">RAI</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="RTenEspanol.ru" site_id="1502">RUSSIA TODAY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="RTPiAmerica.pt" site_id="931">RTP INTERNACIONAL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="SerTV.pa" site_id="2226">SERTV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="StudioUniversalLatinAmerica.us@Panregional" site_id="580">STUDIO UNIVERSAL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="SunChannel.ve" site_id="771">SUN CHANNEL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="SyfyLatinAmerica.us@Panregional" site_id="1117">SY FY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TBSLatinAmerica.us@Panregional" site_id="1966">TBS VERYFUNNY</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TCMLatinAmerica.us@Panregional" site_id="910">TCM</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TelefeInternacional.ar" site_id="149">TELEFE INTERNACIONAL</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TelemundoInternacional.us" site_id="1153">TELEMUNDO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Telesur.ve" site_id="388">TELESUR</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Televen.ve" site_id="408">TELEVEN</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TLCLatinAmerica.us@Panregional" site_id="339">TLC</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TlnovelasLatinAmerica.mx" site_id="2835">TLNOVELAS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TNTLatinAmerica.us@Center" site_id="461">TNT</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Tooncast.us" site_id="880">TOONCAST</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="truTVLatinAmerica.us" site_id="1112">TRU TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TVEInternacionalAmerica.es" site_id="59">TVE</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TVes.ve" site_id="2186">TVES</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TVFamilia.ve" site_id="3413">TV FAMILIA</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="TVFANB.ve" site_id="3313">FANB TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="ValeTV.ve" site_id="3357">VALE TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Venevision.ve" site_id="2138">VENEVISION</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="VenezolanadeTelevision.ve" site_id="420">VTV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Venus.ar" site_id="3294">VENUS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="VepacoTV.ve" site_id="3352">TVEPACO</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="VePlus.ve" site_id="914">VENEVISION PLUS</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="Vive.ve" site_id="407">VIVE TV</channel>
<channel site="reportv.com.ar" lang="es" xmltv_id="WarnerChannel.us@Venezuela" site_id="466">WARNER</channel>
</channels>

View File

@@ -1,170 +1,170 @@
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 startCase = require('lodash.startcase')
dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
module.exports = {
site: 'reportv.com.ar',
days: 2,
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),
image: details.image,
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 {
lang: 'es',
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({
image: parseImage($),
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 parseImage($) {
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()
}
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 startCase = require('lodash.startcase')
dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
module.exports = {
site: 'reportv.com.ar',
days: 2,
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),
image: details.image,
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 {
lang: 'es',
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({
image: parseImage($),
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 parseImage($) {
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()
}

View File

@@ -1,111 +1,111 @@
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',
image: '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',
image: '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([])
})
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',
image: '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',
image: '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([])
})