Initial Commit
This commit is contained in:
103
sites/siba.com.co/siba.com.co.channels.xml
Normal file
103
sites/siba.com.co/siba.com.co.channels.xml
Normal file
@@ -0,0 +1,103 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<site site="siba.com.co">
|
||||
<channels>
|
||||
<channel lang="es" xmltv_id="AEChile.cl" site_id="380">A&E Chile</channel>
|
||||
<channel lang="es" xmltv_id="AMCLatinAmerica.us" site_id="532">AMC</channel>
|
||||
<channel lang="es" xmltv_id="AnimalPlanetLatinAmerica.us" site_id="382">Animal Planet</channel>
|
||||
<channel lang="es" xmltv_id="AXNAndes.us" site_id="384">AXN</channel>
|
||||
<!-- <channel lang="es" xmltv_id="BrazzersTVXX.us" site_id="564">Brazzers TV XX</channel> -->
|
||||
<channel lang="es" xmltv_id="Cablenoticias.co" site_id="391">Cablenoticias</channel>
|
||||
<channel lang="es" xmltv_id="Canal1.co" site_id="401">Canal 1</channel>
|
||||
<channel lang="es" xmltv_id="CanalCapital.co" site_id="393">Canal Capital</channel>
|
||||
<channel lang="es" xmltv_id="CanalClaro.cl" site_id="395">Canal Claro</channel>
|
||||
<channel lang="es" xmltv_id="CanalCongreso.co" site_id="397">Canal Congreso</channel>
|
||||
<channel lang="es" xmltv_id="CanalInstitucional.co" site_id="398">Canal Institucional</channel>
|
||||
<channel lang="es" xmltv_id="CanalTRO.co" site_id="591">Canal TRO</channel>
|
||||
<channel lang="es" xmltv_id="CaracolTV.co" site_id="394">Caracol TV</channel>
|
||||
<channel lang="es" xmltv_id="CartoonNetworkNorthAtlantic.us" site_id="404">Cartoon Network</channel>
|
||||
<channel lang="es" xmltv_id="CinecanalPacific.us" site_id="407">Cinecanal Chile</channel>
|
||||
<channel lang="es" xmltv_id="CineLatino.mx" site_id="408">CineLatino</channel>
|
||||
<channel lang="es" xmltv_id="CinemaPlus.co" site_id="409">Cinema +</channel>
|
||||
<channel lang="es" xmltv_id="CinemaxPanregional.us" site_id="839">Cinemax Latinoamérica</channel>
|
||||
<channel lang="es" xmltv_id="CitytvBogota.co" site_id="412">City TV</channel>
|
||||
<channel lang="es" xmltv_id="ClaroCinema.mx" site_id="985">Claro Cinema</channel>
|
||||
<channel lang="es" xmltv_id="ClaroMusicaTV.co" site_id="566">Claro música TV</channel>
|
||||
<channel lang="es" xmltv_id="ClaroSportsChile.cl" site_id="602">Claro Sports Chile</channel>
|
||||
<channel lang="es" xmltv_id="CNNenEspanol.us" site_id="413">CNN en Español</channel>
|
||||
<channel lang="es" xmltv_id="ComedyCentralNorth.us" site_id="702">Comedy Central</channel>
|
||||
<channel lang="es" xmltv_id="Cosmovision.co" site_id="417">Cosmovisión</channel>
|
||||
<channel lang="es" xmltv_id="Cristovision.co" site_id="418">Cristovisión</channel>
|
||||
<channel lang="es" xmltv_id="DiscoveryChannelPanregional.us" site_id="423">Discovery Channel</channel>
|
||||
<channel lang="es" xmltv_id="DiscoveryHomeHealthPanregional.us" site_id="425">Discovery Home & Health</channel>
|
||||
<channel lang="es" xmltv_id="DiscoveryKidsPanregional.us" site_id="427">Discovery Kids</channel>
|
||||
<channel lang="es" xmltv_id="DiscoveryTurboPanregional.us" site_id="429">Discovery Turbo</channel>
|
||||
<channel lang="es" xmltv_id="DisneyChannelCenter.us" site_id="430">Disney Channel</channel>
|
||||
<channel lang="es" xmltv_id="EAndes.us" site_id="484">E!</channel>
|
||||
<channel lang="es" xmltv_id="ElGourmetPanregional.ar" site_id="485">El Gourmet Norte</channel>
|
||||
<channel lang="es" xmltv_id="ElTiempoTV.co" site_id="497">El Tiempo TV</channel>
|
||||
<channel lang="es" xmltv_id="Enlace.cr" site_id="493">Enlace</channel>
|
||||
<channel lang="es" xmltv_id="ESNETV.us" site_id="486">ESNE TV</channel>
|
||||
<channel lang="es" xmltv_id="EWTNEspanaLatinAmerica.us" site_id="500">EWTN España - Latinoamérica</channel>
|
||||
<channel lang="es" xmltv_id="FoodNetworkPanregional.us" site_id="991">Food Network Latinoamérica</channel>
|
||||
<channel lang="es" xmltv_id="FoxSports2South.us" site_id="701">Fox Sports 2 Latin America</channel>
|
||||
<channel lang="es" xmltv_id="FoxSports3Panregional.us" site_id="651">Fox Sports 3 Latin America</channel>
|
||||
<channel lang="es" xmltv_id="FoxSportsSouth.us" site_id="506">Fox Sports Latin America</channel>
|
||||
<channel lang="es" xmltv_id="FXChile.cl" site_id="509">FX Chile</channel>
|
||||
<channel lang="es" xmltv_id="FXMChile.cl" site_id="586">FXM Chile</channel>
|
||||
<channel lang="es" xmltv_id="GlitzPanregional.ar" site_id="510">Glitz</channel>
|
||||
<channel lang="es" xmltv_id="GoldenPanregional.mx" site_id="513">Golden</channel>
|
||||
<channel lang="es" xmltv_id="History2Panregional.us" site_id="894">History 2</channel>
|
||||
<channel lang="es" xmltv_id="HistoryPanregional.us" site_id="521">History</channel>
|
||||
<channel lang="es" xmltv_id="HTV.us" site_id="523">HTV</channel>
|
||||
<channel lang="es" xmltv_id="InvestigationDiscoveryPanregional.us" site_id="528">Investigation Discovery</channel>
|
||||
<channel lang="es" xmltv_id="LasEstrellasLatinAmerica.mx" site_id="396">Las Estrellas</channel>
|
||||
<channel lang="es" xmltv_id="LifetimePanregional.us" site_id="893">Lifetime</channel>
|
||||
<channel lang="es" xmltv_id="MeGusta.co" site_id="527">Me Gusta</channel>
|
||||
<channel lang="es" xmltv_id="MTVSouth.us" site_id="544">MTV Latino Sud</channel>
|
||||
<channel lang="es" xmltv_id="MultiPremier.mx" site_id="547">MultiPremier</channel>
|
||||
<channel lang="es" xmltv_id="NatGeoKidsPanregional.us" site_id="1066">Nat Geo Kids</channel>
|
||||
<channel lang="es" xmltv_id="NationalGeographicPanregional.us" site_id="550">National Geographic</channel>
|
||||
<channel lang="es" xmltv_id="NationalGeographicWildPanregional.us" site_id="548">National Geographic Wild</channel>
|
||||
<channel lang="es" xmltv_id="NickelodeonPanregional.us" site_id="552">Nickelodeon</channel>
|
||||
<channel lang="es" xmltv_id="NickJrPanregional.us" site_id="551">Nick Jr</channel>
|
||||
<channel lang="es" xmltv_id="NickMusic.us" site_id="745">NickMusic</channel>
|
||||
<channel lang="es" xmltv_id="NTN24.co" site_id="554">NTN 24</channel>
|
||||
<channel lang="es" xmltv_id="ParamountNetworkPanregional.us" site_id="937">Paramount Network</channel>
|
||||
<channel lang="es" xmltv_id="PasionesLatinAmerica.us" site_id="555">Pasiones</channel>
|
||||
<channel lang="es" xmltv_id="PenthouseTV.us" site_id="626">Penthouse TV</channel>
|
||||
<channel lang="es" xmltv_id="PlayboyTVLatinAmerica.us" site_id="556">Playboy TV</channel>
|
||||
<channel lang="es" xmltv_id="RCNNovelas.co" site_id="859">RCN Novelas</channel>
|
||||
<channel lang="es" xmltv_id="CanalRCN.co" site_id="399">RCN TV</channel>
|
||||
<channel lang="es" xmltv_id="RedPlus.co" site_id="421">Red+</channel>
|
||||
<channel lang="es" xmltv_id="SenalColombia.co" site_id="570">Señal Colombia</channel>
|
||||
<channel lang="es" xmltv_id="Sextreme.br" site_id="565">Sextreme</channel>
|
||||
<channel lang="es" xmltv_id="SinLimites.co" site_id="526">Sin Límites</channel>
|
||||
<channel lang="es" xmltv_id="SonyChannelAndes.us" site_id="571">Sony Channel Andes</channel>
|
||||
<channel lang="es" xmltv_id="SpaceAlternate.us" site_id="574">Space Chile</channel>
|
||||
<channel lang="es" xmltv_id="StarChannelColombia.co" site_id="505">Star Channel</channel>
|
||||
<channel lang="es" xmltv_id="StarLifePanregional.us" site_id="502">Star Life</channel>
|
||||
<channel lang="es" xmltv_id="StudioUniversalChile.cl" site_id="577">Studio Universal Chile</channel>
|
||||
<channel lang="es" xmltv_id="TBSPanregional.us" site_id="578">TBS</channel>
|
||||
<channel lang="es" xmltv_id="TeleAmiga.co" site_id="579">Tele Amiga</channel>
|
||||
<channel lang="es" xmltv_id="Teleantioquia.co" site_id="580">Teleantioquia</channel>
|
||||
<channel lang="es" xmltv_id="Telecafe.co" site_id="581">Telecafé</channel>
|
||||
<channel lang="es" xmltv_id="Telecaribe.co" site_id="582">Telecaribe</channel>
|
||||
<channel lang="es" xmltv_id="Teleislas.co" site_id="922">Teleislas</channel>
|
||||
<channel lang="es" xmltv_id="TelemundoCentralAmerica.us" site_id="697">Telemundo</channel>
|
||||
<channel lang="es" xmltv_id="Telepacifico.co" site_id="585">Telepacífico</channel>
|
||||
<channel lang="es" xmltv_id="TLCLatinAmerica.us" site_id="587">TLC</channel>
|
||||
<channel lang="es" xmltv_id="TlnovelasLatinAmerica.mx" site_id="584">Tlnovelas</channel>
|
||||
<channel lang="es" xmltv_id="TNTChile.cl" site_id="589">TNT Chile</channel>
|
||||
<channel lang="es" xmltv_id="TNTSeriesPanregional.us" site_id="524">TNT Series</channel>
|
||||
<channel lang="es" xmltv_id="Trece.co" site_id="392">Trece</channel>
|
||||
<channel lang="es" xmltv_id="truTVLatinAmerica.us" site_id="592">Tru TV</channel>
|
||||
<channel lang="es" xmltv_id="TVAgro.co" site_id="593">TV Agro</channel>
|
||||
<channel lang="es" xmltv_id="TVFamilia.ve" site_id="1055">TV Familia</channel>
|
||||
<channel lang="es" xmltv_id="UniversalTVColombia.co" site_id="598">Universal TV</channel>
|
||||
<channel lang="es" xmltv_id="Venus.ar" site_id="601">Venus</channel>
|
||||
<channel lang="es" xmltv_id="VePlusPanregional.ve" site_id="652">Ve Plus Panregional</channel>
|
||||
<channel lang="es" xmltv_id="WarnerChannelPanregional.us" site_id="608">Warner Channel Panregional</channel>
|
||||
<channel lang="es" xmltv_id="WinSports.co" site_id="828">Win Sports</channel>
|
||||
<channel lang="es" xmltv_id="Zoom.co" site_id="611">Zoom</channel>
|
||||
</channels>
|
||||
</site>
|
||||
56
sites/siba.com.co/siba.com.co.config.js
Normal file
56
sites/siba.com.co/siba.com.co.config.js
Normal file
@@ -0,0 +1,56 @@
|
||||
const dayjs = require('dayjs')
|
||||
|
||||
module.exports = {
|
||||
site: 'siba.com.co',
|
||||
days: 2,
|
||||
url: 'http://devportal.siba.com.co/index.php?action=grilla',
|
||||
request: {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
|
||||
},
|
||||
data({ channel, date }) {
|
||||
const params = new URLSearchParams()
|
||||
params.append('servicio', '10')
|
||||
params.append('ini', date.unix())
|
||||
params.append('end', date.add(1, 'd').unix())
|
||||
params.append('chn', channel.site_id)
|
||||
|
||||
return params
|
||||
}
|
||||
},
|
||||
parser: function ({ content, channel }) {
|
||||
let programs = []
|
||||
const items = parseItems(content, channel)
|
||||
items.forEach(item => {
|
||||
programs.push({
|
||||
title: item.nom,
|
||||
start: parseStart(item).toJSON(),
|
||||
stop: parseStop(item).toJSON()
|
||||
})
|
||||
})
|
||||
|
||||
return programs
|
||||
}
|
||||
}
|
||||
|
||||
function parseStart(item) {
|
||||
return dayjs.unix(item.ini)
|
||||
}
|
||||
|
||||
function parseStop(item) {
|
||||
return dayjs.unix(item.fin)
|
||||
}
|
||||
|
||||
function parseContent(content, channel) {
|
||||
const data = JSON.parse(content)
|
||||
if (!data || !Array.isArray(data.list)) return null
|
||||
|
||||
return data.list.find(i => i.id === channel.site_id)
|
||||
}
|
||||
|
||||
function parseItems(content, channel) {
|
||||
const data = parseContent(content, channel)
|
||||
|
||||
return data ? data.prog : []
|
||||
}
|
||||
53
sites/siba.com.co/siba.com.co.test.js
Normal file
53
sites/siba.com.co/siba.com.co.test.js
Normal file
@@ -0,0 +1,53 @@
|
||||
// npx epg-grabber --config=sites/siba.com.co/siba.com.co.config.js --channels=sites/siba.com.co/siba.com.co.channels.xml --output=guide.xml --days=2
|
||||
|
||||
const { parser, url, request } = require('./siba.com.co.config.js')
|
||||
const dayjs = require('dayjs')
|
||||
const utc = require('dayjs/plugin/utc')
|
||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||
dayjs.extend(customParseFormat)
|
||||
dayjs.extend(utc)
|
||||
|
||||
const date = dayjs.utc('2021-11-11', 'YYYY-MM-DD').startOf('d')
|
||||
const channel = {
|
||||
site_id: '395',
|
||||
xmltv_id: 'CanalClaro.cl'
|
||||
}
|
||||
const content = `{"list":[{"id":"395","nom":"CANAL CLARO","num":"102","logo":"7c4b9e8566a6e867d1db4c7ce845f1f4.jpg","cat":"Exclusivos Claro","prog":[{"id":"665724465","nom":"Worst Cooks In America","ini":1636588800,"fin":1636592400}]}],"error":null}`
|
||||
|
||||
it('can generate valid url', () => {
|
||||
expect(url).toBe('http://devportal.siba.com.co/index.php?action=grilla')
|
||||
})
|
||||
|
||||
it('can generate valid request headers', () => {
|
||||
expect(request.headers).toMatchObject({
|
||||
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
|
||||
})
|
||||
})
|
||||
|
||||
it('can generate valid request data', () => {
|
||||
const result = request.data({ channel, date })
|
||||
expect(result.has('servicio')).toBe(true)
|
||||
expect(result.has('ini')).toBe(true)
|
||||
expect(result.has('end')).toBe(true)
|
||||
expect(result.has('chn')).toBe(true)
|
||||
})
|
||||
|
||||
it('can parse response', () => {
|
||||
const result = parser({ date, channel, content })
|
||||
expect(result).toMatchObject([
|
||||
{
|
||||
start: '2021-11-11T00:00:00.000Z',
|
||||
stop: '2021-11-11T01:00:00.000Z',
|
||||
title: 'Worst Cooks In America'
|
||||
}
|
||||
])
|
||||
})
|
||||
|
||||
it('can handle empty guide', () => {
|
||||
const result = parser({
|
||||
date,
|
||||
channel,
|
||||
content: `{"list":[],"error":null}`
|
||||
})
|
||||
expect(result).toMatchObject([])
|
||||
})
|
||||
Reference in New Issue
Block a user