mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-10 09:00:07 -04:00
Merge pull request #2243 from tohenk/transvision.co.id-gone
Site transvision.co.id is gone.
This commit is contained in:
commit
4f0dedf8b6
4 changed files with 0 additions and 257 deletions
1
SITES.md
1
SITES.md
|
@ -131,7 +131,6 @@
|
||||||
| telsu.fi | 🟢 | |
|
| telsu.fi | 🟢 | |
|
||||||
| tivu.tv | 🟢 | |
|
| tivu.tv | 🟢 | |
|
||||||
| toonamiaftermath.com | 🟢 | |
|
| toonamiaftermath.com | 🟢 | |
|
||||||
| transvision.co.id | 🟢 | |
|
|
||||||
| turksatkablo.com.tr | 🟢 | |
|
| turksatkablo.com.tr | 🟢 | |
|
||||||
| tv.blue.ch | 🟢 | |
|
| tv.blue.ch | 🟢 | |
|
||||||
| tv.cctv.com | 🟢 | |
|
| tv.cctv.com | 🟢 | |
|
||||||
|
|
|
@ -1,81 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<channels>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="ABCAustralia.au" site_id="AUSK">ABC Australia</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="AlJazeera.qa" site_id="ALZA">Al Jazeera</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="AlQuranAlKareemTV.sa" site_id="AQAK">Al Quran Al Kareem</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="AnimaxAsia.sg" site_id="ANI">Animax</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="AniPlus.th" site_id="ANIP">AniPlus</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="ANTV.id" site_id="ANTV">ANTV</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="ArirangTV.kr" site_id="ARI">Arirang</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="AsianFoodNetwork.sg" site_id="AFCK">AFN HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="AXN.id" site_id="AXN">AXN HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="BabyFirst.us" site_id="BBF">Baby First</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="BTV.id" site_id="BST">BeritaSatu</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="BioskopIndonesia.id" site_id="TRBI">Bioskop Indonesia</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="BloombergTVAsia.hk" site_id="BLO">Bloomberg TV</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="BoomerangAsia.sg" site_id="BOOM">Boomerang HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="CartoonNetworkAsia.sg" site_id="CAR">Cartoon Network HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="CCTV4Asia.cn" site_id="CCTV">CCTV 4</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="CelestialMoviesIndonesia.id" site_id="CELE">Celestial Movies</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="CGTN.cn" site_id="CCNE">CGTN</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="CGTNDocumentary.cn" site_id="CC9">CGTN Documentary</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="CinemaWorld.my" site_id="CIWO">Cinema World HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="CinemaxAsia.sg" site_id="CMX">CINEMAX</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="CNA.sg" site_id="NAC">Channel NewsAsia</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="CNBCAsia.sg" site_id="CNBC">CNBC Asia</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="CNNIndonesia.id" site_id="CNI">CNN Indonesia HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="CNNInternationalAsiaPacific.hk" site_id="CNN">CNN International HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="CrimePlusInvestigationAsia.sg" site_id="CI">Crime & Investigation HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="DAAITV.id" site_id="DAAI">DAAI TV</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="DaVinciAsia.de" site_id="DVL">Da Vinci</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="ducktv.sk" site_id="DUCK">Duck TV</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="DuniaAnak.id" site_id="AND">Dunia Anak</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="DuniaLain.id" site_id="TRDU">Dunia Lain</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="DWEnglish.de" site_id="DWT">DW</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="EatNGo.id" site_id="TREA">Eat N Go</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="EuronewsEnglish.fr" site_id="EURO">Euronews</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="FashionOne.uk" site_id="F1KU">Fashion One HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="FashionTVAsia.fr" site_id="FTV">Fashion TV HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="FightSports.us" site_id="FSP">Fight Sports HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="France24English.fr" site_id="FRC">France 24</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="GEM.sg" site_id="GEM">GEM HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="GTV.id" site_id="GLO">GLOBAL TV</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="HBOAsia.sg" site_id="HBO">HBO</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="HBOFamilyAsia.sg" site_id="HBF">HBO Family HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="HBOHitsAsia.sg" site_id="HBH">HBO Hits HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="HBOSignatureAsia.sg" site_id="HBOS">HBO Signature HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="History2Asia.us" site_id="TORY">HISTORY2 HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="HistoryAsia.us" site_id="HIS">History HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="Indosiar.id" site_id="IDS">Indosiar</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="JakTV.id" site_id="JAK">JakTV</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="Jendela.id" site_id="JDL">Jendela</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="KBSWorld.kr" site_id="KBS">KBS World HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="Khazanah.id" site_id="TRKH">Khazanah</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="KIX.hk" site_id="KIX">KIX HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="KompasTV.id" site_id="KOM">Kompas TV</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="LifetimeAsia.us" site_id="LIFT">Lifetime HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="LinguaChannel.id" site_id="LIN">Lingua Channel HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="MetroTV.id" site_id="MET">Metro TV</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="MNCTV.id" site_id="MNC">MNCTV</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="MTVLive.uk" site_id="MTLU">MTV Live</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="NHKWorldPremium.jp" site_id="NHP">NHK World Premium</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="NickelodeonAsia.sg" site_id="NCK">Nickelodeon</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="NickJrAsia.sg" site_id="NCJ">Nick Jr.</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="nsert.id" site_id="TRIS">!nsert</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="ONE.sg" site_id="ONE">ONE HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="RajawaliTV.id" site_id="BCH">RTV</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="RCTI.id" site_id="RCTI">RCTI</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="ROCKEntertainment.sg" site_id="RTLK">Rock Entertainment HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="RT.ru" site_id="RUSK">Russia Today</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="SCTV.id" site_id="SCTV">SCTV</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="Thrill.hk" site_id="THR">Thrill</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="TMusic.id" site_id="ALG">T-Music</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="Trans7.id" site_id="TR7">Trans7 HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="TransTV.id" site_id="TRTV">TransTV HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="TV5MondeAsia.fr" site_id="TMO">TV 5 Monde</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="tvNAsia.hk" site_id="TVN">tvN HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="tvOne.id" site_id="TV1">tvOne</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="TVRINasional.id" site_id="TVRI">TVRI</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="WarnerTVAsia.us" site_id="WAR">Warner TV HD</channel>
|
|
||||||
<channel site="transvision.co.id" lang="id" xmltv_id="ZeeBioskop.id" site_id="ZBIO">Zee Bioskop</channel>
|
|
||||||
</channels>
|
|
|
@ -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()
|
|
||||||
}
|
|
|
@ -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 =
|
|
||||||
'<!doctype html><html class="no-js" lang="zxx"> <head></head> <body> <div class="wrapper"> <div id="content"> <div class="epg-area bg-white ptb-80"> <div class="container"> <div class="row"> <div class="col-sm-12"> <div class="component"> <div style="overflow: auto;"> <table> <tbody> <tr> <th>00:00:00</th> <td>Insert Today</td><td>Insert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.</td></tr><tr> <th>01:00:00</th> <td>Brownis</td><td>Brownis atau obrolan manis merupakan program talkshow segar yang dipandu oleh Ruben Onsu bersama Ivan Gunawan.</td></tr><tr> <th>01:30:00</th> <td>Warga +62</td><td>Warga +62 menghadirkan trend penyebaran video/momen lucu yang juga dikenal sebagai video lucu Indonesia yang tersebar di media sosial.</td></tr><tr> <th>23:00:00</th> <td>Insert</td><td>Insert adalah program infotainment yang menceritakan berita-berita kehidupan selebriti serta gosip-gosipnya dan disajikan secara aktual dan faktual dengan suasana yang santai.</td></tr></tbody> </table> </div></div></div></div></div></div></div></div></body></html>'
|
|
||||||
|
|
||||||
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: '<!doctype html><html class="no-js" lang="zxx"><head></head><body></body></html>'
|
|
||||||
})
|
|
||||||
expect(result).toMatchObject([])
|
|
||||||
})
|
|
Loading…
Add table
Add a link
Reference in a new issue