diff --git a/sites/x1co.com.br/__data__/content.xml b/sites/x1co.com.br/__data__/content.xml new file mode 100644 index 000000000..e09cf91b6 --- /dev/null +++ b/sites/x1co.com.br/__data__/content.xml @@ -0,0 +1,621 @@ + + + + + NickOnline + + + + Bob Esponja + T5 Ep37 + Bob Esponja — T5 Ep37 + Infantil + + + + Bob Esponja + T9 Ep41 + Bob Esponja — T9 Ep41 + Infantil + + + + Bob Esponja + T9 Ep198b + Bob Esponja — T9 Ep198b + Infantil + + + Intervalo Comercial + Publicidade + + + + NickCine + Hotel 4 + NickCine — Hotel 4 + Infantil + + + + Osmar, A Primeira Fatia do Pão de Forma + Infantil + + + + Bob Esponja + T7 Ep33 + Bob Esponja — T7 Ep33 + Infantil + + + + Bob Esponja + T5 Ep37 + Bob Esponja — T5 Ep37 + Infantil + + + + Os Casagrandes + Ep Dontcopy + Os Casagrandes — Ep Dontcopy + Infantil + + + + Bob Esponja + T2 Ep01 + Bob Esponja — T2 Ep01 + Infantil + + + + The Loud House + T3 Ep18 + The Loud House — T3 Ep18 + Infantil + + + + The Loud House + T2 Ep20 + The Loud House — T2 Ep20 + Infantil + + + + Bob Esponja + Especial + Bob Esponja — Especial + Infantil + + + + Bob Esponja + Medodehmbrgdesiri + Bob Esponja — Medodehmbrgdesiri + Infantil + + + + Bob Esponja + Infantil + + + + The Loud House + Ep N Sei Esqueci + The Loud House — Ep N Sei Esqueci + Infantil + + + + Bob Esponja + T10 Ep09 + Bob Esponja — T10 Ep09 + Infantil + + + + Bob Esponja + Ep Planeta Da Aguaviva + Bob Esponja — Ep Planeta Da Aguaviva + Infantil + + + + Os Casagrandes + Ep Carl + Os Casagrandes — Ep Carl + Infantil + + + + Tainá e Os Guardiões da Amazônia + Infantil + + + + Tainá e Os Guardiões da Amazônia + Ep Sapo Magico + Tainá e Os Guardiões da Amazônia — Ep Sapo Magico + Infantil + + + + Wylde Pak + Infantil + + + + Tainá e Os Guardiões da Amazônia + Ep Monstro + Tainá e Os Guardiões da Amazônia — Ep Monstro + Infantil + + + + The Loud House + Ep Lembre A Data + The Loud House — Ep Lembre A Data + Infantil + + + + The Loud House + T2 Ep02 + The Loud House — T2 Ep02 + Infantil + + + + Bob Esponja + T3 Ep29 + Bob Esponja — T3 Ep29 + Infantil + + + + Bob Esponja + T14 Ep13 + Bob Esponja — T14 Ep13 + Infantil + + + + Osmar, A Primeira Fatia do Pão de Forma + Infantil + + + + Bob Esponja + T4 Ep37 + Bob Esponja — T4 Ep37 + Infantil + + + + Bob Esponja + T14 Ep02 + Bob Esponja — T14 Ep02 + Infantil + + + + Bob Esponja + T7 Ep14 + Bob Esponja — T7 Ep14 + Infantil + + + + Bob Esponja + T11 Ep28 + Bob Esponja — T11 Ep28 + Infantil + + + + Bob Esponja + Ep Doidos Pela Banda + Bob Esponja — Ep Doidos Pela Banda + Infantil + + + + Wylde Pak + S01e03 + Wylde Pak — S01e03 + Infantil + + + + Bob Esponja + T6 Ep08 + Bob Esponja — T6 Ep08 + Infantil + + + + Bob Esponja + T2 Ep32 + Bob Esponja — T2 Ep32 + Infantil + + + + Bob Esponja + Outro + Bob Esponja — Outro + Infantil + + + + Bob Esponja + T10 Ep5 + Bob Esponja — T10 Ep5 + Infantil + + + + The Loud House + T4 Ep01 + The Loud House — T4 Ep01 + Infantil + + + + The Loud House + Thlodhoset02ep08 + The Loud House — Thlodhoset02ep08 + Infantil + + + + Bob Esponja + Caderninho Amarelo + Bob Esponja — Caderninho Amarelo + Infantil + + + + Bob Esponja + T14 Ep05 + Bob Esponja — T14 Ep05 + Infantil + + + + Bob Esponja + T4 Ep05 + Bob Esponja — T4 Ep05 + Infantil + + + + Bob Esponja + T1 Ep28 + Bob Esponja — T1 Ep28 + Infantil + + + + Bob Esponja + O Check Up + Bob Esponja — O Check Up + Infantil + + + + Bob Esponja + T13 Ep1 + Bob Esponja — T13 Ep1 + Infantil + + + + Bob Esponja + Ep Gaga Gogo + Bob Esponja — Ep Gaga Gogo + Infantil + + + + The Loud House + Thlodhoset01ep22 + The Loud House — Thlodhoset01ep22 + Infantil + + + + Bob Esponja + T5 Ep37 + Bob Esponja — T5 Ep37 + Infantil + + + + Bob Esponja + T14 Ep05 + Bob Esponja — T14 Ep05 + Infantil + + + + Bob Esponja + T2 Ep01 + Bob Esponja — T2 Ep01 + Infantil + + + + Bob Esponja + Especial + Bob Esponja — Especial + Infantil + + + + Bob Esponja + T2 Ep32 + Bob Esponja — T2 Ep32 + Infantil + + + + Bob Esponja + T9 Ep198b + Bob Esponja — T9 Ep198b + Infantil + + + + Osmar, A Primeira Fatia do Pão de Forma + Infantil + + + + The Loud House + T4 Ep01 + The Loud House — T4 Ep01 + Infantil + + + + Bob Esponja + T7 Ep14 + Bob Esponja — T7 Ep14 + Infantil + + + + Bob Esponja + O Check Up + Bob Esponja — O Check Up + Infantil + + + + Bob Esponja + Ep Planeta Da Aguaviva + Bob Esponja — Ep Planeta Da Aguaviva + Infantil + + + + Bob Esponja + T9 Ep41 + Bob Esponja — T9 Ep41 + Infantil + + + + The Loud House + Ep N Sei Esqueci + The Loud House — Ep N Sei Esqueci + Infantil + + + + The Loud House + Ep Lembre A Data + The Loud House — Ep Lembre A Data + Infantil + + + + Bob Esponja + T4 Ep05 + Bob Esponja — T4 Ep05 + Infantil + + + + Wylde Pak + S01e03 + Wylde Pak — S01e03 + Infantil + + + + Bob Esponja + T4 Ep37 + Bob Esponja — T4 Ep37 + Infantil + + + + Bob Esponja + T10 Ep09 + Bob Esponja — T10 Ep09 + Infantil + + + + Bob Esponja + Ep Gaga Gogo + Bob Esponja — Ep Gaga Gogo + Infantil + + + + Bob Esponja + Infantil + + + + Bob Esponja + Ep Doidos Pela Banda + Bob Esponja — Ep Doidos Pela Banda + Infantil + + + + The Loud House + T2 Ep20 + The Loud House — T2 Ep20 + Infantil + + + + Tainá e Os Guardiões da Amazônia + Ep Sapo Magico + Tainá e Os Guardiões da Amazônia — Ep Sapo Magico + Infantil + + + + Tainá e Os Guardiões da Amazônia + Ep Monstro + Tainá e Os Guardiões da Amazônia — Ep Monstro + Infantil + + + + Bob Esponja + T14 Ep13 + Bob Esponja — T14 Ep13 + Infantil + + + + The Loud House + Thlodhoset02ep08 + The Loud House — Thlodhoset02ep08 + Infantil + + + + Bob Esponja + T11 Ep28 + Bob Esponja — T11 Ep28 + Infantil + + + + The Loud House + T3 Ep18 + The Loud House — T3 Ep18 + Infantil + + + + Bob Esponja + T3 Ep29 + Bob Esponja — T3 Ep29 + Infantil + + + + Os Casagrandes + Ep Dontcopy + Os Casagrandes — Ep Dontcopy + Infantil + + + + Osmar, A Primeira Fatia do Pão de Forma + Infantil + + + + Bob Esponja + T1 Ep28 + Bob Esponja — T1 Ep28 + Infantil + + + + Bob Esponja + T14 Ep02 + Bob Esponja — T14 Ep02 + Infantil + + + + Bob Esponja + T7 Ep33 + Bob Esponja — T7 Ep33 + Infantil + + + + Bob Esponja + T10 Ep5 + Bob Esponja — T10 Ep5 + Infantil + + + + Bob Esponja + Outro + Bob Esponja — Outro + Infantil + + + + Os Casagrandes + Ep Carl + Os Casagrandes — Ep Carl + Infantil + + + + Wylde Pak + Infantil + + + + Bob Esponja + T6 Ep08 + Bob Esponja — T6 Ep08 + Infantil + + + + Bob Esponja + T13 Ep1 + Bob Esponja — T13 Ep1 + Infantil + + + + Bob Esponja + Caderninho Amarelo + Bob Esponja — Caderninho Amarelo + Infantil + + + + The Loud House + Thlodhoset01ep22 + The Loud House — Thlodhoset01ep22 + Infantil + + + + Tainá e Os Guardiões da Amazônia + Infantil + + diff --git a/sites/x1co.com.br/readme.md b/sites/x1co.com.br/readme.md new file mode 100644 index 000000000..9c60e6f02 --- /dev/null +++ b/sites/x1co.com.br/readme.md @@ -0,0 +1,21 @@ +# x1co.com.br + +https://x1co.com.br/epg/epg.xml + +### Download the guide + +```sh +npm run grab --- --sites=x1co.com.br +``` + +### Update channel list + +```sh +npm run channels:parse --- --config=./sites/x1co.com.br/x1co.com.br.config.js --output=./sites/x1co.com.br/x1co.com.br.channels.xml +``` + +### Test + +```sh +npm test --- x1co.com.br +``` diff --git a/sites/x1co.com.br/x1co.com.br.channels.xml b/sites/x1co.com.br/x1co.com.br.channels.xml new file mode 100644 index 000000000..2da15fc99 --- /dev/null +++ b/sites/x1co.com.br/x1co.com.br.channels.xml @@ -0,0 +1,4 @@ + + + NickOnline + diff --git a/sites/x1co.com.br/x1co.com.br.config.js b/sites/x1co.com.br/x1co.com.br.config.js new file mode 100644 index 000000000..4fd2fb96d --- /dev/null +++ b/sites/x1co.com.br/x1co.com.br.config.js @@ -0,0 +1,39 @@ +const parser = require('epg-parser') + +module.exports = { + site: 'x1co.com.br', + days: 2, + url: 'https://x1co.com.br/epg/epg.xml', + parser({ content, channel, date }) { + let programs = [] + const items = parseItems(content, channel, date) + items.forEach(item => { + programs.push({ + title: item.title?.[0]?.value, + subTitle: item.subTitle?.[0]?.value, + category: item.category?.[0]?.value, + description: item.desc?.[0]?.value, + start: item.start, + stop: item.stop + }) + }) + + return programs + }, + channels() { + return [ + { + name: 'NickOnline', + site_id: 'nickonline.br', + xmltv_id: 'NickOnline.br', + lang: 'pt' + } + ] + } +} + +function parseItems(content, channel, date) { + const { programs } = parser.parse(content) + + return programs.filter(p => p.channel === channel.site_id && date.isSame(p.start, 'day')) +} diff --git a/sites/x1co.com.br/x1co.com.br.test.js b/sites/x1co.com.br/x1co.com.br.test.js new file mode 100644 index 000000000..7444e728e --- /dev/null +++ b/sites/x1co.com.br/x1co.com.br.test.js @@ -0,0 +1,43 @@ +const { parser, url } = require('./x1co.com.br.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 date = dayjs.utc('2026-05-04', 'YYYY-MM-DD').startOf('d') +const channel = { site_id: 'nickonline.br' } + +it('can generate valid url', () => { + expect(url).toBe('https://x1co.com.br/epg/epg.xml') +}) + +it('can parse response', () => { + const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.xml')) + + const results = parser({ content, channel, date }) + + expect(results.length).toBe(46) + expect(results[0]).toMatchObject({ + title: 'Bob Esponja', + subTitle: 'T13 Ep1', + description: 'Bob Esponja — T13 Ep1', + category: 'Infantil', + start: '2026-05-04T00:02:39.000Z', + stop: '2026-05-04T00:14:06.000Z' + }) + expect(results[45]).toMatchObject({ + title: 'Tainá e Os Guardiões da Amazônia', + category: 'Infantil', + start: '2026-05-04T11:28:01.000Z', + stop: '2026-05-04T11:39:41.000Z' + }) +}) + +it('can handle empty guide', () => { + const results = parser({ content: '' }) + + expect(results).toMatchObject([]) +})