From a79c1259c551d560c185c6c32fa858abde3bba02 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Sun, 3 May 2026 15:31:06 +0300 Subject: [PATCH 1/7] Create content.xml --- sites/x1co.com.br/__data__/content.xml | 621 +++++++++++++++++++++++++ 1 file changed, 621 insertions(+) create mode 100644 sites/x1co.com.br/__data__/content.xml 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 + + From 9befe4ec6a2092ad7ab586194c0dda8b67e7dde9 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Sun, 3 May 2026 15:31:28 +0300 Subject: [PATCH 2/7] Create x1co.com.br.test.js --- sites/x1co.com.br/x1co.com.br.test.js | 43 +++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 sites/x1co.com.br/x1co.com.br.test.js 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([]) +}) From 4e9a006e8ee4e21d065fa3cf9e84d3806e801b6f Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Sun, 3 May 2026 15:31:43 +0300 Subject: [PATCH 3/7] Create x1co.com.br.config.js --- sites/x1co.com.br/x1co.com.br.config.js | 39 +++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 sites/x1co.com.br/x1co.com.br.config.js 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..e0505c0fb --- /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: function ({ 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')) +} From cdfcdbfee01a1f541b4bc82b59165de9c3565923 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Sun, 3 May 2026 15:31:51 +0300 Subject: [PATCH 4/7] Create x1co.com.br.channels.xml --- sites/x1co.com.br/x1co.com.br.channels.xml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 sites/x1co.com.br/x1co.com.br.channels.xml 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..bf9391fba --- /dev/null +++ b/sites/x1co.com.br/x1co.com.br.channels.xml @@ -0,0 +1,4 @@ + + + NickOnline + From 64577ae9ed6c572d3dd1ff8d975640364c7ae6cc Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Sun, 3 May 2026 15:32:01 +0300 Subject: [PATCH 5/7] Create readme.md --- sites/x1co.com.br/readme.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 sites/x1co.com.br/readme.md 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 +``` From 7972e8565950fc19bf48e6a10a0ac6478d65efa6 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Thu, 7 May 2026 21:03:17 +0300 Subject: [PATCH 6/7] Update x1co.com.br.config.js --- sites/x1co.com.br/x1co.com.br.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/x1co.com.br/x1co.com.br.config.js b/sites/x1co.com.br/x1co.com.br.config.js index e0505c0fb..4fd2fb96d 100644 --- a/sites/x1co.com.br/x1co.com.br.config.js +++ b/sites/x1co.com.br/x1co.com.br.config.js @@ -4,7 +4,7 @@ module.exports = { site: 'x1co.com.br', days: 2, url: 'https://x1co.com.br/epg/epg.xml', - parser: function ({ content, channel, date }) { + parser({ content, channel, date }) { let programs = [] const items = parseItems(content, channel, date) items.forEach(item => { From 86b77b373d05b867f43a32081cc2ac81171adff9 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Thu, 7 May 2026 21:04:16 +0300 Subject: [PATCH 7/7] Update x1co.com.br.channels.xml --- sites/x1co.com.br/x1co.com.br.channels.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/x1co.com.br/x1co.com.br.channels.xml b/sites/x1co.com.br/x1co.com.br.channels.xml index bf9391fba..2da15fc99 100644 --- a/sites/x1co.com.br/x1co.com.br.channels.xml +++ b/sites/x1co.com.br/x1co.com.br.channels.xml @@ -1,4 +1,4 @@ - NickOnline + NickOnline