Merge branch 'master' into patch-2026.05.2

This commit is contained in:
freearhey
2026-05-07 20:59:35 +03:00
35 changed files with 5805 additions and 233 deletions

View File

@@ -80,7 +80,7 @@
<tr><td><a href="sites/i24news.tv">i24news.tv</a></td><td align="right">4</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/iltalehti.fi">iltalehti.fi</a></td><td align="right">147</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/ionplustv.com">ionplustv.com</a></td><td align="right">1</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/ipko.tv">ipko.tv</a></td><td align="right">194</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/ipko.tv">ipko.tv</a></td><td align="right">201</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/jiotv.com">jiotv.com</a></td><td align="right">1094</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/knr.gl">knr.gl</a></td><td align="right">1</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/kvf.fo">kvf.fo</a></td><td align="right">1</td><td align="center">🟢</td><td></td></tr>
@@ -89,6 +89,7 @@
<tr><td><a href="sites/magticom.ge">magticom.ge</a></td><td align="right">240</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/mako.co.il">mako.co.il</a></td><td align="right">1</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/makrodigitaltelevision.com">makrodigitaltelevision.com</a></td><td align="right">1</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/maxstream.tv">maxstream.tv</a></td><td align="right">129</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/maxtvgo.mk">maxtvgo.mk</a></td><td align="right">110</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/mediagenie.co.kr">mediagenie.co.kr</a></td><td align="right">5</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/mediaklikk.hu">mediaklikk.hu</a></td><td align="right">8</td><td align="center">🟢</td><td></td></tr>
@@ -114,14 +115,13 @@
<tr><td><a href="sites/nhkworldpremium.com">nhkworldpremium.com</a></td><td align="right">1</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/nhl.com">nhl.com</a></td><td align="right">1</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/nostv.pt">nostv.pt</a></td><td align="right">161</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/novacyprus.com">novacyprus.com</a></td><td align="right">29</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/novasports.gr">novasports.gr</a></td><td align="right">16</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/nowplayer.now.com">nowplayer.now.com</a></td><td align="right">140</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/nuevosiglo.com.uy">nuevosiglo.com.uy</a></td><td align="right">173</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/nzxmltv.com">nzxmltv.com</a></td><td align="right">532</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/ontvtonight.com">ontvtonight.com</a></td><td align="right">5177</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/opto.sic.pt">opto.sic.pt</a></td><td align="right">3</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/orangetv.orange.es">orangetv.orange.es</a></td><td align="right">273</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/orangetv.orange.es">orangetv.orange.es</a></td><td align="right">273</td><td align="center">🔴</td><td>https://github.com/iptv-org/epg/issues/3099</td></tr>
<tr><td><a href="sites/osn.com">osn.com</a></td><td align="right">67</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/passie.nl">passie.nl</a></td><td align="right">1</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/pbsguam.org">pbsguam.org</a></td><td align="right">1</td><td align="center">🟢</td><td></td></tr>
@@ -142,7 +142,7 @@
<tr><td><a href="sites/reportv.com.ar">reportv.com.ar</a></td><td align="right">163</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/rikstv.no">rikstv.no</a></td><td align="right">80</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/rotana.net">rotana.net</a></td><td align="right">16</td><td align="center">🔴</td><td>https://github.com/iptv-org/epg/issues/3018</td></tr>
<tr><td><a href="sites/roya-tv.com">roya-tv.com</a></td><td align="right">10</td><td align="center">🟢</td><td>https://github.com/iptv-org/epg/issues/3108</td></tr>
<tr><td><a href="sites/roya-tv.com">roya-tv.com</a></td><td align="right">10</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/rthk.hk">rthk.hk</a></td><td align="right">4</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/rtmklik.rtm.gov.my">rtmklik.rtm.gov.my</a></td><td align="right">8</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/rtp.pt">rtp.pt</a></td><td align="right">10</td><td align="center">🟢</td><td></td></tr>

View File

@@ -1,5 +1,3 @@
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0
const customParseFormat = require('dayjs/plugin/customParseFormat')
const timezone = require('dayjs/plugin/timezone')
const utc = require('dayjs/plugin/utc')

View File

@@ -29,7 +29,7 @@
<channel site="clickthecity.com" site_id="182" lang="en" xmltv_id="KMoviesPinoy.ph@SD">K-Movies Pinoy</channel>
<channel site="clickthecity.com" site_id="183" lang="en" xmltv_id="GEM.sg@SD">GEM</channel>
<channel site="clickthecity.com" site_id="184" lang="en" xmltv_id="KapamilyaChannel.ph@SD">Kapamilya Channel</channel>
<channel site="clickthecity.com" site_id="186" lang="en" xmltv_id="ROCKExtreme.sg@SD">Rock Extreme</channel>
<channel site="clickthecity.com" site_id="186" lang="en" xmltv_id="ROCKAction.sg@SD">Rock Extreme</channel>
<channel site="clickthecity.com" site_id="188" lang="en" xmltv_id="Liga.ph@SD">Liga</channel>
<channel site="clickthecity.com" site_id="189" lang="en" xmltv_id="A2Z.ph@SD">a2z Channel 11</channel>
</channels>

View File

@@ -19,10 +19,7 @@ module.exports = {
},
data({ date }) {
const params = new URLSearchParams()
params.append(
'optDate',
dayjs(date.valueOf()).tz('Asia/Manila').format('YYYY-MM-DD')
)
params.append('optDate', dayjs(date.valueOf()).tz('Asia/Manila').format('YYYY-MM-DD'))
params.append('optTime', '00:00:00')
return params
@@ -79,7 +76,7 @@ function parseStart($item, date) {
const url = $item('td.cPrg > a').attr('href') || ''
let [, time] = url.match(/starttime=(\d{1,2}%3A\d{2}\+(AM|PM))/) || [null, null]
if (!time) return null
time = `${date.format('YYYY-MM-DD')} ${time.replace('%3A', ':').replace('+', ' ')}`
time = `${date.format('YYYY-MM-DD')} ${decodeURIComponent(time).replace(/\+/g, ' ')}`
return dayjs.tz(time, 'YYYY-MM-DD h:mm A', 'Asia/Manila').utc()
}
@@ -88,7 +85,7 @@ function parseStop($item, date) {
const url = $item('td.cPrg > a').attr('href') || ''
let [, time] = url.match(/endtime=(\d{1,2}%3A\d{2}\+(AM|PM))/) || [null, null]
if (!time) return null
time = `${date.format('YYYY-MM-DD')} ${time.replace('%3A', ':').replace('+', ' ')}`
time = `${date.format('YYYY-MM-DD')} ${decodeURIComponent(time).replace(/\+/g, ' ')}`
return dayjs.tz(time, 'YYYY-MM-DD h:mm A', 'Asia/Manila').utc()
}

View File

@@ -16,6 +16,7 @@
<channel site="cubmu.com" site_id="281" lang="id" xmltv_id="">Song TV</channel>
<channel site="cubmu.com" site_id="238" lang="id" xmltv_id="ABCAustralia.au@SD">ABC Australia</channel>
<channel site="cubmu.com" site_id="197" lang="id" xmltv_id="AlJazeera.qa@Arabic">Al Jazeera</channel>
<channel site="cubmu.com" site_id="204" lang="id" xmltv_id="AlQuranAlKareemTV.sa@SD">Al Quran Al Kareem</channel>
<channel site="cubmu.com" site_id="364" lang="id" xmltv_id="ANTV.id@SD">ANTV</channel>
<channel site="cubmu.com" site_id="261" lang="id" xmltv_id="ArirangTV.kr@SD">Arirang</channel>
<channel site="cubmu.com" site_id="214" lang="id" xmltv_id="BeritaSatu.id@SD">Berita Satu</channel>
@@ -31,7 +32,7 @@
<channel site="cubmu.com" site_id="213" lang="id" xmltv_id="CNBCIndonesia.id@SD">CNBC Indonesia</channel>
<channel site="cubmu.com" site_id="212" lang="id" xmltv_id="CNNIndonesia.id@SD">CNN Indonesia</channel>
<channel site="cubmu.com" site_id="241" lang="id" xmltv_id="DAAITV.id@SD">DAAI TV</channel>
<channel site="cubmu.com" site_id="244" lang="id" xmltv_id="DaystarTV.us">DayStar</channel>
<channel site="cubmu.com" site_id="244" lang="id" xmltv_id="DaystarTV.us@SD">DayStar</channel>
<channel site="cubmu.com" site_id="278" lang="id" xmltv_id="DensFoodChannel.id@SD">DENS Food Channel</channel>
<channel site="cubmu.com" site_id="279" lang="id" xmltv_id="DensPlay.id@SD">DENS Play Channel</channel>
<channel site="cubmu.com" site_id="280" lang="id" xmltv_id="DensShowBiz.id@SD">DENS Show Bizz</channel>
@@ -49,7 +50,7 @@
<channel site="cubmu.com" site_id="284" lang="id" xmltv_id="JTV.id@SD">jtv</channel>
<channel site="cubmu.com" site_id="200" lang="id" xmltv_id="Khazanah.id@SD">Khazanah</channel>
<channel site="cubmu.com" site_id="220" lang="id" xmltv_id="KompasTV.id@SD">Kompas TV</channel>
<channel site="cubmu.com" site_id="221" lang="id" xmltv_id="MDTV.id@SD">MDTV</channel>
<channel site="cubmu.com" site_id="221" lang="id" xmltv_id="MDTV.id@HD">MDTV</channel>
<channel site="cubmu.com" site_id="211" lang="id" xmltv_id="MetroTV.id@SD">MetroTV</channel>
<channel site="cubmu.com" site_id="222" lang="id" xmltv_id="MNCTV.id@SD">MNC TV</channel>
<channel site="cubmu.com" site_id="195" lang="id" xmltv_id="MusikIndonesia.id@SD">Musik Indonesia</channel>
@@ -59,7 +60,6 @@
<channel site="cubmu.com" site_id="268" lang="id" xmltv_id="OneTV.in@SD">One TV</channel>
<channel site="cubmu.com" site_id="242" lang="id" xmltv_id="PijarTV.id@SD">Pijar TV</channel>
<channel site="cubmu.com" site_id="257" lang="id" xmltv_id="PSJTV.id@SD">PSJ TV</channel>
<channel site="cubmu.com" site_id="204" lang="id" xmltv_id="QuranTV.sa@SD">Al Quran Al Kareem</channel>
<channel site="cubmu.com" site_id="246" lang="id" xmltv_id="RajawaliTV.id@SD">Rtv</channel>
<channel site="cubmu.com" site_id="217" lang="id" xmltv_id="RCTI.id@SD">RCTI</channel>
<channel site="cubmu.com" site_id="260" lang="id" xmltv_id="RT.ru@SD">Russia Today</channel>

View File

@@ -15,7 +15,7 @@
<channel site="dens.tv" site_id="23" lang="id" xmltv_id="DAAITV.id@SD">DAAI TV</channel>
<channel site="dens.tv" site_id="130" lang="id" xmltv_id="DanceTelevision.nl@SD">Dance TV</channel>
<channel site="dens.tv" site_id="117" lang="id" xmltv_id="DensFoodChannel.id@SD">DensFood Channel</channel>
<channel site="dens.tv" site_id="1" lang="id" xmltv_id="DensLearningKnowledge.id@SD">DensKnowledge</channel>
<channel site="dens.tv" site_id="1" lang="id" xmltv_id="DensKnowledge.id@SD">DensKnowledge</channel>
<channel site="dens.tv" site_id="42" lang="id" xmltv_id="DensLifeStyle.id@SD">DensLife&amp;Style</channel>
<channel site="dens.tv" site_id="107" lang="id" xmltv_id="DensPlay.id@SD">DensPlay</channel>
<channel site="dens.tv" site_id="102" lang="id" xmltv_id="DensShowBiz.id@SD">DensShowBiz</channel>

View File

@@ -1,4 +1,3 @@
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0
const dayjs = require('dayjs')
const axios = require('axios')
const utc = require('dayjs/plugin/utc')

View File

@@ -1,4 +1,3 @@
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0
const axios = require('axios')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="distro.tv" site_id="8087" lang="en" xmltv_id="FTFSports.us@SD">FTF Sports</channel>
<channel site="distro.tv" site_id="11063" lang="en" xmltv_id="">Horizon Sports</channel>
<channel site="distro.tv" site_id="11063" lang="en" xmltv_id="HorizonSports.us@SD">Horizon Sports</channel>
<channel site="distro.tv" site_id="11064" lang="en" xmltv_id="TheBoatShow.us@SD">The Boat Show</channel>
<channel site="distro.tv" site_id="15976" lang="en" xmltv_id="OutsideTV.us@SD">Outside</channel>
<channel site="distro.tv" site_id="20021" lang="en" xmltv_id="DoveChannel.us@SD">Dove</channel>
@@ -9,28 +9,28 @@
<channel site="distro.tv" site_id="27440" lang="en" xmltv_id="NewsmaxTV.us@SD">Newsmax TV</channel>
<channel site="distro.tv" site_id="28953" lang="en" xmltv_id="LoneStar.us@SD">Lone Star</channel>
<channel site="distro.tv" site_id="29218" lang="en" xmltv_id="HardKnocks.ca@SD">Hard Knocks</channel>
<channel site="distro.tv" site_id="34007" lang="en" xmltv_id="">Right Now Tv</channel>
<channel site="distro.tv" site_id="34007" lang="en" xmltv_id="RightNowTV.us@SD">Right Now Tv</channel>
<channel site="distro.tv" site_id="34008" lang="en" xmltv_id="OANPlus.us@SD">OAN Plus</channel>
<channel site="distro.tv" site_id="34009" lang="en" xmltv_id="">AWE Plus</channel>
<channel site="distro.tv" site_id="35967" lang="en" xmltv_id="">Qello Concerts</channel>
<channel site="distro.tv" site_id="35968" lang="en" xmltv_id="">Stingray Karaoke</channel>
<channel site="distro.tv" site_id="35967" lang="en" xmltv_id="QelloConcertsbyStingray.ca@SD">Qello Concerts</channel>
<channel site="distro.tv" site_id="35968" lang="en" xmltv_id="StingrayKaraoke.ca@SD">Stingray Karaoke</channel>
<channel site="distro.tv" site_id="35969" lang="en" xmltv_id="StingrayNaturescape.ca@SD">Stingray Naturescape</channel>
<channel site="distro.tv" site_id="35970" lang="en" xmltv_id="StingrayClassica.ca@SD">Stingray Classica</channel>
<channel site="distro.tv" site_id="35971" lang="en" xmltv_id="StingrayDJAZZ.ca@SD">Stingray DJAZZ</channel>
<channel site="distro.tv" site_id="35972" lang="en" xmltv_id="">Stingray Hit List</channel>
<channel site="distro.tv" site_id="35973" lang="en" xmltv_id="">Stingray Hot Country</channel>
<channel site="distro.tv" site_id="35974" lang="en" xmltv_id="">Stingray Rock Alternative</channel>
<channel site="distro.tv" site_id="35975" lang="en" xmltv_id="">Stingray Pop Adult</channel>
<channel site="distro.tv" site_id="35976" lang="en" xmltv_id="">Stingray Classic Rock</channel>
<channel site="distro.tv" site_id="35977" lang="en" xmltv_id="">Stingray Éxitos del Momento</channel>
<channel site="distro.tv" site_id="35978" lang="en" xmltv_id="">Stingray Greatest Hits</channel>
<channel site="distro.tv" site_id="35979" lang="en" xmltv_id="">Stingray HipHop and RnB</channel>
<channel site="distro.tv" site_id="35980" lang="en" xmltv_id="">Stingray Flashback 70s</channel>
<channel site="distro.tv" site_id="35981" lang="en" xmltv_id="">Stingray Remember the 80s</channel>
<channel site="distro.tv" site_id="35972" lang="en" xmltv_id="StingrayHitList.ca@SD">Stingray Hit List</channel>
<channel site="distro.tv" site_id="35973" lang="en" xmltv_id="StingrayHotCountry.ca@SD">Stingray Hot Country</channel>
<channel site="distro.tv" site_id="35974" lang="en" xmltv_id="StingrayRockAlternative.ca@SD">Stingray Rock Alternative</channel>
<channel site="distro.tv" site_id="35975" lang="en" xmltv_id="StingrayPopAdult.ca@SD">Stingray Pop Adult</channel>
<channel site="distro.tv" site_id="35976" lang="en" xmltv_id="StingrayClassicRock.ca@SD">Stingray Classic Rock</channel>
<channel site="distro.tv" site_id="35977" lang="en" xmltv_id="StingrayExitosdelMomento.ca@SD">Stingray Éxitos del Momento</channel>
<channel site="distro.tv" site_id="35978" lang="en" xmltv_id="StingrayGreatestHits.ca@SD">Stingray Greatest Hits</channel>
<channel site="distro.tv" site_id="35979" lang="en" xmltv_id="StingrayHipHopRB.ca@SD">Stingray HipHop and RnB</channel>
<channel site="distro.tv" site_id="35980" lang="en" xmltv_id="StingrayFlashback70s.ca@SD">Stingray Flashback 70s</channel>
<channel site="distro.tv" site_id="35981" lang="en" xmltv_id="StingrayRememberthe80s.ca@SD">Stingray Remember the 80s</channel>
<channel site="distro.tv" site_id="36454" lang="en" xmltv_id="SchwabNetwork.us@SD">Schwab Network</channel>
<channel site="distro.tv" site_id="37560" lang="en" xmltv_id="">CJC Television Network</channel>
<channel site="distro.tv" site_id="37684" lang="en" xmltv_id="WorldPokerTour.us@US">World Poker Tour</channel>
<channel site="distro.tv" site_id="39081" lang="en" xmltv_id="">Law &amp; Crime</channel>
<channel site="distro.tv" site_id="39081" lang="en" xmltv_id="LawCrime.us@SD">Law &amp; Crime</channel>
<channel site="distro.tv" site_id="39730" lang="en" xmltv_id="24HourFreeMovies.us@SD">24 Hour Free Movies</channel>
<channel site="distro.tv" site_id="40431" lang="en" xmltv_id="SKWAD.us@SD">SKWAD</channel>
<channel site="distro.tv" site_id="40432" lang="en" xmltv_id="">Channel Fight</channel>
@@ -90,7 +90,7 @@
<channel site="distro.tv" site_id="76859" lang="en" xmltv_id="">Cinema Hausa</channel>
<channel site="distro.tv" site_id="76863" lang="en" xmltv_id="">True African</channel>
<channel site="distro.tv" site_id="77808" lang="en" xmltv_id="">NatureStream.tv</channel>
<channel site="distro.tv" site_id="78644" lang="en" xmltv_id="">FITE 24/7</channel>
<channel site="distro.tv" site_id="78644" lang="en" xmltv_id="FITE247.us@SD">FITE 24/7</channel>
<channel site="distro.tv" site_id="78918" lang="en" xmltv_id="TNAWrestlingChannel.pl@SD">TNA Wrestling Channel</channel>
<channel site="distro.tv" site_id="78919" lang="en" xmltv_id="FightNetwork.ca@SD">Fight Network</channel>
<channel site="distro.tv" site_id="78921" lang="en" xmltv_id="AfricanewsEnglish.fr@SD">Africanews</channel>
@@ -111,11 +111,11 @@
<channel site="distro.tv" site_id="83825" lang="en" xmltv_id="EstrellaGames.us@SD">Estrella Games</channel>
<channel site="distro.tv" site_id="86482" lang="en" xmltv_id="BalleBalle.in@SD">Balle Balle</channel>
<channel site="distro.tv" site_id="86556" lang="en" xmltv_id="">TRACE Latina</channel>
<channel site="distro.tv" site_id="86557" lang="en" xmltv_id="">TRACE Urban</channel>
<channel site="distro.tv" site_id="87417" lang="en" xmltv_id="BollywoodClassic.ro@SD">Bollywood Classic</channel>
<channel site="distro.tv" site_id="87418" lang="en" xmltv_id="BollywoodHD.ro@SD">Bollywood HD</channel>
<channel site="distro.tv" site_id="86557" lang="en" xmltv_id="TraceUrban.fr@HD">TRACE Urban</channel>
<channel site="distro.tv" site_id="87417" lang="en" xmltv_id="BollywoodClassic.ro@HD">Bollywood Classic</channel>
<channel site="distro.tv" site_id="87418" lang="en" xmltv_id="BollywoodHD.ro@HD">Bollywood HD</channel>
<channel site="distro.tv" site_id="87420" lang="en" xmltv_id="">IndieBox</channel>
<channel site="distro.tv" site_id="89324" lang="en" xmltv_id="">TRACE Brazuca</channel>
<channel site="distro.tv" site_id="89324" lang="en" xmltv_id="TraceBrazuca.fr@SD">TRACE Brazuca</channel>
<channel site="distro.tv" site_id="92944" lang="en" xmltv_id="Motorvision.de@HD">Motorvision TV</channel>
<channel site="distro.tv" site_id="92945" lang="en" xmltv_id="">Motorvision TV Español</channel>
<channel site="distro.tv" site_id="95226" lang="en" xmltv_id="CCTV4America.cn@SD">CCTV-4</channel>
@@ -123,11 +123,11 @@
<channel site="distro.tv" site_id="95228" lang="en" xmltv_id="CGTNDocumentary.cn@SD">CGTN Documentary</channel>
<channel site="distro.tv" site_id="95229" lang="en" xmltv_id="CGTNSpanish.cn@SD">CGTN Español</channel>
<channel site="distro.tv" site_id="95621" lang="en" xmltv_id="DeFianceMedia.pr@SD">DeFiance Media</channel>
<channel site="distro.tv" site_id="98262" lang="en" xmltv_id="">Sports Connect</channel>
<channel site="distro.tv" site_id="98262" lang="en" xmltv_id="SportsConnect.za@SD">Sports Connect</channel>
<channel site="distro.tv" site_id="99076" lang="en" xmltv_id="">MTRSPT1</channel>
<channel site="distro.tv" site_id="100517" lang="en" xmltv_id="">CraftsyTV</channel>
<channel site="distro.tv" site_id="102312" lang="en" xmltv_id="">9XM</channel>
<channel site="distro.tv" site_id="102313" lang="en" xmltv_id="">9X Jalwa</channel>
<channel site="distro.tv" site_id="102312" lang="en" xmltv_id="9XM.in@SD">9XM</channel>
<channel site="distro.tv" site_id="102313" lang="en" xmltv_id="9XJalwa.in@SD">9X Jalwa</channel>
<channel site="distro.tv" site_id="102778" lang="en" xmltv_id="BritAsiaTV.uk@SD">BritAsiaTV</channel>
<channel site="distro.tv" site_id="103370" lang="en" xmltv_id="JewishLifeTelevision.us@SD">Jewish Life Television JLTV</channel>
<channel site="distro.tv" site_id="103416" lang="en" xmltv_id="">Scream TV</channel>
@@ -139,7 +139,7 @@
<channel site="distro.tv" site_id="109615" lang="en" xmltv_id="TV9Kannada.in@SD">TV9 Kannada</channel>
<channel site="distro.tv" site_id="109616" lang="en" xmltv_id="TV9Marathi.in@SD">TV9 Marathi</channel>
<channel site="distro.tv" site_id="109617" lang="en" xmltv_id="TV9Telugu.in@SD">TV9 Telugu</channel>
<channel site="distro.tv" site_id="112018" lang="en" xmltv_id="">FloRacing 24/7</channel>
<channel site="distro.tv" site_id="112018" lang="en" xmltv_id="FloRacing.us@HD">FloRacing 24/7</channel>
<channel site="distro.tv" site_id="112144" lang="en" xmltv_id="">TV9 Telugu USA</channel>
<channel site="distro.tv" site_id="114214" lang="en" xmltv_id="">crema.tv</channel>
<channel site="distro.tv" site_id="114364" lang="en" xmltv_id="NegociosTV.es@SD">Negocios TV</channel>
@@ -169,7 +169,7 @@
<channel site="distro.tv" site_id="129995" lang="en" xmltv_id="">Global Punjab TV</channel>
<channel site="distro.tv" site_id="130882" lang="en" xmltv_id="">PLL Network</channel>
<channel site="distro.tv" site_id="130883" lang="en" xmltv_id="">PLL Network</channel>
<channel site="distro.tv" site_id="130974" lang="en" xmltv_id="">TRACE UK</channel>
<channel site="distro.tv" site_id="130974" lang="en" xmltv_id="TraceUK.uk@HD">TRACE UK</channel>
<channel site="distro.tv" site_id="130979" lang="en" xmltv_id="">TidPix-Authentically African</channel>
<channel site="distro.tv" site_id="130980" lang="en" xmltv_id="">Green Chillies TV- Zindagi ka Tadka!</channel>
<channel site="distro.tv" site_id="130981" lang="en" xmltv_id="TheCowboyChannel.us@SD">Cowboy+ Sports</channel>
@@ -177,7 +177,7 @@
<channel site="distro.tv" site_id="133605" lang="en" xmltv_id="FUELTV.pt@AU">FUEL TV</channel>
<channel site="distro.tv" site_id="133606" lang="en" xmltv_id="FUELTV.pt@BR">FUEL TV</channel>
<channel site="distro.tv" site_id="135729" lang="en" xmltv_id="WillowSports.us@SD">Willow Sports</channel>
<channel site="distro.tv" site_id="135913" lang="en" xmltv_id="">Punjabi Hits</channel>
<channel site="distro.tv" site_id="135913" lang="en" xmltv_id="PunjabiHits.in@SD">Punjabi Hits</channel>
<channel site="distro.tv" site_id="136206" lang="en" xmltv_id="CNAOriginals.sg@SD">CNA Originals</channel>
<channel site="distro.tv" site_id="136208" lang="en" xmltv_id="GhostDimension.us@UK">Ghost Dimension</channel>
<channel site="distro.tv" site_id="136255" lang="en" xmltv_id="">Nolly Africa HD</channel>

View File

@@ -194,4 +194,11 @@
<channel site="ipko.tv" site_id="ulke-tv" lang="tr" xmltv_id="UlkeTV.tr@SD">Ülke TV</channel>
<channel site="ipko.tv" site_id="vizion-+-hd" lang="sq" xmltv_id="VizionPlus.al@SD">Vizion+</channel>
<channel site="ipko.tv" site_id="zico-tv" lang="sr" xmltv_id="">Zico TV</channel>
<channel site="ipko.tv" site_id="tring-sport-1" lang="sq" xmltv_id="TringSport1.al@HD">Tring Sport 1</channel>
<channel site="ipko.tv" site_id="tring-sport-2" lang="sq" xmltv_id="TringSport2.al@HD">Tring Sport 2</channel>
<channel site="ipko.tv" site_id="tring-sport-3" lang="sq" xmltv_id="TringSport3.al@HD">Tring Sport 3</channel>
<channel site="ipko.tv" site_id="tring-sport-4" lang="sq" xmltv_id="TringSport4.al@HD">Tring Sport 4</channel>
<channel site="ipko.tv" site_id="tring-sport-5" lang="sq" xmltv_id="TringSport5.al@HD">Tring Sport 5</channel>
<channel site="ipko.tv" site_id="tring-sport-6" lang="sq" xmltv_id="TringSport6.al@HD">Tring Sport 6</channel>
<channel site="ipko.tv" site_id="tring-sport-7" lang="sq" xmltv_id="TringSport7.al@HD">Tring Sport 7</channel>
</channels>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="maxstream.tv" site_id="0_armtdhuu" lang="id" xmltv_id="ABCAustralia.au@SD">ABC Australia</channel>
<channel site="maxstream.tv" site_id="0_ss6ehuur" lang="id" xmltv_id="AlJazeera.qa@Arabic">Al Jazeera</channel>
<channel site="maxstream.tv" site_id="0_oyquzepi" lang="id" xmltv_id="AnimalPlanetSoutheastAsia.sg@SD">Animal Planet</channel>
<channel site="maxstream.tv" site_id="0_86sal99e" lang="id" xmltv_id="AnimaxAsia.sg@SD">Animax</channel>
<channel site="maxstream.tv" site_id="0_bidjh24z" lang="id" xmltv_id="AniplusAsia.sg@SD">Aniplus</channel>
<channel site="maxstream.tv" site_id="0_3n2pn24p" lang="id" xmltv_id="AntaraTV.id@SD">ANTARA TV</channel>
<channel site="maxstream.tv" site_id="0_6y0oafne" lang="id" xmltv_id="ANTV.id@SD">ANTV</channel>
<channel site="maxstream.tv" site_id="0_wd3w16vp" lang="id" xmltv_id="ArirangTV.kr@SD">Arirang</channel>
<channel site="maxstream.tv" site_id="0_3q4th1ok" lang="id" xmltv_id="AsianFoodNetwork.sg@SD">afn</channel>
<channel site="maxstream.tv" site_id="0_kk9nyx3y" lang="id" xmltv_id="AXNAsia.sg@Indonesia">AXN</channel>
<channel site="maxstream.tv" site_id="0_14pjqs63" lang="id" xmltv_id="BBCNews.uk@AsiaPacific">BBC News</channel>
<channel site="maxstream.tv" site_id="0_e2vtvhqt" lang="id" xmltv_id="BeritaSatu.id@SD">Berita Satu</channel>
<channel site="maxstream.tv" site_id="0_urq0w0mp" lang="id" xmltv_id="BioskopIndonesia.id@SD">Bioskop Indonesia</channel>
<channel site="maxstream.tv" site_id="0_ayq5nxva" lang="id" xmltv_id="BloombergTV.us@Asia">Bloomberg</channel>
<channel site="maxstream.tv" site_id="0_gv023ysj" lang="id" xmltv_id="BTV.id@SD">BTV</channel>
<channel site="maxstream.tv" site_id="0_84kdjuht" lang="id" xmltv_id="CBeebiesAsia.uk@SD">CBeebies</channel>
<channel site="maxstream.tv" site_id="0_xvxr7u43" lang="id" xmltv_id="CCTV4Asia.cn@SD">CCTV 4</channel>
<channel site="maxstream.tv" site_id="0_vq7m2eeg" lang="id" xmltv_id="CelestialMoviesIndonesia.id@SD">Celestial Movies</channel>
<channel site="maxstream.tv" site_id="0_7csp48nr" lang="id" xmltv_id="CGTN.cn@SD">CGTN</channel>
<channel site="maxstream.tv" site_id="0_ypi11pce" lang="id" xmltv_id="CGTNDocumentary.cn@SD">CGTN Documentary</channel>
<channel site="maxstream.tv" site_id="0_yvb8lpzs" lang="id" xmltv_id="ChineseDrama.hk@SD">Chinese Drama</channel>
<channel site="maxstream.tv" site_id="0_s7gzj2we" lang="id" xmltv_id="CinemaWorld.my@SD">CinemaWorld</channel>
<channel site="maxstream.tv" site_id="0_7vx2webw" lang="id" xmltv_id="CinemaxAsia.sg@SD">Cinemax</channel>
<channel site="maxstream.tv" site_id="0_n1y6rlt4" lang="id" xmltv_id="CitraDangdut.id@SD">Citra Dangdut</channel>
<channel site="maxstream.tv" site_id="0_k0hnuzu4" lang="id" xmltv_id="CitraDrama.id@SD">Citra Drama</channel>
<channel site="maxstream.tv" site_id="0_xi5ysa4r" lang="id" xmltv_id="CNA.sg@SD">CNA</channel>
<channel site="maxstream.tv" site_id="0_af2rxjmy" lang="id" xmltv_id="CNBCAsia.sg@SD">CNBC Asia</channel>
<channel site="maxstream.tv" site_id="0_do3tuwa9" lang="id" xmltv_id="CNBCIndonesia.id@SD">CNBC Indonesia</channel>
<channel site="maxstream.tv" site_id="0_cavdcfwq" lang="id" xmltv_id="CNNIndonesia.id@SD">CNN Indonesia</channel>
<channel site="maxstream.tv" site_id="0_455xkjp3" lang="id" xmltv_id="CNNInternational.us@AsiaPacific">CNN International</channel>
<channel site="maxstream.tv" site_id="0_7gka297f" lang="id" xmltv_id="CrimePlusInvestigationAsia.sg@SD">Crime Investigation</channel>
<channel site="maxstream.tv" site_id="0_3karb7oy" lang="id" xmltv_id="CuriosityChannel.us@SD">Curiosity Channel</channel>
<channel site="maxstream.tv" site_id="0_wfgm77pv" lang="id" xmltv_id="DAAITV.id@SD">DAAI TV</channel>
<channel site="maxstream.tv" site_id="0_enfa8a2h" lang="id" xmltv_id="DaVinciAsia.de@SD">Da Vinci Learning</channel>
<channel site="maxstream.tv" site_id="0_nhmzmt8u" lang="id" xmltv_id="DiscoveryAsia.sg@SD">Discovery Asia</channel>
<channel site="maxstream.tv" site_id="0_efpv3846" lang="id" xmltv_id="DiscoveryChannelSoutheastAsia.sg@SD">Discovery Channel</channel>
<channel site="maxstream.tv" site_id="0_muy891nb" lang="id" xmltv_id="DMITV.id@SD">DMI TV</channel>
<channel site="maxstream.tv" site_id="0_h4cdmhi1" lang="id" xmltv_id="DreamWorksChannelAsia.us@SD">DreamWorks</channel>
<channel site="maxstream.tv" site_id="0_3wiy77wh" lang="id" xmltv_id="DuniaAnak.id@SD">Dunia Anak</channel>
<channel site="maxstream.tv" site_id="0_s5oc8paq" lang="id" xmltv_id="DuniaLain.id@SD">Dunia Lain</channel>
<channel site="maxstream.tv" site_id="0_urjthrku" lang="id" xmltv_id="DW.de@English">DW English</channel>
<channel site="maxstream.tv" site_id="0_nt2t5yrg" lang="id" xmltv_id="EuronewsEnglish.fr@SD">Euronews</channel>
<channel site="maxstream.tv" site_id="0_brgzui5c" lang="id" xmltv_id="FashionTVAsia.fr@SD">Fashion TV</channel>
<channel site="maxstream.tv" site_id="0_chy9zuqn" lang="id" xmltv_id="FightSports.us@SD">Fight Sports</channel>
<channel site="maxstream.tv" site_id="0_y6gkb9ud" lang="id" xmltv_id="Flik.id@SD">Flik</channel>
<channel site="maxstream.tv" site_id="0_gvz1a46f" lang="id" xmltv_id="France24.fr@English">France 24</channel>
<channel site="maxstream.tv" site_id="0_anqaquwl" lang="id" xmltv_id="Galaxy.id@SD">Galaxy</channel>
<channel site="maxstream.tv" site_id="0_menqjsva" lang="id" xmltv_id="GalaxyPremium.id@SD">Galaxy Premium</channel>
<channel site="maxstream.tv" site_id="0_p7vlqu2a" lang="id" xmltv_id="GTV.id@SD">GTV</channel>
<channel site="maxstream.tv" site_id="0_xgdr0qbd" lang="id" xmltv_id="HBOAsia.sg@SD">HBO</channel>
<channel site="maxstream.tv" site_id="0_qqui53si" lang="id" xmltv_id="HBOFamilyAsia.sg@SD">HBO Family</channel>
<channel site="maxstream.tv" site_id="0_k7eh4erk" lang="id" xmltv_id="HBOHitsAsia.sg@SD">HBO Hits</channel>
<channel site="maxstream.tv" site_id="0_s6bo567h" lang="id" xmltv_id="HBOSignatureAsia.sg@SD">HBO Signature</channel>
<channel site="maxstream.tv" site_id="0_uvp3wz05" lang="id" xmltv_id="HGTVAsia.us@SD">HGTV</channel>
<channel site="maxstream.tv" site_id="0_k9r5lq30" lang="id" xmltv_id="HistoryAsia.us@SD">History</channel>
<channel site="maxstream.tv" site_id="0_hd1c30bo" lang="id" xmltv_id="HITS.sg@SD">HITS</channel>
<channel site="maxstream.tv" site_id="0_zrs82szk" lang="id" xmltv_id="HITSMovies.sg@SD">HITS MOVIES</channel>
<channel site="maxstream.tv" site_id="0_zg4mwqv7" lang="id" xmltv_id="HITSNOW.sg@SD">HITS Now</channel>
<channel site="maxstream.tv" site_id="0_h0tqx9o4" lang="id" xmltv_id="Horee.id@SD">Horee</channel>
<channel site="maxstream.tv" site_id="0_1plxq8l8" lang="id" xmltv_id="HorizonSports.us@SD">Horizon Sports</channel>
<channel site="maxstream.tv" site_id="0_rfc1zphz" lang="id" xmltv_id="IDXChannel.id@SD">IDX Channel</channel>
<channel site="maxstream.tv" site_id="0_blvd5qf0" lang="id" xmltv_id="IMC.id@SD">IMC</channel>
<channel site="maxstream.tv" site_id="0_y2cx87w8" lang="id" xmltv_id="Indosiar.id@SD">Indosiar</channel>
<channel site="maxstream.tv" site_id="0_fn0qos3d" lang="id" xmltv_id="iNews.id@SD">Inews</channel>
<channel site="maxstream.tv" site_id="0_rkv5gee2" lang="id" xmltv_id="JakTV.id@SD">JAK TV</channel>
<channel site="maxstream.tv" site_id="0_lrp6fabo" lang="id" xmltv_id="JawaPosTV.id@SD">Jawa Pos TV</channel>
<channel site="maxstream.tv" site_id="0_qesewoxv" lang="id" xmltv_id="JTV.id@SD">JTV</channel>
<channel site="maxstream.tv" site_id="0_4oku2lux" lang="id" xmltv_id="KBSWorld.kr@SD">KBS World</channel>
<channel site="maxstream.tv" site_id="0_jqlzd1wf" lang="id" xmltv_id="KIX.hk@SD">KIX</channel>
<channel site="maxstream.tv" site_id="0_930nfsqj" lang="id" xmltv_id="KompasTV.id@SD">Kompas TV</channel>
<channel site="maxstream.tv" site_id="0_8ijijzlz" lang="id" xmltv_id="KPlus.sg@SD">K Plus</channel>
<channel site="maxstream.tv" site_id="0_b65cebi2" lang="id" xmltv_id="LifetimeAsia.us@SD">Lifetime</channel>
<channel site="maxstream.tv" site_id="0_moy42tni" lang="id" xmltv_id="LoveNature.ca@SD">Love Nature</channel>
<channel site="maxstream.tv" site_id="0_z7t4c568" lang="id" xmltv_id="MAXEats.id@SD">MAXEats</channel>
<channel site="maxstream.tv" site_id="0_ynh2anw4" lang="id" xmltv_id="MAXKids.id@SD">MAXKids</channel>
<channel site="maxstream.tv" site_id="0_psqdb637" lang="id" xmltv_id="MAXReels.id@SD">MAXReels</channel>
<channel site="maxstream.tv" site_id="0_1u20u1ok" lang="id" xmltv_id="MAXSports.id@SD">MAXSports</channel>
<channel site="maxstream.tv" site_id="0_720wy4x6" lang="id" xmltv_id="MAXStreak.id@SD">MAXStreak</channel>
<channel site="maxstream.tv" site_id="0_ixad1kw8" lang="id" xmltv_id="MAXStream.id@SD">MAXStream TV</channel>
<channel site="maxstream.tv" site_id="0_keojjla6" lang="id" xmltv_id="MDTV.id@HD">MDTV</channel>
<channel site="maxstream.tv" site_id="0_0hjh536t" lang="id" xmltv_id="MentariTV.id@SD">Mentari TV</channel>
<channel site="maxstream.tv" site_id="0_2jt2oz81" lang="id" xmltv_id="MetroTV.id@SD">Metro TV</channel>
<channel site="maxstream.tv" site_id="0_3k1552mp" lang="id" xmltv_id="MNCTV.id@SD">MNC TV</channel>
<channel site="maxstream.tv" site_id="0_o6n0u3cx" lang="id" xmltv_id="Moji.id@SD">Moji</channel>
<channel site="maxstream.tv" site_id="0_0pf1skv6" lang="id" xmltv_id="MoonbugKids.uk@SD">Moonbug</channel>
<channel site="maxstream.tv" site_id="0_voqn75wc" lang="id" xmltv_id="MQTV.id@SD">MQTV</channel>
<channel site="maxstream.tv" site_id="0_5zvla2hz" lang="id" xmltv_id="MTATV.id@SD">MTA TV</channel>
<channel site="maxstream.tv" site_id="0_qe3k01sq" lang="id" xmltv_id="MusikIndonesia.id@SD">Musik Indonesia</channel>
<channel site="maxstream.tv" site_id="0_1qolvnju" lang="id" xmltv_id="MyKidz.id@SD">My Kidz</channel>
<channel site="maxstream.tv" site_id="0_wz2sim1e" lang="id" xmltv_id="NewTVComprehensive.id@SD">New TV Comprehensive</channel>
<channel site="maxstream.tv" site_id="0_2xlnqlst" lang="id" xmltv_id="NewTVFinance.id@SD">New TV Finance</channel>
<channel site="maxstream.tv" site_id="0_emchwlj8" lang="id" xmltv_id="NewTVVariety.id@SD">New TV Variety</channel>
<channel site="maxstream.tv" site_id="0_mgr46jjf" lang="id" xmltv_id="NHKWorldJapan.jp@SD">NHK World Japan</channel>
<channel site="maxstream.tv" site_id="0_2sdk0nou" lang="id" xmltv_id="NickelodeonAsia.sg@SD">Nickelodeon</channel>
<channel site="maxstream.tv" site_id="0_pz6xuyqn" lang="id" xmltv_id="NickJrAsia.sg@SD">Nick Junior</channel>
<channel site="maxstream.tv" site_id="0_awblng5d" lang="id" xmltv_id="ONE.sg@SD">ONE</channel>
<channel site="maxstream.tv" site_id="0_gtyd8oju" lang="id" xmltv_id="PhoenixChineseChannel.hk@SD">Phoenix Chinese</channel>
<channel site="maxstream.tv" site_id="0_40isuyzv" lang="id" xmltv_id="PhoenixInfoNewsChannel.hk@SD">Phoenix Info News</channel>
<channel site="maxstream.tv" site_id="0_e59etfmm" lang="id" xmltv_id="Prambors.id@SD">Prambors</channel>
<channel site="maxstream.tv" site_id="0_hii9fpgx" lang="id" xmltv_id="RajawaliTV.id@SD">RTV</channel>
<channel site="maxstream.tv" site_id="0_nwsd3m5r" lang="id" xmltv_id="RCTI.id@SD">RCTI</channel>
<channel site="maxstream.tv" site_id="0_1gshn4os" lang="id" xmltv_id="ROCKAction.sg@SD">Rock Action</channel>
<channel site="maxstream.tv" site_id="0_a98kaoda" lang="id" xmltv_id="ROCKEntertainment.sg@SD">Rock Entertainment</channel>
<channel site="maxstream.tv" site_id="0_9km1pl2v" lang="id" xmltv_id="RodjaTV.id@SD">Rodja TV</channel>
<channel site="maxstream.tv" site_id="0_xgmdprq0" lang="id" xmltv_id="SCTV.id@SD">SCTV</channel>
<channel site="maxstream.tv" site_id="0_uxjvyh90" lang="id" xmltv_id="ShenzhenTV.cn@SD">Shenzhen TV</channel>
<channel site="maxstream.tv" site_id="0_nhoeiawb" lang="id" xmltv_id="SindoNewsTV.id@SD">Sindo News</channel>
<channel site="maxstream.tv" site_id="0_pfklvvig" lang="id" xmltv_id="SinPoTV.id@HD">Sinpo TV</channel>
<channel site="maxstream.tv" site_id="0_mubcipck" lang="id" xmltv_id="SPOTV2.id@SD">SPOTV 2</channel>
<channel site="maxstream.tv" site_id="0_e9m9jzif" lang="id" xmltv_id="SPOTV.id@SD">SPOTV</channel>
<channel site="maxstream.tv" site_id="0_jhb1o6kj" lang="id" xmltv_id="StudioUniversalLatinAmerica.us@Brazil">Studio Universal</channel>
<channel site="maxstream.tv" site_id="0_cms3x58k" lang="id" xmltv_id="TheIndonesiaChannel.id@SD">The Indonesia Channel</channel>
<channel site="maxstream.tv" site_id="0_wiy2wbmv" lang="id" xmltv_id="Thrill.hk@SD">Thrill</channel>
<channel site="maxstream.tv" site_id="0_57ujtr57" lang="id" xmltv_id="TLCSoutheastAsia.sg@SD">TLC</channel>
<channel site="maxstream.tv" site_id="0_a7dno7wk" lang="id" xmltv_id="Trans7.id@SD">TRANS 7</channel>
<channel site="maxstream.tv" site_id="0_uakgnhip" lang="id" xmltv_id="TransTV.id@SD">Trans TV</channel>
<channel site="maxstream.tv" site_id="0_6y33rxed" lang="id" xmltv_id="TV5MondeAsia.fr@SD">TV5 MONDE</channel>
<channel site="maxstream.tv" site_id="0_cbqtpojf" lang="id" xmltv_id="TV9Nusantara.id@SD">TV9</channel>
<channel site="maxstream.tv" site_id="0_kp6grg1f" lang="id" xmltv_id="TVBSNews.tw@SD">TVBS News</channel>
<channel site="maxstream.tv" site_id="0_j93el3os" lang="id" xmltv_id="TVMu.id@SD">TV MU</channel>
<channel site="maxstream.tv" site_id="0_6r3crrac" lang="id" xmltv_id="TVMUI.id@SD">TV MUI</channel>
<channel site="maxstream.tv" site_id="0_r16b30de" lang="id" xmltv_id="tvNAsia.hk@SD">tvN</channel>
<channel site="maxstream.tv" site_id="0_2ayrv6w3" lang="id" xmltv_id="tvNMoviesAsia.hk@SD">tvN Movies</channel>
<channel site="maxstream.tv" site_id="0_qy8d9ng1" lang="id" xmltv_id="tvOne.id@SD">TV One</channel>
<channel site="maxstream.tv" site_id="0_vu7lebet" lang="id" xmltv_id="TVRI.id@SD">TVRI</channel>
<channel site="maxstream.tv" site_id="0_iu9ah7cu" lang="id" xmltv_id="TVRIWorld.id@SD">TVRI World</channel>
<channel site="maxstream.tv" site_id="0_7i9iue7v" lang="id" xmltv_id="UChannel.id@SD">U Channel</channel>
<channel site="maxstream.tv" site_id="0_k6etp5l6" lang="id" xmltv_id="ZeeBioskop.id@SD">Zee Bioskop</channel>
<channel site="maxstream.tv" site_id="0_r3bzcf53" lang="id" xmltv_id="ZhejiangInternationalChannel.cn@SD">Zhejiang Int</channel>
</channels>

View File

@@ -0,0 +1,73 @@
const axios = require('axios')
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)
const tz = 'Asia/Jakarta'
module.exports = {
site: 'maxstream.tv',
days: 2,
url({ channel }) {
return `https://vmp.maxstream.tv/api/v3/videos/${channel.site_id}/schedules`
},
parser({ content, channel, date }) {
const programs = []
if (content && typeof content === 'string') {
content = JSON.parse(content)
}
if (Array.isArray(content?.data)) {
const schedules = []
content.data.forEach(item => {
schedules.push(...item.metadata)
})
const f = dt => dayjs.tz(dt, tz).isSame(date, 'day')
schedules
.filter(
entry => entry.parentId === channel.site_id && (f(entry.startTime) || f(entry.endTime))
)
.forEach(entry => {
const [, , , season, , , session2, , , episode] = entry.tvProgram.match(
/((\s(\d+)[a-zA-Z]{2})?\s(Season(\s)?||S)(\d+)?)?(\s-\sEps\.(\s)?(\d+))/
) || [null, null, null, null, null, null, null, null, null, null]
programs.push({
title: entry.tvProgram,
description: entry.description,
start: dayjs.tz(entry.startTime, tz),
stop: dayjs.tz(entry.endTime, tz),
season: season || session2 ? parseInt(season || session2) : null,
episode: episode ? parseInt(episode) : null,
image: entry.thumbnail_url
})
})
}
return programs
},
async channels() {
const channels = []
const data = await axios
.get('https://vmp.maxstream.tv/api/v3/videos/list?contentType=channel')
.then(response => response.data)
.catch(console.error)
if (Array.isArray(data?.videos)) {
channels.push(
...data.videos
.filter(item => item?.contentType === 'Channel')
.map(item => ({
lang: 'id',
site_id: item.id,
name: item.translations.id.title
}))
)
}
return channels
}
}

View File

@@ -0,0 +1,51 @@
const { parser, url } = require('./maxstream.tv.config.js')
const fs = require('fs')
const path = require('path')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
dayjs.extend(utc)
const date = dayjs.utc('2026-05-02').startOf('d')
const channel = { site_id: '0_86sal99e' }
it('can generate valid url', () => {
expect(url({ channel })).toBe('https://vmp.maxstream.tv/api/v3/videos/0_86sal99e/schedules')
})
it('can parse response', () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json')).toString()
const results = parser({ content, channel, date }).map(p => {
p.start = p.start.toJSON()
p.stop = p.stop.toJSON()
return p
})
expect(results.length).toBe(49)
expect(results[0]).toMatchObject({
title: "I'll Become A Villainess Who Goes Down In History - Eps.12",
description:
'Seorang gadis bereinkarnasi sebagai tokoh antagonis dalam novel fantasi. Ia bertekad menjadi villain sejati, namun pilihan tindakannya justru mengubah jalan cerita dan memengaruhi hubungan dengan karakter lain.',
start: '2026-05-01T16:30:00.000Z',
stop: '2026-05-01T17:00:00.000Z',
episode: 12
})
expect(results[46]).toMatchObject({
title: 'Haikyu!! 4Th Season - Eps.22',
description:
'Karasuno melaju ke turnamen nasional dan menghadapi tim-tim elit dengan gaya bermain berbeda. Latihan intens dan strategi baru menguji kemampuan Hinata serta rekan-rekannya dalam menghadapi tekanan pertandingan besar.',
start: '2026-05-02T15:26:00.000Z',
stop: '2026-05-02T16:00:00.000Z',
season: 4,
episode: 22
})
})
it('can handle empty guide', () => {
const results = parser({
content: '',
channel
})
expect(results).toMatchObject([])
})

View File

@@ -0,0 +1,21 @@
# maxstream.tv
https://maxstream.tv/home
### Download the guide
```sh
npm run grab --- --channels=sites/maxstream.tv/maxstream.tv.channels.xml
```
### Update channel list
```sh
npm run channels:parse --- --config=./sites/maxstream.tv/maxstream.tv.config.js --output=./sites/maxstream.tv/maxstream.tv.channels.xml
```
### Test
```sh
npm test --- maxstream.tv
```

View File

@@ -82,8 +82,8 @@
<channel site="mncvision.id" site_id="460" lang="en" xmltv_id="OutdoorChannel.us@HD">Outdoor channel HD</channel>
<channel site="mncvision.id" site_id="202" lang="en" xmltv_id="OutdoorChannel.us@SD">Outdoor Channel</channel>
<channel site="mncvision.id" site_id="80" lang="en" xmltv_id="RCTI.id@SD">RCTI</channel>
<channel site="mncvision.id" site_id="248" lang="en" xmltv_id="ROCKAction.sg@SD">Rock Action</channel>
<channel site="mncvision.id" site_id="240" lang="en" xmltv_id="ROCKEntertainment.sg@SD">Rock Entertainment</channel>
<channel site="mncvision.id" site_id="248" lang="en" xmltv_id="ROCKExtreme.sg@SD">Rock Action</channel>
<channel site="mncvision.id" site_id="89" lang="en" xmltv_id="SCTV.id@SD">SCTV</channel>
<channel site="mncvision.id" site_id="336" lang="en" xmltv_id="SEAToday.id@SD">SEA TODAY</channel>
<channel site="mncvision.id" site_id="84" lang="en" xmltv_id="SindoNewsTV.id@SD">Sindo News TV</channel>

View File

@@ -82,8 +82,8 @@
<channel site="mncvision.id" site_id="460" lang="id" xmltv_id="OutdoorChannel.us@HD">Outdoor channel HD</channel>
<channel site="mncvision.id" site_id="202" lang="id" xmltv_id="OutdoorChannel.us@SD">Outdoor Channel</channel>
<channel site="mncvision.id" site_id="80" lang="id" xmltv_id="RCTI.id@SD">RCTI</channel>
<channel site="mncvision.id" site_id="248" lang="id" xmltv_id="ROCKAction.sg@SD">Rock Action</channel>
<channel site="mncvision.id" site_id="240" lang="id" xmltv_id="ROCKEntertainment.sg@SD">Rock Entertainment</channel>
<channel site="mncvision.id" site_id="248" lang="id" xmltv_id="ROCKExtreme.sg@SD">Rock Action</channel>
<channel site="mncvision.id" site_id="89" lang="id" xmltv_id="SCTV.id@SD">SCTV</channel>
<channel site="mncvision.id" site_id="336" lang="id" xmltv_id="SEAToday.id@SD">SEA TODAY</channel>
<channel site="mncvision.id" site_id="84" lang="id" xmltv_id="SindoNewsTV.id@SD">Sindo News TV</channel>

View File

@@ -42,7 +42,7 @@
<channel site="mysky.com.ph" site_id="101" lang="en" xmltv_id="">HBO SIGNATURE</channel>
<channel site="mysky.com.ph" site_id="102" lang="en" xmltv_id="">HBO FAMILY</channel>
<channel site="mysky.com.ph" site_id="103" lang="en" xmltv_id="">NICK JR.</channel>
<channel site="mysky.com.ph" site_id="104" lang="en" xmltv_id="ROCKExtreme.sg@SD">ROCK ACTION</channel>
<channel site="mysky.com.ph" site_id="104" lang="en" xmltv_id="ROCKAction.sg@SD">ROCK ACTION</channel>
<channel site="mysky.com.ph" site_id="107" lang="en" xmltv_id="Thrill.hk@SD">THRILL</channel>
<channel site="mysky.com.ph" site_id="108" lang="en" xmltv_id="">FASHION TV</channel>
<channel site="mysky.com.ph" site_id="109" lang="en" xmltv_id="">CHANNEL NEWS ASIA</channel>

View File

@@ -26,7 +26,7 @@
<channel site="mytvsuper.com" site_id="CNIKO" lang="en" xmltv_id="NickelodeonAsia.sg@SD">Nickelodeon</channel>
<channel site="mytvsuper.com" site_id="CRE" lang="zh" xmltv_id="CreationTV.hk@SD">Creation TV</channel>
<channel site="mytvsuper.com" site_id="CRTE" lang="zh" xmltv_id="ROCKEntertainment.sg@SD">ROCK Entertainment</channel>
<channel site="mytvsuper.com" site_id="CRTX" lang="en" xmltv_id="ROCKExtreme.sg@SD">ROCK Action</channel>
<channel site="mytvsuper.com" site_id="CRTX" lang="en" xmltv_id="ROCKAction.sg@SD">ROCK Action</channel>
<channel site="mytvsuper.com" site_id="CTHR" lang="en" xmltv_id="Thrill.hk@SD">Thrill</channel>
<channel site="mytvsuper.com" site_id="CTS1" lang="en" xmltv_id="TVBSAsia.tw@SD">TVBS Asia</channel>
<channel site="mytvsuper.com" site_id="CTSN" lang="en" xmltv_id="TVBSNews.tw@SD">TVBS News</channel>

View File

@@ -26,7 +26,7 @@
<channel site="mytvsuper.com" site_id="CNIKO" lang="zh" xmltv_id="NickelodeonAsia.sg@SD">Nickelodeon</channel>
<channel site="mytvsuper.com" site_id="CRE" lang="zh" xmltv_id="CreationTV.hk@SD">創世電視</channel>
<channel site="mytvsuper.com" site_id="CRTE" lang="zh" xmltv_id="ROCKEntertainment.sg@SD">ROCK綜藝娛樂</channel>
<channel site="mytvsuper.com" site_id="CRTX" lang="zh" xmltv_id="ROCKExtreme.sg@SD">ROCK Action</channel>
<channel site="mytvsuper.com" site_id="CRTX" lang="zh" xmltv_id="ROCKAction.sg@SD">ROCK Action</channel>
<channel site="mytvsuper.com" site_id="CTHR" lang="zh" xmltv_id="Thrill.hk@SD">Thrill</channel>
<channel site="mytvsuper.com" site_id="CTS1" lang="zh" xmltv_id="TVBSAsia.tw@SD">無線衛星亞洲台</channel>
<channel site="mytvsuper.com" site_id="CTSN" lang="zh" xmltv_id="TVBSNews.tw@SD">無線衛星新聞台</channel>

View File

@@ -1 +0,0 @@
{"nodes":[{"datetime":"2021-11-17 06:20:00","day":"Wednesday","numDay":17,"numMonth":11,"month":"November","channelName":"Cyprus Novacinema1HD","channelLog":"https://ssl2.novago.gr/EPG/jsp/images/universal/film/logo/20200210/000100/XTV100000762/d6a2f5e0-dbc0-49c7-9843-e3161ca5ae5d.png","cid":"42","ChannelId":"614","startingTime":"06:20","endTime":"08:10","title":"Δεσμοί Αίματος","description":"Θρίλερ Μυστηρίου","duration":"109","slotDuration":"110","bref":"COMMOBLOOX","mediaItems":[{"MediaListTypeId":"6","CdnUrl":"http://cache-forthnet.secure.footprint.net/linear/3/0/305608_COMMOBLOOX_GUIDE_STILL.jpg"},{"MediaListTypeId":"7","CdnUrl":"http://cache-forthnet.secure.footprint.net/linear/3/0/305608_COMMOBLOOX_POSTER_CROSS.jpg"},{"MediaListTypeId":"8","CdnUrl":"http://cache-forthnet.secure.footprint.net/linear/3/0/305608_COMMOBLOOX_ICON_CYP.jpg"},{"MediaListTypeId":"9","CdnUrl":"http://cache-forthnet.secure.footprint.net/linear/3/0/305608_COMMOBLOOX_POSTER_CYP.jpg"},{"MediaListTypeId":"10","CdnUrl":"http://cache-forthnet.secure.footprint.net/linear/3/0/305608_COMMOBLOOX_BACKGROUND_CYP.jpg"}]},{"datetime":"2021-11-17 06:00:00","day":"Wednesday","numDay":17,"numMonth":11,"month":"November","channelName":"Cyprus Novacinema2HD","channelLog":"https://ssl2.novago.gr/EPG/jsp/images/universal/film/logo/20200210/000100/XTV100000763/24e05354-d6ad-4949-bcb3-a81d1c1d2cba.png","cid":"62","ChannelId":"653","startingTime":"06:00","endTime":"07:40","title":"Ανυπόφοροι Γείτονες","description":"Κωμωδία","duration":"93","slotDuration":"100","bref":"NEIGHBORSX","mediaItems":[{"MediaListTypeId":"7","CdnUrl":"http://cache-forthnet.secure.footprint.net/linear/3/1/312582_NEIGHBORSX_POSTER_CROSS.jpg"},{"MediaListTypeId":"8","CdnUrl":"http://cache-forthnet.secure.footprint.net/linear/3/1/312582_NEIGHBORSX_ICON_CYP.jpg"},{"MediaListTypeId":"9","CdnUrl":"http://cache-forthnet.secure.footprint.net/linear/3/1/312582_NEIGHBORSX_POSTER_CYP.jpg"},{"MediaListTypeId":"10","CdnUrl":"http://cache-forthnet.secure.footprint.net/linear/3/1/312582_NEIGHBORSX_BACKGROUND_CYP.jpg"}]}]}

View File

@@ -1 +0,0 @@
{"nodes":[],"total":0,"pages":0}

View File

@@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="novacyprus.com" site_id="17" lang="el" xmltv_id="Novasports5.gr@HD">Cyprus Novasports5HD</channel>
<channel site="novacyprus.com" site_id="53" lang="el" xmltv_id="Novalife.gr@SD">Cyprus NovalifeHD</channel>
<channel site="novacyprus.com" site_id="81" lang="el" xmltv_id="InsightTV.nl@SD">InsightTV</channel>
<channel site="novacyprus.com" site_id="142" lang="el" xmltv_id="Novasports4.gr@HD">Cyprus Novasports4HD</channel>
<channel site="novacyprus.com" site_id="221" lang="el" xmltv_id="MyZenTV.fr@SD">MyZen TV</channel>
<channel site="novacyprus.com" site_id="227" lang="el" xmltv_id="MadTV.gr@SD">Mad TV</channel>
<channel site="novacyprus.com" site_id="381" lang="el" xmltv_id="">Discovery</channel>
<channel site="novacyprus.com" site_id="521" lang="el" xmltv_id="HellenicParliamentTV.gr@SD">Βουλή - Τηλεόραση</channel>
<channel site="novacyprus.com" site_id="544" lang="el" xmltv_id="Nickelodeon.gr@SD">Nickelodeon</channel>
<channel site="novacyprus.com" site_id="570" lang="el" xmltv_id="FoxLife.gr@HD">FOX Life</channel>
<channel site="novacyprus.com" site_id="576" lang="el" xmltv_id="SmileTV.gr@SD">Smile tv</channel>
<channel site="novacyprus.com" site_id="580" lang="el" xmltv_id="ViasatHistory.se@SD">Viasat History HD</channel>
<channel site="novacyprus.com" site_id="582" lang="el" xmltv_id="">MAD GREEKZ</channel>
<channel site="novacyprus.com" site_id="584" lang="el" xmltv_id="OneChannel.gr@HD">One Channel</channel>
<channel site="novacyprus.com" site_id="586" lang="el" xmltv_id="">Travel Channel HD</channel>
<channel site="novacyprus.com" site_id="588" lang="el" xmltv_id="">E! Entertainment</channel>
<channel site="novacyprus.com" site_id="609" lang="el" xmltv_id="Fox.gr@HD">FOX</channel>
<channel site="novacyprus.com" site_id="610" lang="el" xmltv_id="CartoonitoCEE.uk@SD">Boomerang</channel>
<channel site="novacyprus.com" site_id="614" lang="el" xmltv_id="Novacinema1.gr@SD">Cyprus Novacinema1HD</channel>
<channel site="novacyprus.com" site_id="616" lang="el" xmltv_id="">National Geographic Wild HD</channel>
<channel site="novacyprus.com" site_id="617" lang="el" xmltv_id="NationalGeographic.gr@HD">National Geographic HD</channel>
<channel site="novacyprus.com" site_id="639" lang="el" xmltv_id="Novasports2.gr@HD">Cyprus Novasports2HD</channel>
<channel site="novacyprus.com" site_id="645" lang="el" xmltv_id="AnimalPlanetEurope.uk@SD">Animal Planet</channel>
<channel site="novacyprus.com" site_id="649" lang="el" xmltv_id="Number1TV.tr@SD">NR1 HD</channel>
<channel site="novacyprus.com" site_id="652" lang="el" xmltv_id="Novacinema3.gr@SD">Cyprus Novacinema3HD</channel>
<channel site="novacyprus.com" site_id="653" lang="el" xmltv_id="Novacinema2.gr@SD">Cyprus Novacinema2HD</channel>
<channel site="novacyprus.com" site_id="667" lang="el" xmltv_id="Novacinema4.gr@SD">Cyprus Novacinema4HD</channel>
<channel site="novacyprus.com" site_id="669" lang="el" xmltv_id="Novasports3.gr@HD">Cyprus Novasports3HD</channel>
<channel site="novacyprus.com" site_id="673" lang="el" xmltv_id="MTVLive.uk@SD">MTV Live HD</channel>
</channels>

View File

@@ -1,67 +0,0 @@
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0
const axios = require('axios')
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: 'novacyprus.com',
days: 2,
url({ date }) {
return `https://www.novacyprus.com/api/v1/tvprogram/from/${date.format('YYYYMMDD')}/to/${date
.add(1, 'd')
.format('YYYYMMDD')}`
},
parser({ content, channel }) {
let programs = []
const items = parseItems(content, channel)
items.forEach(item => {
const start = parseStart(item)
const stop = start.add(item.slotDuration, 'm')
programs.push({
title: item.title,
description: item.description,
image: parseImage(item),
start,
stop
})
})
return programs
},
async channels() {
const channels = await axios
.get('https://www.novacyprus.com/api/v1/guide/dailychannels')
.then(r => r.data)
.catch(console.log)
return channels.map(item => {
return {
lang: 'el',
site_id: item.ChannelId,
name: item.nameEl
}
})
}
}
function parseStart(item) {
return dayjs.tz(item.datetime, 'YYYY-MM-DD HH:mm:ss', 'Asia/Nicosia')
}
function parseImage(item) {
return item.mediaItems.length ? item.mediaItems[0].CdnUrl : null
}
function parseItems(content, channel) {
const data = JSON.parse(content)
if (!data || !Array.isArray(data.nodes)) return []
return data.nodes.filter(i => i.ChannelId === channel.site_id)
}

View File

@@ -1,49 +0,0 @@
const { parser, url } = require('./novacyprus.com.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('2021-11-17', 'YYYY-MM-DD').startOf('d')
const channel = {
site_id: '614',
xmltv_id: 'NovaCinema1.gr'
}
it('can generate valid url', () => {
expect(url({ date })).toBe(
'https://www.novacyprus.com/api/v1/tvprogram/from/20211117/to/20211118'
)
})
it('can parse response', () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'))
const result = parser({ content, channel }).map(p => {
p.start = p.start.toJSON()
p.stop = p.stop.toJSON()
return p
})
expect(result).toMatchObject([
{
start: '2021-11-17T04:20:00.000Z',
stop: '2021-11-17T06:10:00.000Z',
title: 'Δεσμοί Αίματος',
description: 'Θρίλερ Μυστηρίου',
image:
'http://cache-forthnet.secure.footprint.net/linear/3/0/305608_COMMOBLOOX_GUIDE_STILL.jpg'
}
])
})
it('can handle empty guide', () => {
const result = parser({
date,
channel,
content: fs.readFileSync(path.resolve(__dirname, '__data__/no_content.json'))
})
expect(result).toMatchObject([])
})

View File

@@ -1,21 +0,0 @@
# novacyprus.com
https://www.novacyprus.com/en/node/32742
### Download the guide
```sh
npm run grab --- --sites=novacyprus.com
```
### Update channel list
```sh
npm run channels:parse --- --config=./sites/novacyprus.com/novacyprus.com.config.js --output=./sites/novacyprus.com/novacyprus.com.channels.xml
```
### Test
```sh
npm test --- novacyprus.com
```

View File

@@ -50,7 +50,6 @@
<channel site="nowplayer.now.com" site_id="551" lang="en" xmltv_id="DragonTV.cn@SD">Dragon TV</channel>
<channel site="nowplayer.now.com" site_id="324" lang="en" xmltv_id="DW.de@English">DW (English)</channel>
<channel site="nowplayer.now.com" site_id="326" lang="en" xmltv_id="EuronewsEnglish.fr@SD">euronews</channel>
<channel site="nowplayer.now.com" site_id="642" lang="en" xmltv_id="FightSports.us@SD">NBA TV</channel>
<channel site="nowplayer.now.com" site_id="526" lang="en" xmltv_id="FoodNetworkAsia.sg@SD">Food Network</channel>
<channel site="nowplayer.now.com" site_id="327" lang="en" xmltv_id="France24.fr@English">France 24</channel>
<channel site="nowplayer.now.com" site_id="715" lang="en" xmltv_id="France24.fr@French">France 24 (French)</channel>
@@ -74,6 +73,7 @@
<channel site="nowplayer.now.com" site_id="116" lang="en" xmltv_id="MovieMovie.hk@SD">MOVIE MOVIE</channel>
<channel site="nowplayer.now.com" site_id="779" lang="en" xmltv_id="MTV.in@SD">MTV India</channel>
<channel site="nowplayer.now.com" site_id="640" lang="en" xmltv_id="MUTV.uk@SD">MUTV</channel>
<channel site="nowplayer.now.com" site_id="642" lang="en" xmltv_id="NBATV.us@SD">NBA TV</channel>
<channel site="nowplayer.now.com" site_id="328" lang="en" xmltv_id="NHKWorldJapan.jp@SD">NHK WORLD-JAPAN</channel>
<channel site="nowplayer.now.com" site_id="711" lang="en" xmltv_id="NHKWorldPremium.jp@SD">NHK World Premium</channel>
<channel site="nowplayer.now.com" site_id="444" lang="en" xmltv_id="NickelodeonAsia.sg@SD">Nickelodeon</channel>

View File

@@ -50,7 +50,6 @@
<channel site="nowplayer.now.com" site_id="551" lang="zh" xmltv_id="DragonTV.cn@SD">Dragon TV</channel>
<channel site="nowplayer.now.com" site_id="324" lang="zh" xmltv_id="DW.de@English">DW (English)</channel>
<channel site="nowplayer.now.com" site_id="326" lang="zh" xmltv_id="EuronewsEnglish.fr@SD">euronews</channel>
<channel site="nowplayer.now.com" site_id="642" lang="zh" xmltv_id="FightSports.us@SD">NBA TV</channel>
<channel site="nowplayer.now.com" site_id="526" lang="zh" xmltv_id="FoodNetworkAsia.sg@SD">Food Network</channel>
<channel site="nowplayer.now.com" site_id="327" lang="zh" xmltv_id="France24.fr@English">France 24</channel>
<channel site="nowplayer.now.com" site_id="715" lang="zh" xmltv_id="France24.fr@French">France 24 (French)</channel>
@@ -74,6 +73,7 @@
<channel site="nowplayer.now.com" site_id="116" lang="zh" xmltv_id="MovieMovie.hk@SD">MOVIE MOVIE</channel>
<channel site="nowplayer.now.com" site_id="779" lang="zh" xmltv_id="MTV.in@SD">MTV India</channel>
<channel site="nowplayer.now.com" site_id="640" lang="zh" xmltv_id="MUTV.uk@SD">MUTV</channel>
<channel site="nowplayer.now.com" site_id="642" lang="zh" xmltv_id="NBATV.us@SD">NBA TV</channel>
<channel site="nowplayer.now.com" site_id="328" lang="zh" xmltv_id="NHKWorldJapan.jp@SD">NHK WORLD-JAPAN</channel>
<channel site="nowplayer.now.com" site_id="711" lang="zh" xmltv_id="NHKWorldPremium.jp@SD">NHK World Premium</channel>
<channel site="nowplayer.now.com" site_id="444" lang="zh" xmltv_id="NickelodeonAsia.sg@SD">Nickelodeon</channel>

View File

@@ -30,7 +30,10 @@ module.exports = {
})
})
programs = sortBy(uniqBy(programs, p => p.start), p => p.start.valueOf())
programs = sortBy(
uniqBy(programs, p => p.start),
p => p.start.valueOf()
)
return programs
},
@@ -45,7 +48,7 @@ module.exports = {
const $ = cheerio.load(data)
$('#channel-group-all > div > div').each((i, el) => {
const site_id = $(el).find('input').attr('value').replace('&', '&amp;')
const site_id = $(el).find('input').attr('value').replace(/&/g, '&amp;')
const label = $(el).text().trim()
const svgTitle = $(el).find('svg').attr('alt')
const name = (label || svgTitle || '').replace(site_id, '').trim()

View File

@@ -38,8 +38,8 @@
<channel site="tivie.id" site_id="one" lang="id" xmltv_id="ONE.sg@SD">ONE</channel>
<channel site="tivie.id" site_id="rtv" lang="id" xmltv_id="RajawaliTV.id@SD">RTV</channel>
<channel site="tivie.id" site_id="rcti" lang="id" xmltv_id="RCTI.id@SD">RCTI</channel>
<channel site="tivie.id" site_id="rockaction" lang="id" xmltv_id="ROCKAction.sg@SD">Rock Action</channel>
<channel site="tivie.id" site_id="rockentertainment" lang="id" xmltv_id="ROCKEntertainment.sg@SD">Rock Entertainment</channel>
<channel site="tivie.id" site_id="rockaction" lang="id" xmltv_id="ROCKExtreme.sg@SD">Rock Action</channel>
<channel site="tivie.id" site_id="sctv" lang="id" xmltv_id="SCTV.id@SD">SCTV</channel>
<channel site="tivie.id" site_id="sindonews" lang="id" xmltv_id="SindoNewsTV.id@SD">Sindonews TV</channel>
<channel site="tivie.id" site_id="sinpotv" lang="id" xmltv_id="SinPoTV.id@HD">Sin Po TV</channel>

View File

@@ -0,0 +1,89 @@
-----BEGIN CERTIFICATE-----
MIIFBjCCA+6gAwIBAgISBqgDKu02NonzjkNEeHx7z9iZMA0GCSqGSIb3DQEBCwUA
MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD
EwNSMTMwHhcNMjYwNDMwMDkwMTM4WhcNMjYwNzI5MDkwMTM3WjAhMR8wHQYDVQQD
DBYqLnRvb25hbWlhZnRlcm1hdGguY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAmqz8whacnCOafltHQbNkcmV5J04A0aKqi8SoPu3zl+x0n30GXHkr
7ssaHaXGb/LhIHQ71b1VrspDMcgb204YmSDYE0Ox5tmEt9+toRRkaR6BuZk2IPgI
Vuhx4z6PIYoY4BPq0wxqAzWCxKOCjN2PcEbzczVOfRnaI8JYWPXF7WrwkwB6gz7M
E2pq3/pS8+OIjMAnivGuvTBq702EzE/Rrym1G2y+kWUg5DeQ+X0Rm5VPIeW7hFNG
WdCz/RC/01dWiWyrFR4C4R7povYfkowJTzfdWeTEDkdxyoyS/4zETFk291aLYkEF
gDvrs6J/GHpCsEQyu21W5UAE5UTQv2hNuQIDAQABo4ICJDCCAiAwDgYDVR0PAQH/
BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0O
BBYEFCvvVo6mBZ+wkP+jfF+GLCONwlNzMB8GA1UdIwQYMBaAFOernw8sM6BT015P
eMiyhA471pIzMDMGCCsGAQUFBwEBBCcwJTAjBggrBgEFBQcwAoYXaHR0cDovL3Ix
My5pLmxlbmNyLm9yZy8wIQYDVR0RBBowGIIWKi50b29uYW1pYWZ0ZXJtYXRoLmNv
bTATBgNVHSAEDDAKMAgGBmeBDAECATAuBgNVHR8EJzAlMCOgIaAfhh1odHRwOi8v
cjEzLmMubGVuY3Iub3JnLzI2LmNybDCCAQwGCisGAQQB1nkCBAIEgf0EgfoA+AB2
AJROQ4f67MHvgfMZJCaoGGUBx9NfOAIBP3JnfVU3LhnYAAABnd3U3sgAAAQDAEcw
RQIhALu/dSOQk6HaGhlSNZxCAAHJT9cEWH1QBbSJ+SFaqrYWAiA0NxkcHvEQN4fa
EgUThyi6rCQSaAXVv5aLeHyPRbHbzwB+ACbjZG5YaSEjvDQ/RyQ1mzeSzSRaiNgV
05Mz/ZkYq0cjAAABnd3U3tgACAAABQALrWUiBAMARzBFAiBlCj3uiItFozSgfHKe
Hbznkv2q1k/0gr6BrqZH4zwE6wIhAOZVWBO329elJp/XbSHbuU0sQ3VF4x9IGRz0
pVUpORgqMA0GCSqGSIb3DQEBCwUAA4IBAQAwAwhV6gsfenG1GOGsCWdGIC5884mk
r8s8g5DZM0OgsqyJdRry6Umpe1/tMOlxjqumWUcSCgfz+D+PLznJXSGNnHqvQ7sZ
pL7ET8rnuyQn22Qu4AVUxnbpuh4MeR3wNPgFNOx06VxoZA+E3YBwQhJIJzAYj8cg
dmA78ZlL2HfJiZ7pUXoTXC4y6D0U8rEdxHEwU5r8XRDRCVp3elp5s4EM93VQWH/E
Kgfe3MhZF864SHwyqkMEghk+6jsIemYwzg4EddIMasxFkCWcTMU6fZ7rF4iF2rMO
Cn5jJ5SAUy7308TPw6Js3JJ5ahaKTAPHERCvXyHK+c/bLSFT7mXWfdb8
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFBTCCAu2gAwIBAgIQWgDyEtjUtIDzkkFX6imDBTANBgkqhkiG9w0BAQsFADBP
MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFy
Y2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTAeFw0yNDAzMTMwMDAwMDBa
Fw0yNzAzMTIyMzU5NTlaMDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBF
bmNyeXB0MQwwCgYDVQQDEwNSMTMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQClZ3CN0FaBZBUXYc25BtStGZCMJlA3mBZjklTb2cyEBZPs0+wIG6BgUUNI
fSvHSJaetC3ancgnO1ehn6vw1g7UDjDKb5ux0daknTI+WE41b0VYaHEX/D7YXYKg
L7JRbLAaXbhZzjVlyIuhrxA3/+OcXcJJFzT/jCuLjfC8cSyTDB0FxLrHzarJXnzR
yQH3nAP2/Apd9Np75tt2QnDr9E0i2gB3b9bJXxf92nUupVcM9upctuBzpWjPoXTi
dYJ+EJ/B9aLrAek4sQpEzNPCifVJNYIKNLMc6YjCR06CDgo28EdPivEpBHXazeGa
XP9enZiVuppD0EqiFwUBBDDTMrOPAgMBAAGjgfgwgfUwDgYDVR0PAQH/BAQDAgGG
MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATASBgNVHRMBAf8ECDAGAQH/
AgEAMB0GA1UdDgQWBBTnq58PLDOgU9NeT3jIsoQOO9aSMzAfBgNVHSMEGDAWgBR5
tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAKG
Fmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0gBAwwCjAIBgZngQwBAgEwJwYD
VR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVuY3Iub3JnLzANBgkqhkiG9w0B
AQsFAAOCAgEAUTdYUqEimzW7TbrOypLqCfL7VOwYf/Q79OH5cHLCZeggfQhDconl
k7Kgh8b0vi+/XuWu7CN8n/UPeg1vo3G+taXirrytthQinAHGwc/UdbOygJa9zuBc
VyqoH3CXTXDInT+8a+c3aEVMJ2St+pSn4ed+WkDp8ijsijvEyFwE47hulW0Ltzjg
9fOV5Pmrg/zxWbRuL+k0DBDHEJennCsAen7c35Pmx7jpmJ/HtgRhcnz0yjSBvyIw
6L1QIupkCv2SBODT/xDD3gfQQyKv6roV4G2EhfEyAsWpmojxjCUCGiyg97FvDtm/
NK2LSc9lybKxB73I2+P2G3CaWpvvpAiHCVu30jW8GCxKdfhsXtnIy2imskQqVZ2m
0Pmxobb28Tucr7xBK7CtwvPrb79os7u2XP3O5f9b/H66GNyRrglRXlrYjI1oGYL/
f4I1n/Sgusda6WvA6C190kxjU15Y12mHU4+BxyR9cx2hhGS9fAjMZKJss28qxvz6
Axu4CaDmRNZpK/pQrXF17yXCXkmEWgvSOEZy6Z9pcbLIVEGckV/iVeq0AOo2pkg9
p4QRIy0tK2diRENLSF2KysFwbY6B26BFeFs3v1sYVRhFW9nLkOrQVporCS0KyZmf
wVD89qSTlnctLcZnIavjKsKUu1nA1iU0yYMdYepKR7lWbnwhdx3ewok=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----

View File

@@ -1,19 +1,26 @@
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'
const dayjs = require('dayjs')
const axios = require('axios')
const https = require('https')
const path = require('path')
const fs = require('fs')
const API_ENDPOINT = 'https://api.toonamiaftermath.com'
module.exports = {
const config = {
site: 'toonamiaftermath.com',
days: 3,
request: {
httpsAgent: new https.Agent({
ca: fs.readFileSync(path.resolve(__dirname, '__data__/certificate.pem'))
})
},
async url({ channel, date }) {
const playlists = await axios
.get(
`${API_ENDPOINT}/playlists?scheduleName=${channel.site_id}&startDate=${date
.add(1, 'd')
.toJSON()}&thisWeek=true&weekStartDay=monday`
.toJSON()}&thisWeek=true&weekStartDay=monday`,
config.request
)
.then(r => r.data)
.catch(console.error)
@@ -58,3 +65,5 @@ function parseEpisode(item) {
function parseImage(item) {
return item && item.info && item.info.image ? item.info.image : null
}
module.exports = config

View File

@@ -53,7 +53,7 @@
<channel site="vidio.com" site_id="1561" lang="id" xmltv_id="RajawaliTV.id@SD">RTV</channel>
<channel site="vidio.com" site_id="665" lang="id" xmltv_id="RCTI.id@SD">RCTI</channel>
<channel site="vidio.com" site_id="19538" lang="id" xmltv_id="RealMadridTVEnglish.es@SD">Real Madrid TV</channel>
<channel site="vidio.com" site_id="8121" lang="id" xmltv_id="ROCKExtreme.sg@SD">Rock Action</channel>
<channel site="vidio.com" site_id="8121" lang="id" xmltv_id="ROCKAction.sg@SD">Rock Action</channel>
<channel site="vidio.com" site_id="204" lang="id" xmltv_id="SCTV.id@SD">SCTV</channel>
<channel site="vidio.com" site_id="19046" lang="id" xmltv_id="SinPoTV.id@HD">Sin Po TV</channel>
<channel site="vidio.com" site_id="17140" lang="id" xmltv_id="SPOTV2.id@SD">SPOTV 2</channel>

View File

@@ -104,8 +104,8 @@
<channel site="visionplus.id" site_id="00000000000000000011" lang="en" xmltv_id="RajawaliTV.id@SD">RTV</channel>
<channel site="visionplus.id" site_id="00000000000000000001" lang="en" xmltv_id="RCTI.id@SD">RCTI</channel>
<channel site="visionplus.id" site_id="00000000000000000139" lang="en" xmltv_id="Reformed21.id@SD">Reformed 21</channel>
<channel site="visionplus.id" site_id="00000000000000000093" lang="en" xmltv_id="ROCKAction.sg@SD">Rock Action</channel>
<channel site="visionplus.id" site_id="00000000000000000092" lang="en" xmltv_id="ROCKEntertainment.sg@SD">Rock Entertainment</channel>
<channel site="visionplus.id" site_id="00000000000000000093" lang="en" xmltv_id="ROCKExtreme.sg@SD">Rock Action</channel>
<channel site="visionplus.id" site_id="00000000000000000150" lang="en" xmltv_id="RT.ru@SD">RT</channel>
<channel site="visionplus.id" site_id="00000000000000000008" lang="en" xmltv_id="SCTV.id@SD">SCTV</channel>
<channel site="visionplus.id" site_id="00000000000000000070" lang="en" xmltv_id="SETTaiwan.tw@SD">Sanlih</channel>

View File

@@ -104,8 +104,8 @@
<channel site="visionplus.id" site_id="00000000000000000011" lang="id" xmltv_id="RajawaliTV.id@SD">RTV</channel>
<channel site="visionplus.id" site_id="00000000000000000001" lang="id" xmltv_id="RCTI.id@SD">RCTI</channel>
<channel site="visionplus.id" site_id="00000000000000000139" lang="id" xmltv_id="Reformed21.id@SD">Reformed 21</channel>
<channel site="visionplus.id" site_id="00000000000000000093" lang="id" xmltv_id="ROCKAction.sg@SD">Rock Action</channel>
<channel site="visionplus.id" site_id="00000000000000000092" lang="id" xmltv_id="ROCKEntertainment.sg@SD">Rock Entertainment</channel>
<channel site="visionplus.id" site_id="00000000000000000093" lang="id" xmltv_id="ROCKExtreme.sg@SD">Rock Action</channel>
<channel site="visionplus.id" site_id="00000000000000000150" lang="id" xmltv_id="RT.ru@SD">RT</channel>
<channel site="visionplus.id" site_id="00000000000000000008" lang="id" xmltv_id="SCTV.id@SD">SCTV</channel>
<channel site="visionplus.id" site_id="00000000000000000070" lang="id" xmltv_id="SETTaiwan.tw@SD">Sanlih</channel>