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