From 57b3db1ff1cda44a4642e7c6b98f4b202cedeed6 Mon Sep 17 00:00:00 2001 From: Toha Date: Tue, 21 Nov 2023 22:49:04 +0700 Subject: [PATCH] Site transvision.co.id is gone. https://www.transvision.co.id/jadwalacara/epg now returns blank. Signed-off-by: Toha --- SITES.md | 1 - .../transvision.co.id.channels.xml | 81 ---------------- .../transvision.co.id.config.js | 93 ------------------- .../transvision.co.id.test.js | 82 ---------------- 4 files changed, 257 deletions(-) delete mode 100644 sites/transvision.co.id/transvision.co.id.channels.xml delete mode 100644 sites/transvision.co.id/transvision.co.id.config.js delete mode 100644 sites/transvision.co.id/transvision.co.id.test.js diff --git a/SITES.md b/SITES.md index 8f730581..4d8d6e01 100644 --- a/SITES.md +++ b/SITES.md @@ -131,7 +131,6 @@ | telsu.fi | 🟢 | | | tivu.tv | 🟢 | | | toonamiaftermath.com | 🟢 | | -| transvision.co.id | 🟢 | | | turksatkablo.com.tr | 🟢 | | | tv.blue.ch | 🟢 | | | tv.cctv.com | 🟢 | | diff --git a/sites/transvision.co.id/transvision.co.id.channels.xml b/sites/transvision.co.id/transvision.co.id.channels.xml deleted file mode 100644 index 044ebae4..00000000 --- a/sites/transvision.co.id/transvision.co.id.channels.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - ABC Australia - Al Jazeera - Al Quran Al Kareem - Animax - AniPlus - ANTV - Arirang - AFN HD - AXN HD - Baby First - BeritaSatu - Bioskop Indonesia - Bloomberg TV - Boomerang HD - Cartoon Network HD - CCTV 4 - Celestial Movies - CGTN - CGTN Documentary - Cinema World HD - CINEMAX - Channel NewsAsia - CNBC Asia - CNN Indonesia HD - CNN International HD - Crime & Investigation HD - DAAI TV - Da Vinci - 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 - HBO Family HD - HBO Hits HD - HBO Signature HD - HISTORY2 HD - History 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 - Nickelodeon - Nick Jr. - !nsert - ONE HD - RTV - RCTI - Rock Entertainment HD - Russia Today - SCTV - Thrill - T-Music - Trans7 HD - TransTV HD - TV 5 Monde - tvN HD - tvOne - TVRI - Warner TV HD - Zee Bioskop - diff --git a/sites/transvision.co.id/transvision.co.id.config.js b/sites/transvision.co.id/transvision.co.id.config.js deleted file mode 100644 index ae1ecc21..00000000 --- a/sites/transvision.co.id/transvision.co.id.config.js +++ /dev/null @@ -1,93 +0,0 @@ -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', - days: 2, - 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' - } - }, - parser({ content, date }) { - const programs = [] - const items = parseItems(content) - for (const item of items) { - const prev = programs[programs.length - 1] - const start = parseStart(item, date) - if (prev) prev.stop = start - const stop = start.add(30, 'm') - programs.push({ - title: parseTitle(item), - description: parseDescription(item), - start, - stop - }) - } - - 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 - } -} - -function parseDescription(item) { - return cheerio.load(item)('td:last-child').text() -} - -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.test.js b/sites/transvision.co.id/transvision.co.id.test.js deleted file mode 100644 index b04f97f7..00000000 --- a/sites/transvision.co.id/transvision.co.id.test.js +++ /dev/null @@ -1,82 +0,0 @@ -// npm run grab -- --site=transvision.co.id - -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-10', 'YYYY-MM-DD').startOf('d') -const channel = { - site_id: 'TRIS', - xmltv_id: 'nsert.id' -} -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') -}) - -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-10') - expect(result.get('ValidateEPG[sinopsis]')).toBe('') - expect(result.get('yt0')).toBe('PROSES') -}) - -it('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-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-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-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-10T16:00:00.000Z', - stop: '2022-03-10T16:30:00.000Z' - } - ]) -}) - -it('can handle empty guide', () => { - const result = parser({ - content: '' - }) - expect(result).toMatchObject([]) -})