From 71c205236f190cde012119bb1f59a6314c9bb829 Mon Sep 17 00:00:00 2001 From: ta Date: Tue, 22 Feb 2022 17:25:39 +0700 Subject: [PATCH 01/11] transvision --- .../transvision.co.id.config.js | 104 ++++++++++++++++++ .../transvision.co.id_id.channels.xml | 83 ++++++++++++++ 2 files changed, 187 insertions(+) create mode 100644 sites/transvision.co.id/transvision.co.id.config.js create mode 100644 sites/transvision.co.id/transvision.co.id_id.channels.xml diff --git a/sites/transvision.co.id/transvision.co.id.config.js b/sites/transvision.co.id/transvision.co.id.config.js new file mode 100644 index 00000000..e532c22b --- /dev/null +++ b/sites/transvision.co.id/transvision.co.id.config.js @@ -0,0 +1,104 @@ +const axios = require('axios') +const cheerio = require('cheerio') +const dayjs = require('dayjs') +const utc = require('dayjs/plugin/utc') +const timezone = require('dayjs/plugin/timezone') +const customParseFormat = require('dayjs/plugin/customParseFormat') + +dayjs.extend(utc) +dayjs.extend(timezone) +dayjs.extend(customParseFormat) + +module.exports = { + site: 'transvision.co.id', + url: `https://www.transvision.co.id/jadwalacara/epg`, + request: { + method: 'POST', + data: function ({ channel, date }) { + const formData = new URLSearchParams() + formData.append('ValidateEPG[channel_name]', channel.site_id) + formData.append('ValidateEPG[tanggal]', date.format('YYYY-MM-DD')) + formData.append('ValidateEPG[sinopsis]', '') + formData.append('yt0', 'PROSES') + + return formData + }, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }, + async parser({ content, date }) { + const programs = [] + const items = parseItems(content) + for (const item of items) { + const title = parseTitle(item) + const start = parseStart(item, date) + const duration = parseDuration(item) + const stop = start.add(duration, 'm') + const description = await loadDescription(item) + + programs.push({ + title, + description, + start: start.toJSON(), + stop: stop.toJSON() + }) + } + + return programs + }, + async channels() { + const data = await axios + .get('https://www.transvision.co.id/jadwalacara/epg') + .then(response => response.data) + .catch(console.log) + + const $ = cheerio.load(data) + const items = $('#ValidateEPG_channel_name option').toArray() + const channels = items.map(item => { + const $item = cheerio.load(item) + + return { + lang: 'id', + site_id: $item('*').attr('value'), + name: $item('*').text() + } + }) + + return channels + } +} + +async function loadDescription(item) { + return cheerio.load(item)('td:last-child').text() +} + +function parseDuration(item) { + const $ = cheerio.load(item) + let duration = $('th').text() + const match = duration.match(/(\d{2}):(\d{2}):\d{2}/) + const hours = parseInt(match[1]) + const minutes = parseInt(match[2]) + + return hours * 60 + minutes +} + +function parseStart(item, date) { + const $ = cheerio.load(item) + let time = $('th').text() + time = `${date.format('DD/MM/YYYY')} ${time}` + + return dayjs.tz(time, 'DD/MM/YYYY HH:mm', 'Asia/Jakarta') +} + +function parseTitle(item) { + const $ = cheerio.load(item) + + return $('td:first-of-type').text() +} + +function parseItems(content) { + const $ = cheerio.load(content) + + return $('table tbody tr').toArray() +} diff --git a/sites/transvision.co.id/transvision.co.id_id.channels.xml b/sites/transvision.co.id/transvision.co.id_id.channels.xml new file mode 100644 index 00000000..6bc16fcb --- /dev/null +++ b/sites/transvision.co.id/transvision.co.id_id.channels.xml @@ -0,0 +1,83 @@ + + + + !nsert + ABC Australia + AFN HD + Al Jazeera + Al Quran Al Kareem + Animax + AniPlus + ANTV + Arirang + AXN HD + Baby First + BeritaSatu + Bioskop Indonesia + Bloomberg TV + Boomerang HD + Cartoon Network HD + CCTV 4 + Celestial Movies + CGTN + CGTN Documentary + Channel NewsAsia + Cinema World HD + CINEMAX HD + CNBC Asia + CNN Indonesia HD + CNN International HD + Crime & Investigation HD + Da Vinci + DAAI TV + Duck TV + Dunia Anak + Dunia Lain + DW + Eat N Go + Euronews + Fashion One HD + Fashion TV HD + Fight Sports HD + France 24 + GEM HD + GLOBAL TV + HBO Family HD + HBO HD + HBO Hits HD + HBO Signature HD + History HD + HISTORY2 HD + Indosiar + JakTV + Jendela + KBS World HD + Khazanah + KIX HD + Kompas TV + Lifetime HD + Lingua Channel HD + Metro TV + MNCTV + MTV Live + NHK World Premium + Nick Jr. + Nickelodeon + ONE HD + RCTI + Rock Entertainment HD + RTV + Russia Today + SCTV + T-Music + Thrill + Trans7 HD + TransTV HD + TV 5 Monde + tvN HD + tvOne + TVRI + Warner TV HD + Zee Bioskop + + From f1c3b3f53d0a2575d8f7ef5f28cdac2c2866d1da Mon Sep 17 00:00:00 2001 From: ta Date: Tue, 22 Feb 2022 17:37:23 +0700 Subject: [PATCH 02/11] fix channels --- sites/transvision.co.id/transvision.co.id_id.channels.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sites/transvision.co.id/transvision.co.id_id.channels.xml b/sites/transvision.co.id/transvision.co.id_id.channels.xml index 6bc16fcb..f573dd58 100644 --- a/sites/transvision.co.id/transvision.co.id_id.channels.xml +++ b/sites/transvision.co.id/transvision.co.id_id.channels.xml @@ -1,10 +1,10 @@ - !nsert + !nsert ABC Australia AFN HD - Al Jazeera + Al Jazeera Al Quran Al Kareem Animax AniPlus @@ -63,7 +63,7 @@ NHK World Premium Nick Jr. Nickelodeon - ONE HD + ONE HD RCTI Rock Entertainment HD RTV @@ -74,7 +74,7 @@ Trans7 HD TransTV HD TV 5 Monde - tvN HD + tvN HD tvOne TVRI Warner TV HD From 466628fc97df7859ebdf0a7728b7c34aa41ff1dc Mon Sep 17 00:00:00 2001 From: ta Date: Tue, 22 Feb 2022 20:08:12 +0700 Subject: [PATCH 03/11] fix channels --- sites/transvision.co.id/transvision.co.id_id.channels.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sites/transvision.co.id/transvision.co.id_id.channels.xml b/sites/transvision.co.id/transvision.co.id_id.channels.xml index f573dd58..8aa1fb34 100644 --- a/sites/transvision.co.id/transvision.co.id_id.channels.xml +++ b/sites/transvision.co.id/transvision.co.id_id.channels.xml @@ -3,7 +3,7 @@ !nsert ABC Australia - AFN HD + AFN HD Al Jazeera Al Quran Al Kareem Animax @@ -40,8 +40,8 @@ Fashion TV HD Fight Sports HD France 24 - GEM HD - GLOBAL TV + GEM HD + GLOBAL TV HBO Family HD HBO HD HBO Hits HD From 2826d69399481e2a80190cf96013d4ba77d854eb Mon Sep 17 00:00:00 2001 From: ta Date: Fri, 25 Feb 2022 05:29:26 +0700 Subject: [PATCH 04/11] fix channels --- sites/transvision.co.id/transvision.co.id_id.channels.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/transvision.co.id/transvision.co.id_id.channels.xml b/sites/transvision.co.id/transvision.co.id_id.channels.xml index 8aa1fb34..c9df3086 100644 --- a/sites/transvision.co.id/transvision.co.id_id.channels.xml +++ b/sites/transvision.co.id/transvision.co.id_id.channels.xml @@ -67,9 +67,9 @@ RCTI Rock Entertainment HD RTV - Russia Today + Russia Today SCTV - T-Music + T-Music Thrill Trans7 HD TransTV HD From 6a21a496289a9ce3ef11c55824bd6d276c70b86f Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Wed, 2 Mar 2022 17:42:55 +0300 Subject: [PATCH 05/11] Update transvision.co.id.config.js --- sites/transvision.co.id/transvision.co.id.config.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sites/transvision.co.id/transvision.co.id.config.js b/sites/transvision.co.id/transvision.co.id.config.js index e532c22b..8782136a 100644 --- a/sites/transvision.co.id/transvision.co.id.config.js +++ b/sites/transvision.co.id/transvision.co.id.config.js @@ -27,7 +27,7 @@ module.exports = { 'Content-Type': 'application/x-www-form-urlencoded' } }, - async parser({ content, date }) { + parser({ content, date }) { const programs = [] const items = parseItems(content) for (const item of items) { @@ -35,13 +35,13 @@ module.exports = { const start = parseStart(item, date) const duration = parseDuration(item) const stop = start.add(duration, 'm') - const description = await loadDescription(item) + const description = parseDescription(item) programs.push({ title, description, - start: start.toJSON(), - stop: stop.toJSON() + start, + stop }) } @@ -69,7 +69,7 @@ module.exports = { } } -async function loadDescription(item) { +function parseDescription(item) { return cheerio.load(item)('td:last-child').text() } From 8708ea0ef0616f8720e783a83bf036cad932be1b Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Wed, 2 Mar 2022 17:43:17 +0300 Subject: [PATCH 06/11] Create transvision.co.id.test.js --- .../transvision.co.id.test.js | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 sites/transvision.co.id/transvision.co.id.test.js diff --git a/sites/transvision.co.id/transvision.co.id.test.js b/sites/transvision.co.id/transvision.co.id.test.js new file mode 100644 index 00000000..92e25de2 --- /dev/null +++ b/sites/transvision.co.id/transvision.co.id.test.js @@ -0,0 +1,75 @@ +const { parser, url, request } = require('./transvision.co.id.config.js') +const dayjs = require('dayjs') +const utc = require('dayjs/plugin/utc') +dayjs.extend(utc) + +const date = dayjs.utc('2022-03-02', 'YYYY-MM-DD').startOf('d') +const channel = { + site_id: 'TRIS', + xmltv_id: 'nsert.id' +} +const content = `
Judul Sinopsis
00:00:00 Insert TodayInsert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.
00:00:00 Insert TodayInsert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.
01:00:00 BrownisBrownis atau obrolan manis merupakan program talkshow segar yang dipandu oleh Ruben Onsu bersama Ivan Gunawan.
01:00:00 BrownisBrownis atau obrolan manis merupakan program talkshow segar yang dipandu oleh Ruben Onsu bersama Ivan Gunawan.
02:30:00 Warga +62Warga +62 menghadirkan trend penyebaran video/momen lucu yang juga dikenal sebagai video lucu Indonesia yang tersebar di media sosial.
02:30:00 Warga +62Warga +62 menghadirkan trend penyebaran video/momen lucu yang juga dikenal sebagai video lucu Indonesia yang tersebar di media sosial.
23:00:00 InsertInsert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.
23:00:00 InsertInsert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.
` + +it('can generate valid url', () => { + expect(url).toBe('https://www.transvision.co.id/jadwalacara/epg') +}) + +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('ValidateEPG[channel_name]')).toBe('TRIS') + expect(result.get('ValidateEPG[tanggal]')).toBe('2022-03-02') + expect(result.get('ValidateEPG[sinopsis]')).toBe('') + expect(result.get('yt0')).toBe('PROSES') +}) + +fit('can parse response', () => { + const result = parser({ content, channel, date }).map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) + + expect(result).toMatchObject([ + { + title: 'Insert Today', + description: 'Insert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.', + start: '2022-03-01T17:00:00.000Z', + stop: '2022-03-01T18:00:00.000Z' + }, + { + title: 'Brownis', + description: 'Brownis atau obrolan manis merupakan program talkshow segar yang dipandu oleh Ruben Onsu bersama Ivan Gunawan.', + start: '2022-03-01T18:00:00.000Z', + stop: '2022-03-01T18:30:00.000Z' + }, + { + title: 'Warga +62', + description: 'Warga +62 menghadirkan trend penyebaran video/momen lucu yang juga dikenal sebagai video lucu Indonesia yang tersebar di media sosial.', + start: '2022-03-01T18:30:00.000Z', + stop: '2022-03-02T16:00:00.000Z' + }, + { + title: 'Insert', + description: 'Insert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.', + start: '2022-03-02T16:00:00.000Z', + stop: '2022-03-02T17:00:00.000Z' + } + ]) +}) + +it('can handle empty guide', () => { + const result = parser({ + content: `` + }) + expect(result).toMatchObject([]) +}) From 3dd4c46efb9fb9b5da763134967693acb8bcf625 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Wed, 2 Mar 2022 17:44:22 +0300 Subject: [PATCH 07/11] Update transvision.co.id.test.js --- sites/transvision.co.id/transvision.co.id.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/transvision.co.id/transvision.co.id.test.js b/sites/transvision.co.id/transvision.co.id.test.js index 92e25de2..e66c00ed 100644 --- a/sites/transvision.co.id/transvision.co.id.test.js +++ b/sites/transvision.co.id/transvision.co.id.test.js @@ -32,7 +32,7 @@ it('can generate valid request data', () => { expect(result.get('yt0')).toBe('PROSES') }) -fit('can parse response', () => { +it('can parse response', () => { const result = parser({ content, channel, date }).map(p => { p.start = p.start.toJSON() p.stop = p.stop.toJSON() From d97efe669d2315ad099e838c6415436cebb3120a Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Thu, 10 Mar 2022 14:39:19 +0300 Subject: [PATCH 08/11] Update transvision.co.id.test.js --- .../transvision.co.id.test.js | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/sites/transvision.co.id/transvision.co.id.test.js b/sites/transvision.co.id/transvision.co.id.test.js index e66c00ed..9773a33a 100644 --- a/sites/transvision.co.id/transvision.co.id.test.js +++ b/sites/transvision.co.id/transvision.co.id.test.js @@ -3,12 +3,12 @@ const dayjs = require('dayjs') const utc = require('dayjs/plugin/utc') dayjs.extend(utc) -const date = dayjs.utc('2022-03-02', 'YYYY-MM-DD').startOf('d') +const date = dayjs.utc('2022-03-10', 'YYYY-MM-DD').startOf('d') const channel = { site_id: 'TRIS', xmltv_id: 'nsert.id' } -const content = `
Judul Sinopsis
00:00:00 Insert TodayInsert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.
00:00:00 Insert TodayInsert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.
01:00:00 BrownisBrownis atau obrolan manis merupakan program talkshow segar yang dipandu oleh Ruben Onsu bersama Ivan Gunawan.
01:00:00 BrownisBrownis atau obrolan manis merupakan program talkshow segar yang dipandu oleh Ruben Onsu bersama Ivan Gunawan.
02:30:00 Warga +62Warga +62 menghadirkan trend penyebaran video/momen lucu yang juga dikenal sebagai video lucu Indonesia yang tersebar di media sosial.
02:30:00 Warga +62Warga +62 menghadirkan trend penyebaran video/momen lucu yang juga dikenal sebagai video lucu Indonesia yang tersebar di media sosial.
23:00:00 InsertInsert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.
23:00:00 InsertInsert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.
` +const content = `
00:00:00 Insert TodayInsert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.
01:00:00 BrownisBrownis atau obrolan manis merupakan program talkshow segar yang dipandu oleh Ruben Onsu bersama Ivan Gunawan.
01:30:00 Warga +62Warga +62 menghadirkan trend penyebaran video/momen lucu yang juga dikenal sebagai video lucu Indonesia yang tersebar di media sosial.
23:00:00 InsertInsert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.
` it('can generate valid url', () => { expect(url).toBe('https://www.transvision.co.id/jadwalacara/epg') @@ -27,7 +27,7 @@ it('can generate valid request headers', () => { it('can generate valid request data', () => { const result = request.data({ channel, date }) expect(result.get('ValidateEPG[channel_name]')).toBe('TRIS') - expect(result.get('ValidateEPG[tanggal]')).toBe('2022-03-02') + expect(result.get('ValidateEPG[tanggal]')).toBe('2022-03-10') expect(result.get('ValidateEPG[sinopsis]')).toBe('') expect(result.get('yt0')).toBe('PROSES') }) @@ -42,27 +42,31 @@ it('can parse response', () => { expect(result).toMatchObject([ { title: 'Insert Today', - description: 'Insert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.', - start: '2022-03-01T17:00:00.000Z', - stop: '2022-03-01T18:00:00.000Z' + description: + 'Insert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.', + start: '2022-03-09T17:00:00.000Z', + stop: '2022-03-09T18:00:00.000Z' }, { title: 'Brownis', - description: 'Brownis atau obrolan manis merupakan program talkshow segar yang dipandu oleh Ruben Onsu bersama Ivan Gunawan.', - start: '2022-03-01T18:00:00.000Z', - stop: '2022-03-01T18:30:00.000Z' + description: + 'Brownis atau obrolan manis merupakan program talkshow segar yang dipandu oleh Ruben Onsu bersama Ivan Gunawan.', + start: '2022-03-09T18:00:00.000Z', + stop: '2022-03-09T18:30:00.000Z' }, { title: 'Warga +62', - description: 'Warga +62 menghadirkan trend penyebaran video/momen lucu yang juga dikenal sebagai video lucu Indonesia yang tersebar di media sosial.', - start: '2022-03-01T18:30:00.000Z', - stop: '2022-03-02T16:00:00.000Z' + description: + 'Warga +62 menghadirkan trend penyebaran video/momen lucu yang juga dikenal sebagai video lucu Indonesia yang tersebar di media sosial.', + start: '2022-03-09T18:30:00.000Z', + stop: '2022-03-10T16:00:00.000Z' }, { title: 'Insert', - description: 'Insert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.', - start: '2022-03-02T16:00:00.000Z', - stop: '2022-03-02T17:00:00.000Z' + description: + 'Insert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.', + start: '2022-03-10T16:00:00.000Z', + stop: '2022-03-10T16:30:00.000Z' } ]) }) From 85bef8b2a4b35eb1e91a72c68c5fb35634dc2c13 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Thu, 10 Mar 2022 14:39:22 +0300 Subject: [PATCH 09/11] Update transvision.co.id.config.js --- sites/transvision.co.id/transvision.co.id.config.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/sites/transvision.co.id/transvision.co.id.config.js b/sites/transvision.co.id/transvision.co.id.config.js index 8782136a..bd642041 100644 --- a/sites/transvision.co.id/transvision.co.id.config.js +++ b/sites/transvision.co.id/transvision.co.id.config.js @@ -31,15 +31,13 @@ module.exports = { const programs = [] const items = parseItems(content) for (const item of items) { - const title = parseTitle(item) + const prev = programs[programs.length - 1] const start = parseStart(item, date) - const duration = parseDuration(item) - const stop = start.add(duration, 'm') - const description = parseDescription(item) - + if (prev) prev.stop = start + const stop = start.add(30, 'm') programs.push({ - title, - description, + title: parseTitle(item), + description: parseDescription(item), start, stop }) From 3c0e768350e78d4d320b40b210b4efad08a63480 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Thu, 10 Mar 2022 14:39:24 +0300 Subject: [PATCH 10/11] Update transvision.co.id_id.channels.xml --- sites/transvision.co.id/transvision.co.id_id.channels.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/transvision.co.id/transvision.co.id_id.channels.xml b/sites/transvision.co.id/transvision.co.id_id.channels.xml index c9df3086..d3195a6b 100644 --- a/sites/transvision.co.id/transvision.co.id_id.channels.xml +++ b/sites/transvision.co.id/transvision.co.id_id.channels.xml @@ -9,7 +9,7 @@ Animax AniPlus ANTV - Arirang + Arirang AXN HD Baby First BeritaSatu @@ -35,7 +35,7 @@ Dunia Lain DW Eat N Go - Euronews + Euronews Fashion One HD Fashion TV HD Fight Sports HD From 5b9eddfd9a3d33a25f3a6d9ba29dc816a2ebffaa Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Thu, 10 Mar 2022 14:42:11 +0300 Subject: [PATCH 11/11] Update transvision.co.id.test.js --- sites/transvision.co.id/transvision.co.id.test.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sites/transvision.co.id/transvision.co.id.test.js b/sites/transvision.co.id/transvision.co.id.test.js index 9773a33a..55792d85 100644 --- a/sites/transvision.co.id/transvision.co.id.test.js +++ b/sites/transvision.co.id/transvision.co.id.test.js @@ -1,3 +1,5 @@ +// npx epg-grabber --config=sites/transvision.co.id/transvision.co.id.config.js --channels=sites/transvision.co.id/transvision.co.id_id.channels.xml --output=guide.xml --days=2 + const { parser, url, request } = require('./transvision.co.id.config.js') const dayjs = require('dayjs') const utc = require('dayjs/plugin/utc')