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 Today | Insert 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 | Brownis | Brownis atau obrolan manis merupakan program talkshow segar yang dipandu oleh Ruben Onsu bersama Ivan Gunawan. |
01:30:00 | Warga +62 | Warga +62 menghadirkan trend penyebaran video/momen lucu yang juga dikenal sebagai video lucu Indonesia yang tersebar di media sosial. |
23:00:00 | Insert | Insert 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([])
-})