mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-10 00:50:09 -04:00
Merge branch 'master' into fix/player.ee.co.uk
This commit is contained in:
commit
2212f38f19
40 changed files with 1986 additions and 8701 deletions
10
SITES.md
10
SITES.md
|
@ -74,7 +74,7 @@
|
||||||
| [mediaset.it](sites/mediaset.it) | 🟢 | |
|
| [mediaset.it](sites/mediaset.it) | 🟢 | |
|
||||||
| [melita.com](sites/melita.com) | 🟢 | |
|
| [melita.com](sites/melita.com) | 🟢 | |
|
||||||
| [meo.pt](sites/meo.pt) | 🟢 | |
|
| [meo.pt](sites/meo.pt) | 🟢 | |
|
||||||
| [meuguia.tv](sites/meuguia.tv) | 🔴 | https://github.com/iptv-org/epg/issues/2275 |
|
| [meuguia.tv](sites/meuguia.tv) | 🟢 | |
|
||||||
| [mewatch.sg](sites/mewatch.sg) | 🟢 | |
|
| [mewatch.sg](sites/mewatch.sg) | 🟢 | |
|
||||||
| [mi.tv](sites/mi.tv) | 🟢 | |
|
| [mi.tv](sites/mi.tv) | 🟢 | |
|
||||||
| [mncvision.id](sites/mncvision.id) | 🟢 | |
|
| [mncvision.id](sites/mncvision.id) | 🟢 | |
|
||||||
|
@ -91,7 +91,7 @@
|
||||||
| [mytvsuper.com](sites/mytvsuper.com) | 🟢 | |
|
| [mytvsuper.com](sites/mytvsuper.com) | 🟢 | |
|
||||||
| [nhk.or.jp](sites/nhk.or.jp) | 🟢 | |
|
| [nhk.or.jp](sites/nhk.or.jp) | 🟢 | |
|
||||||
| [nhkworldpremium.com](sites/nhkworldpremium.com) | 🟢 | |
|
| [nhkworldpremium.com](sites/nhkworldpremium.com) | 🟢 | |
|
||||||
| [nos.pt](sites/nos.pt) | 🔴 | https://github.com/iptv-org/epg/issues/2183 |
|
| [nostv.pt](sites/nostv.pt) | 🟢 | |
|
||||||
| [novacyprus.com](sites/novacyprus.com) | 🟢 | |
|
| [novacyprus.com](sites/novacyprus.com) | 🟢 | |
|
||||||
| [novasports.gr](sites/novasports.gr) | 🟢 | |
|
| [novasports.gr](sites/novasports.gr) | 🟢 | |
|
||||||
| [nowplayer.now.com](sites/nowplayer.now.com) | 🔴 | https://github.com/iptv-org/epg/issues/2247 |
|
| [nowplayer.now.com](sites/nowplayer.now.com) | 🔴 | https://github.com/iptv-org/epg/issues/2247 |
|
||||||
|
@ -101,6 +101,7 @@
|
||||||
| [osn.com](sites/osn.com) | 🟢 | |
|
| [osn.com](sites/osn.com) | 🟢 | |
|
||||||
| [pbsguam.org](sites/pbsguam.org) | 🟢 | |
|
| [pbsguam.org](sites/pbsguam.org) | 🟢 | |
|
||||||
| [player.ee.co.uk](sites/player.ee.co.uk) | 🟢 | |
|
| [player.ee.co.uk](sites/player.ee.co.uk) | 🟢 | |
|
||||||
|
| [pickx.be](sites/pickx.be) | 🟢 | |
|
||||||
| [playtv.unifi.com.my](sites/playtv.unifi.com.my) | 🟢 | |
|
| [playtv.unifi.com.my](sites/playtv.unifi.com.my) | 🟢 | |
|
||||||
| [plex.tv](sites/plex.tv) | 🟢 | |
|
| [plex.tv](sites/plex.tv) | 🟢 | |
|
||||||
| [programacion-tv.elpais.com](sites/programacion-tv.elpais.com) | 🟢 | |
|
| [programacion-tv.elpais.com](sites/programacion-tv.elpais.com) | 🟢 | |
|
||||||
|
@ -110,11 +111,10 @@
|
||||||
| [programme-tv.vini.pf](sites/programme-tv.vini.pf) | 🟢 | |
|
| [programme-tv.vini.pf](sites/programme-tv.vini.pf) | 🟢 | |
|
||||||
| [programme.tvb.com](sites/programme.tvb.com) | 🔴 | https://github.com/iptv-org/epg/issues/2254 |
|
| [programme.tvb.com](sites/programme.tvb.com) | 🔴 | https://github.com/iptv-org/epg/issues/2254 |
|
||||||
| [programtv.onet.pl](sites/programtv.onet.pl) | 🟢 | |
|
| [programtv.onet.pl](sites/programtv.onet.pl) | 🟢 | |
|
||||||
| [proximusmwc.be](sites/proximusmwc.be) | 🔴 | https://github.com/iptv-org/epg/issues/2212 |
|
|
||||||
| [raiplay.it](sites/raiplay.it) | 🟢 | |
|
| [raiplay.it](sites/raiplay.it) | 🟢 | |
|
||||||
| [reportv.com.ar](sites/reportv.com.ar) | 🟢 | |
|
| [reportv.com.ar](sites/reportv.com.ar) | 🟢 | |
|
||||||
| [rev.bs](sites/rev.bs) | 🔴 | https://github.com/iptv-org/epg/issues/2255 |
|
| [rev.bs](sites/rev.bs) | 🔴 | https://github.com/iptv-org/epg/issues/2255 |
|
||||||
| [rotana.net](sites/rotana.net) | 🔴 | https://github.com/iptv-org/epg/issues/2256 |
|
| [rotana.net](sites/rotana.net) | 🟢 | |
|
||||||
| [rtb.gov.bn](sites/rtb.gov.bn) | 🔴 | https://github.com/iptv-org/epg/issues/2257 |
|
| [rtb.gov.bn](sites/rtb.gov.bn) | 🔴 | https://github.com/iptv-org/epg/issues/2257 |
|
||||||
| [rthk.hk](sites/rthk.hk) | 🟢 | |
|
| [rthk.hk](sites/rthk.hk) | 🟢 | |
|
||||||
| [rtmklik.rtm.gov.my](sites/rtmklik.rtm.gov.my) | 🟢 | |
|
| [rtmklik.rtm.gov.my](sites/rtmklik.rtm.gov.my) | 🟢 | |
|
||||||
|
@ -151,7 +151,7 @@
|
||||||
| [tv.movistar.com.pe](sites/tv.movistar.com.pe) | 🟢 | |
|
| [tv.movistar.com.pe](sites/tv.movistar.com.pe) | 🟢 | |
|
||||||
| [tv.nu](sites/tv.nu) | 🟢 | |
|
| [tv.nu](sites/tv.nu) | 🟢 | |
|
||||||
| [tv.post.lu](sites/tv.post.lu) | 🟢 | |
|
| [tv.post.lu](sites/tv.post.lu) | 🟢 | |
|
||||||
| [tv.trueid.net](sites/tv.trueid.net) | 🔴 | https://github.com/iptv-org/epg/issues/2164 |
|
| [tv.trueid.net](sites/tv.trueid.net) | 🟢 | |
|
||||||
| [tv.yandex.ru](sites/tv.yandex.ru) | 🟢 | |
|
| [tv.yandex.ru](sites/tv.yandex.ru) | 🟢 | |
|
||||||
| [tv.yettel.hu](sites/tv.yettel.hu) | 🔴 | https://github.com/iptv-org/epg/issues/2263 |
|
| [tv.yettel.hu](sites/tv.yettel.hu) | 🔴 | https://github.com/iptv-org/epg/issues/2263 |
|
||||||
| [tv2go.t-2.net](sites/tv2go.t-2.net) | 🟢 | |
|
| [tv2go.t-2.net](sites/tv2go.t-2.net) | 🟢 | |
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
||||||
{"d":"Anatomia de Grey T.17 Ep.3_#|$_Os médicos do Grey Sloan continuam a enfrentar a nova realidade do COVID-19 e lidam com um paciente conhecido e teimoso. Koracick fica encarregue dos internos e Link opera um terapeuta sexual._#|$_b6fd27f4bd0b404abd4c3fc4faa79024_resized_352x198.jpg_#|$_undefined_#|$_undefined_#|$_RTP 1_#|$_2023-01-27T23:50:00+00:00_#|$_2023-01-28T00:36:00+00:00_#|$_false"}
|
|
|
@ -1 +0,0 @@
|
||||||
{"d":"MasterChef Portugal T.1 Ep.10_#|$_A maior competição de cozinha do mundo arranca ao comando de três dos mais conceituados chefs portugueses: Pedro Pena Bastos, Noélia Jerónimo e Ricardo Costa, que nos vão transmitir os seus conhecimentos e a sua paixão pela cozinha._#|$_8aa511d697f0401a88a0cb1ec2718cc3_resized_352x198.jpg_#|$_undefined_#|$_undefined_#|$_RTP 1_#|$_2023-01-28T21:38:00+00:00_#|$_2023-01-29T00:05:00+00:00_#|$_false"}
|
|
|
@ -1,207 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<channels>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="10">Eurosport 1</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="101">Record TV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="106">RTP Açores</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="108">Al Jazeera</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="112">PFC</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="124">BNT World</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="128">Eurosport 2</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="129">Caça e Pesca</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="130">E! Entertainment</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="139">RTP 1 HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="142">Canção Nova</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="143">MAX</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="144">SET Asia</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="145">Eurosport 1 HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="161">AXN HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="163">AXN White</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="172">TVE 24h</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="174">FOX HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="175">FOX Life HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="181">Toros TV HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="193">ACOLH</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="201">Syfy HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="202">E! Entertainment HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="222">HOT HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="23">TLC</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="245">BTV1 HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="249">BTV1</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="26">CNN</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="27">RTP África</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="33">TeleSUR</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="343">STV Notícias</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="349">Canal de Teste</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="350">Record TV HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="365">Penthouse HD1</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="39">Sky News</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="395">Ativação NOS</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="40">RTL</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="41">ARTE</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="415">AMC HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="417">SPORT TV+ HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="418">SIC HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="419">SIC Notícias HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="425">CMTV HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="447">Globo HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="449">Sport TV NBA</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="47">FTV HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="502">ARD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="505">VIVA Germany</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="506">DSF</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="509">AMC Break HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="51">FTV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="55">Rai Italia</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="553">SIC K HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="554">RTP 2 HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="555">TVI HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="556">RTP 3 HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="563">Eurosport 2 HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="566">Canal 11 HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="57">Zee TV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="571">AzoresTV by VITEC – TESTE</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="58">Canal 180</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="588">Canal Galeria</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="592">RTP Açores HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="600">Canal Galeria</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="678">RTP Memória</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="683">Em Destaque</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="689">Unifé TV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="69">Playboy HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="70">Travel Channel HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="75">AXN White HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="" site_id="81">AMC Break</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="1Plus1International.ua" site_id="24">1+1</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="24Kitchen.pt" site_id="243">24Kitchen HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="3sat.de" site_id="676">3SAT</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="AfroMusicChannel.pt" site_id="272">Afro Music Channel</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="AMCCrime.pt" site_id="411">AMC Crime</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="AMC.pt" site_id="436">AMC</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="ARTV.pt" site_id="49">ARTV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="AXNMovies.pt" site_id="164">AXN Movies</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="AXN.pt" site_id="77">AXN</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="BabyTV.uk" site_id="448">Baby TV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Biggs.pt" site_id="176">Biggs</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="BloombergTVEurope.uk" site_id="44">Bloomberg</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="BVN.nl" site_id="28">BVN</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Canal11.pt" site_id="565">Canal 11 HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="CanalHollywood.pt" site_id="13">Canal Hollywood</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="CanalNos.pt" site_id="408">Canal NOS HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="CanalPanda.pt" site_id="31">Canal Panda</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="CanalQ.pt" site_id="235">Canal Q</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="CartoonNetwork.pt" site_id="252">Cartoon Network HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="CasaeCozinha.pt" site_id="572">Casa e Cozinha HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="CCTV4Europe.cn" site_id="316">CCTV 4</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="CGTNEurope.cn" site_id="312">CGTN</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="CMTV.pt" site_id="381">CMTV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="CNBCEurope.uk" site_id="52">CNBC</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="CNNPortugal.pt" site_id="160">CNN Portugal</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="CubavisionInternacional.cu" site_id="121">Cubavisión Internacional</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="DiscoveryChannel.pt" site_id="22">Discovery Channel</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="DisneyChannel.pt" site_id="594">Disney Channel HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="DisneyJunior.pt" site_id="226">Disney Junior</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="DogTV.us" site_id="371">DOGTV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="DWDeutsch.de" site_id="541">DW (Alemão)</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="DWEnglish.de" site_id="115">DW</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Eleven1.pt" site_id="518">Eleven 1</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Eleven2.pt" site_id="519">Eleven 2</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Eleven3.pt" site_id="513">Eleven 3</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Eleven4.pt" site_id="514">Eleven 4</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Eleven5.pt" site_id="515">Eleven 5</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Eleven6.pt" site_id="516">Eleven 6</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="EuronewsPortuguese.fr" site_id="25">Euronews</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="FightNetwork.ca" site_id="236">Fight Network HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="FoodNetworkEMEA.us" site_id="62">Food Network HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="FoxComedy.pt" site_id="116">FOX Comedy</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="FoxCrime.pt" site_id="114">FOX Crime</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="FoxLife.pt" site_id="86">FOX Life</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="FoxMovies.pt" site_id="177">FOX Movies</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Fox.pt" site_id="85">FOX</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="France24English.fr" site_id="109">France 24 (I)</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="France24French.fr" site_id="132">France 24 (F)</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="FUELTV.at" site_id="78">Fuel TV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="GaliciaTVEuropa.es" site_id="54">TV Galicia</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="GloboNow.pt" site_id="111">Globo Now HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="GloboPortugal.pt" site_id="230">Globo</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Historia.pt" site_id="19">Canal História</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="HorseTVHD.it" site_id="680">Horse TV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="HOTMan.pt" site_id="672">HOT Man</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="HOTTaboo.pt" site_id="671">HOT Taboo</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="HOT.pt" site_id="171">HOT</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="InvestigationDiscoveryEurope.us" site_id="530">ID Investigation Discovery</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="KBSWorld.kr" site_id="234">KBS World HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="KiKA.de" site_id="677">KiKa</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="KuriakosTV.pt" site_id="426">Kuriakos TV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="LocalVisaoTV.pt" site_id="229">Localvisão TV HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="M6.fr" site_id="37">M6</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="MCMPop.fr" site_id="368">MCM Pop</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="MCMTop.fr" site_id="34">MCM Top</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Mezzo.fr" site_id="50">Mezzo</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="MezzoLive.fr" site_id="356">Mezzo Live HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Motorvision.de" site_id="354">Motorvision HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="MTV00s.uk" site_id="35">MTV 00s</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="MTVLive.uk" site_id="560">MTV Live</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="MTV.pt" site_id="36">MTV Portugal</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="MyZenTV.fr" site_id="167">MyZen TV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="NationalGeographic.pt" site_id="59">National Geographic</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="NationalGeographicWild.pt" site_id="82">National Geographic WILD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="NauticalChannel.it" site_id="679">Nautical Channel</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="NHKWorldJapan.jp" site_id="46">NHK World TV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Nickelodeon.pt" site_id="94">Nickelodeon</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="NickelodeonUkrainePlutoTV.ua" site_id="681">Nickelodeon Ukraine Pluto TV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="NickJr.pt" site_id="444">Nick Jr.</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="NosStudios.pt" site_id="546">NOS Studios</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Odisseia.pt" site_id="20">Odisseia</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="PandaKids.pt" site_id="597">Panda KIDS</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="PhoenixCNEChannel.hk" site_id="119">Phoenix CNE</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="PhoenixInfoNewsChannel.hk" site_id="120">Phoenix Infonews</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="PortoCanal.pt" site_id="105">Porto Canal</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="ProSieben.de" site_id="503">ProSieben</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="RecordNews.br" site_id="30">Record News</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="RT.ru" site_id="165">Russia Today</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="RTP1.pt" site_id="5">RTP 1</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="RTP2.pt" site_id="3">RTP 2</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="RTP3.pt" site_id="64">RTP 3</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="RTPMadeira.pt" site_id="107">RTP Madeira</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="RTPMemoria.pt" site_id="80">RTP Memória</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="RTRPlanetaEurope.ru" site_id="117">RTR Planeta</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SAT1.de" site_id="501">SAT 1</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Sextreme.br" site_id="364">Sextreme</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SIC.pt" site_id="7">SIC</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SICCaras.pt" site_id="251">SIC Caras</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SICK.pt" site_id="552">SIC K</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SICMulher.pt" site_id="71">SIC Mulher</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SICNoticias.pt" site_id="9">SIC Notícias</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SICRadical.pt" site_id="61">SIC Radical</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SPlus.pt" site_id="510">S+ HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SportingTV.pt" site_id="351">Sporting TV</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SportTV1.pt" site_id="17">SPORT TV1</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SportTV2.pt" site_id="95">SPORT TV2</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SportTV3.pt" site_id="136">SPORT TV3</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SportTV4.pt" site_id="246">SPORT TV4</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SportTV5.pt" site_id="179">SPORT TV5</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SportTV6.pt" site_id="610">Sport TV 6 HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="SportTVPlus.pt" site_id="416">SPORT TV+</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="StingrayiConcerts.ca" site_id="42">Stingray iConcerts HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="RTLSuper.de" site_id="200">Super RTL</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Syfy.pt" site_id="542">SYFY</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TCVInternacional.cv" site_id="237">TCV Internacional</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TPAi.ao" site_id="138">TPA Internacional</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TraceToca.fr" site_id="543">Trace Toca</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TraceUrban.fr" site_id="65">Trace Urban HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TravelChannelEMEA.uk" site_id="100">Travel Channel</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TV5MondeEurope.fr" site_id="53">TV5 Monde</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TVCineAction.pt" site_id="84">TVCine ACTION</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TVCineEdition.pt" site_id="18">TVCine EDITION</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TVCineEmotion.pt" site_id="76">TVCine EMOTION</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TVCineTop.pt" site_id="16">TVCine TOP</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TVEInternacionalEuropeAsia.es" site_id="48">TVEi</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TVI.pt" site_id="8">TVI</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TVIFiccao.pt" site_id="574">TVI Ficção HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TVIReality.pt" site_id="382">TVI Reality</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="TVRInternational.ro" site_id="123">TVR Internacional</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="Venus.ar" site_id="393">Venus</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="ZapViva.ao" site_id="538">ZAP Viva HD</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="ZDF.de" site_id="504">ZDF</channel>
|
|
||||||
<channel site="nos.pt" lang="pt" xmltv_id="ZDFneo.de" site_id="690">ZDF Neo</channel>
|
|
||||||
</channels>
|
|
|
@ -1,114 +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: 'nos.pt',
|
|
||||||
days: 2,
|
|
||||||
url({ channel }) {
|
|
||||||
return `https://www.nos.pt/particulares/televisao/guia-tv/Pages/channel.aspx?channel=${channel.site_id}`
|
|
||||||
},
|
|
||||||
async parser({ content, date }) {
|
|
||||||
const programs = []
|
|
||||||
const items = parseItems(content, date)
|
|
||||||
date = date.subtract(1, 'd')
|
|
||||||
for (let item of items) {
|
|
||||||
const $item = cheerio.load(item)
|
|
||||||
|
|
||||||
const channelAcronym = parseChannelAcronym(content)
|
|
||||||
const programId = parseProgramId($item)
|
|
||||||
const details = await loadProgramDetails(channelAcronym, programId)
|
|
||||||
|
|
||||||
programs.push({
|
|
||||||
title: details.title,
|
|
||||||
description: details.description,
|
|
||||||
icon: parseIcon(details),
|
|
||||||
start: dayjs(details.start),
|
|
||||||
stop: dayjs(details.stop)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
return programs
|
|
||||||
},
|
|
||||||
async channels() {
|
|
||||||
const html = await axios
|
|
||||||
.get('https://www.nos.pt/particulares/televisao/guia-tv/Pages/default.aspx')
|
|
||||||
.then(r => r.data)
|
|
||||||
.catch(console.log)
|
|
||||||
|
|
||||||
const $ = cheerio.load(html)
|
|
||||||
const items = $('#guide-filters > dl.dropdown-ord > dd > ul > li').toArray()
|
|
||||||
|
|
||||||
return items.map(item => {
|
|
||||||
const $item = cheerio.load(item)
|
|
||||||
|
|
||||||
return {
|
|
||||||
lang: 'pt',
|
|
||||||
site_id: $item('.value').text().trim(),
|
|
||||||
name: $item('a').clone().children().remove().end().text().trim()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function loadProgramDetails(channelAcronym, programId) {
|
|
||||||
if (!channelAcronym || !programId) return {}
|
|
||||||
const data = await axios
|
|
||||||
.post(
|
|
||||||
'https://www.nos.pt/_layouts/15/Armstrong/ApplicationPages/EPGGetProgramsAndDetails.aspx/GetProgramDetails',
|
|
||||||
{
|
|
||||||
programId,
|
|
||||||
channelAcronym,
|
|
||||||
hour: 'undefined',
|
|
||||||
startHour: 'undefined',
|
|
||||||
endHour: 'undefined'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
headers: {
|
|
||||||
'content-type': 'application/json; charset=UTF-8'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.then(r => r.data)
|
|
||||||
.catch(console.log)
|
|
||||||
|
|
||||||
if (!data) return {}
|
|
||||||
|
|
||||||
const [title, description, image, , , , start, stop] = data.d.split('_#|$_')
|
|
||||||
|
|
||||||
return {
|
|
||||||
title,
|
|
||||||
description,
|
|
||||||
image,
|
|
||||||
start,
|
|
||||||
stop
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseIcon(details) {
|
|
||||||
return details.image ? `https://images.nos.pt/${details.image}` : null
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseProgramId($item) {
|
|
||||||
return $item('a').attr('id')
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseChannelAcronym(content) {
|
|
||||||
const $ = cheerio.load(content)
|
|
||||||
|
|
||||||
return $('#channel-logo > img').attr('alt')
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseItems(content, date) {
|
|
||||||
const day = date.date()
|
|
||||||
const $ = cheerio.load(content)
|
|
||||||
|
|
||||||
return $(`#day${day} > ul > li`).toArray()
|
|
||||||
}
|
|
|
@ -1,97 +0,0 @@
|
||||||
const { parser, url } = require('./nos.pt.config.js')
|
|
||||||
const fs = require('fs')
|
|
||||||
const path = require('path')
|
|
||||||
const axios = require('axios')
|
|
||||||
const dayjs = require('dayjs')
|
|
||||||
const utc = require('dayjs/plugin/utc')
|
|
||||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
|
||||||
dayjs.extend(customParseFormat)
|
|
||||||
dayjs.extend(utc)
|
|
||||||
|
|
||||||
jest.mock('axios')
|
|
||||||
|
|
||||||
const date = dayjs.utc('2023-01-28', 'YYYY-MM-DD').startOf('d')
|
|
||||||
const channel = {
|
|
||||||
site_id: '5',
|
|
||||||
xmltv_id: 'RTP1.pt'
|
|
||||||
}
|
|
||||||
|
|
||||||
it('can generate valid url', () => {
|
|
||||||
expect(url({ channel })).toBe(
|
|
||||||
'https://www.nos.pt/particulares/televisao/guia-tv/Pages/channel.aspx?channel=5'
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('can parse response', async () => {
|
|
||||||
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.html'), 'utf8')
|
|
||||||
|
|
||||||
axios.post.mockImplementation((url, data) => {
|
|
||||||
if (
|
|
||||||
url ===
|
|
||||||
'https://www.nos.pt/_layouts/15/Armstrong/ApplicationPages/EPGGetProgramsAndDetails.aspx/GetProgramDetails' &&
|
|
||||||
JSON.stringify(data) ===
|
|
||||||
JSON.stringify({
|
|
||||||
programId: '81361',
|
|
||||||
channelAcronym: 'RTP1',
|
|
||||||
hour: 'undefined',
|
|
||||||
startHour: 'undefined',
|
|
||||||
endHour: 'undefined'
|
|
||||||
})
|
|
||||||
) {
|
|
||||||
return Promise.resolve({
|
|
||||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/program_0.json')))
|
|
||||||
})
|
|
||||||
} else if (
|
|
||||||
url ===
|
|
||||||
'https://www.nos.pt/_layouts/15/Armstrong/ApplicationPages/EPGGetProgramsAndDetails.aspx/GetProgramDetails' &&
|
|
||||||
JSON.stringify(data) ===
|
|
||||||
JSON.stringify({
|
|
||||||
programId: '81382',
|
|
||||||
channelAcronym: 'RTP1',
|
|
||||||
hour: 'undefined',
|
|
||||||
startHour: 'undefined',
|
|
||||||
endHour: 'undefined'
|
|
||||||
})
|
|
||||||
) {
|
|
||||||
return Promise.resolve({
|
|
||||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/program_21.json')))
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
return Promise.resolve({ data: '' })
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
let results = await parser({ content, date })
|
|
||||||
results = results.map(p => {
|
|
||||||
p.start = p.start.toJSON()
|
|
||||||
p.stop = p.stop.toJSON()
|
|
||||||
return p
|
|
||||||
})
|
|
||||||
|
|
||||||
expect(results[0]).toMatchObject({
|
|
||||||
start: '2023-01-27T23:50:00.000Z',
|
|
||||||
stop: '2023-01-28T00:36:00.000Z',
|
|
||||||
title: 'Anatomia de Grey T.17 Ep.3',
|
|
||||||
description:
|
|
||||||
'Os médicos do Grey Sloan continuam a enfrentar a nova realidade do COVID-19 e lidam com um paciente conhecido e teimoso. Koracick fica encarregue dos internos e Link opera um terapeuta sexual.',
|
|
||||||
icon: 'https://images.nos.pt/b6fd27f4bd0b404abd4c3fc4faa79024_resized_352x198.jpg'
|
|
||||||
})
|
|
||||||
|
|
||||||
expect(results[21]).toMatchObject({
|
|
||||||
start: '2023-01-28T21:38:00.000Z',
|
|
||||||
stop: '2023-01-29T00:05:00.000Z',
|
|
||||||
title: 'MasterChef Portugal T.1 Ep.10',
|
|
||||||
description:
|
|
||||||
'A maior competição de cozinha do mundo arranca ao comando de três dos mais conceituados chefs portugueses: Pedro Pena Bastos, Noélia Jerónimo e Ricardo Costa, que nos vão transmitir os seus conhecimentos e a sua paixão pela cozinha.',
|
|
||||||
icon: 'https://images.nos.pt/8aa511d697f0401a88a0cb1ec2718cc3_resized_352x198.jpg'
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
it('can handle empty guide', async () => {
|
|
||||||
const results = await parser({
|
|
||||||
date,
|
|
||||||
content: fs.readFileSync(path.resolve(__dirname, '__data__/no_content.html'), 'utf8')
|
|
||||||
})
|
|
||||||
|
|
||||||
expect(results).toMatchObject([])
|
|
||||||
})
|
|
|
@ -1,21 +0,0 @@
|
||||||
# nos.pt
|
|
||||||
|
|
||||||
https://nostv.pt/guia/
|
|
||||||
|
|
||||||
### Download the guide
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm run grab -- --site=nos.pt
|
|
||||||
```
|
|
||||||
|
|
||||||
### Update channel list
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm run channels:parse -- --config=./sites/nos.pt/nos.pt.config.js --output=./sites/nos.pt/nos.pt.channels.xml
|
|
||||||
```
|
|
||||||
|
|
||||||
### Test
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm test -- nos.pt
|
|
||||||
```
|
|
1
sites/nostv.pt/__data__/data.json
Normal file
1
sites/nostv.pt/__data__/data.json
Normal file
File diff suppressed because one or more lines are too long
171
sites/nostv.pt/nostv.pt.channels.xml
Normal file
171
sites/nostv.pt/nostv.pt.channels.xml
Normal file
|
@ -0,0 +1,171 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<channels>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="55">Rai Italia</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="58">Canal 180</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="124">BNT World</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="129">Caça e Pesca</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="138">TPA Notícias</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="172">TVE 24h</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="245">BTV1 HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="343">STV Notícias</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="449">Sport TV NBA</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="588">Canal Galeria</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="684">ELEVEN EXTRA 1</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="685">ELEVEN EXTRA 2</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="686">ELEVEN EXTRA 3</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="687">ELEVEN EXTRA 4</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="689">Unifé TV</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="694">OneToro TV</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="697">New Brasil</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="" site_id="702">Dizi</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="1Plus1International.ua" site_id="24">1+1</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="24Kitchen.pt" site_id="243">24Kitchen HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="AfroMusicChannel.pt" site_id="272">Afro Music Channel</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="AlJazeera.qa" site_id="108">Al Jazeera</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="AMC.pt" site_id="415">AMC HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="AMCBreak.pt" site_id="509">AMC Break HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="AMCCrime.pt" site_id="411">AMC Crime</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="AMCCrime.pt" site_id="545">AMC Crime HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="arte.fr" site_id="41">ARTE</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="ARTV.pt" site_id="49">ARTV</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="AXN.pt" site_id="161">AXN HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="AXNMovies.pt" site_id="194">AXN Movies HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="AXNWhite.pt" site_id="75">AXN White HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="BabyTV.uk" site_id="448">Baby TV</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Biggs.pt" site_id="176">Biggs</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="BloombergTVEurope.uk" site_id="44">Bloomberg</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="BVN.nl" site_id="28">BVN</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Canal11.pt" site_id="565">Canal 11 HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="CanalHollywood.pt" site_id="14">Canal Hollywood HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Canalnostv.pt" site_id="408">Canal NOS HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="CanalPanda.pt" site_id="593">Canal Panda HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="CanalQ.pt" site_id="235">Canal Q</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="CartoonNetwork.pt" site_id="252">Cartoon Network HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="CasaeCozinha.pt" site_id="572">Casa e Cozinha HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="CCTV4Europe.cn" site_id="316">CCTV 4</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="CGTNEurope.cn" site_id="312">CGTN</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="CMTV.pt" site_id="425">CMTV HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="CNBCEurope.uk" site_id="52">CNBC</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="CNNInternationalEurope.us" site_id="26">CNN</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="CNNPortugal.pt" site_id="557">CNN Portugal HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="CubavisionInternacional.cu" site_id="121">Cubavisión Internacional</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="DiscoveryChannel.pt" site_id="22">Discovery Channel</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="DiscoveryChannel.pt" site_id="561">Discovery HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="DisneyChannel.pt" site_id="594">Disney Channel HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="DisneyJunior.pt" site_id="673">Disney Junior HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="DogTV.us" site_id="371">DOGTV</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="DWDeutsch.de" site_id="541">DW (Alemão)</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="DWEnglish.de" site_id="115">DW</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="E.fr" site_id="202">E! Entertainment HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Eleven1.pt" site_id="518">ELEVEN SPORTS 1</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Eleven2.pt" site_id="519">ELEVEN SPORTS 2</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Eleven3.pt" site_id="513">ELEVEN SPORTS 3</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Eleven4.pt" site_id="514">ELEVEN SPORTS 4</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Eleven5.pt" site_id="515">ELEVEN SPORTS 5</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Eleven6.pt" site_id="516">ELEVEN SPORTS 6</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="EuronewsPortuguese.fr" site_id="25">Euronews</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Eurosport1.fr" site_id="145">Eurosport 1 HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Eurosport2.fr" site_id="128">Eurosport 2</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Eurosport2.fr" site_id="563">Eurosport 2 HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="FashionTVEurope.fr" site_id="51">FTV</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="FashionTVHD.fr" site_id="47">FTV HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="FightNetwork.ca" site_id="236">Fight Network HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="FoodNetworkEMEA.us" site_id="62">Food Network HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Fox.pt" site_id="174">FOX HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="FoxComedy.pt" site_id="113">FOX Comedy HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="FoxCrime.pt" site_id="114">FOX Crime</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="FoxCrime.pt" site_id="244">FOX Crime HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="FoxLife.pt" site_id="175">FOX Life HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="FoxMovies.pt" site_id="177">FOX Movies</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="FoxMovies.pt" site_id="242">FOX Movies HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="France24English.fr" site_id="109">France 24 (I)</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="France24French.fr" site_id="132">France 24 (F)</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="FUELTV.at" site_id="72">Fuel TV HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="GaliciaTVEuropa.es" site_id="54">TV Galicia</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="GloboNow.pt" site_id="111">Globo News</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="GloboPortugal.pt" site_id="447">Globo HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Historia.pt" site_id="19">Canal História</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Historia.pt" site_id="544">Canal História HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="HorseTVHD.it" site_id="680">Horse TV</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="InvestigationDiscoveryEurope.us" site_id="530">ID Investigation Discovery</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="KBSWorld.kr" site_id="234">KBS World HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="KuriakosTV.pt" site_id="426">Kuriakos TV</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="LocalVisaoTV.pt" site_id="229">Localvisão TV HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="M6.fr" site_id="37">M6</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="MCMPop.fr" site_id="368">MCM Pop</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="MCMTop.fr" site_id="34">MCM Top</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Mezzo.fr" site_id="50">Mezzo</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="MezzoLive.fr" site_id="356">Mezzo Live HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Motorvision.de" site_id="354">Motorvision HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="MTV00s.uk" site_id="35">MTV 00s</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="MTV.pt" site_id="377">MTV Portugal HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="MTVLive.uk" site_id="560">MTV Live</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="MyZenTV.fr" site_id="167">MyZen TV</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="NationalGeographic.pt" site_id="134">National Geographic HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="NationalGeographicWild.pt" site_id="83">National Geographic WILD HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="NauticalChannel.it" site_id="679">Nautical Channel</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="NHKWorldJapan.jp" site_id="46">NHK World TV</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Nickelodeon.pt" site_id="94">Nickelodeon</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="NickJr.pt" site_id="444">Nick Jr.</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="NosStudios.pt" site_id="547">NOS Studios HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Odisseia.pt" site_id="441">ODISSEIA HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="PandaKids.pt" site_id="597">Panda KIDS</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="PFC.br" site_id="112">PFC</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="PhoenixCNEChannel.hk" site_id="119">Phoenix CNE</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="PhoenixInfoNewsChannel.hk" site_id="120">Phoenix Infonews</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="PortoCanal.pt" site_id="423">Porto Canal HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="RecordNews.br" site_id="30">Record News</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="RecordTVEuropa.pt" site_id="350">Record TV HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="RT.ru" site_id="165">Russia Today</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="RTL.hr" site_id="40">RTL</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="RTLSuper.de" site_id="200">Super RTL</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="RTP1.pt" site_id="139">RTP 1 HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="RTP2.pt" site_id="554">RTP 2 HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="RTP3.pt" site_id="556">RTP 3 HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="RTPAcores.pt" site_id="106">RTP Açores</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="RTPAfrica.pt" site_id="27">RTP África</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="RTPMadeira.pt" site_id="107">RTP Madeira</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="RTPMemoria.pt" site_id="80">RTP Memória</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="RTRPlanetaEurope.ru" site_id="117">RTR Planeta</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SIC.pt" site_id="418">SIC HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SICCaras.pt" site_id="421">SIC Caras HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SICK.pt" site_id="553">SIC K HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SICMulher.pt" site_id="420">SIC Mulher HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SICNoticias.pt" site_id="419">SIC Notícias HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SICRadical.pt" site_id="422">SIC Radical HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SkyNewsAustralia.au" site_id="39">Sky News</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SonyEntertainmentTelevisionAsia.in" site_id="144">SET Asia</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SonyMax.uk" site_id="143">MAX</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SPlus.pt" site_id="510">S+ HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SportingTV.pt" site_id="352">Sporting TV HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SportTV1.pt" site_id="137">SPORT TV1 HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SportTV2.pt" site_id="187">SPORT TV2 HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SportTV3.pt" site_id="188">SPORT TV3 HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SportTV4.pt" site_id="247">SPORT TV4 HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SportTV5.pt" site_id="180">SPORT TV5 HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SportTV6.pt" site_id="610">Sport TV 6 HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="SportTVPlus.pt" site_id="417">SPORT TV+ HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="StingrayiConcerts.ca" site_id="42">Stingray iConcerts HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Syfy.pt" site_id="201">Syfy HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TCVInternacional.cv" site_id="237">TCV Internacional</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="Telesur.ve" site_id="33">TeleSUR</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TLC.pt" site_id="23">TLC</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TraceToca.fr" site_id="543">Trace Toca</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TraceUrban.fr" site_id="65">Trace Urban HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TravelChannelEMEA.uk" site_id="100">Travel Channel</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TravelChannelHD.uk" site_id="70">Travel Channel HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TV5MondeEurope.fr" site_id="53">TV5 Monde</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TVCancaoNova.pt" site_id="142">Canção Nova</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TVCineAction.pt" site_id="224">TVCine ACTION HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TVCineEdition.pt" site_id="74">TVCine EDITION HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TVCineEmotion.pt" site_id="223">TVCine EMOTION HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TVCineTop.pt" site_id="141">TVCine TOP HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TVEInternacionalEuropeAsia.es" site_id="48">TVEi</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TVI.pt" site_id="555">TVI HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TVIFiccao.pt" site_id="574">TVI Ficção HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TVIReality.pt" site_id="567">TVI Reality HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="TVRInternational.ro" site_id="123">TVR Internacional</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="WSport.za" site_id="701">W-Sport</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="ZapViva.ao" site_id="538">ZAP Viva HD</channel>
|
||||||
|
<channel site="nostv.pt" lang="pt" xmltv_id="ZeeTV.in" site_id="57">Zee TV</channel>
|
||||||
|
</channels>
|
60
sites/nostv.pt/nostv.pt.config.js
Normal file
60
sites/nostv.pt/nostv.pt.config.js
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
const axios = require('axios')
|
||||||
|
const dayjs = require('dayjs')
|
||||||
|
const utc = require('dayjs/plugin/utc')
|
||||||
|
|
||||||
|
dayjs.extend(utc)
|
||||||
|
|
||||||
|
const headers = {
|
||||||
|
'X-Apikey': 'xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI',
|
||||||
|
'X-Core-Appversion': '2.14.0.1',
|
||||||
|
'X-Core-Contentratinglimit': '0',
|
||||||
|
'X-Core-Deviceid': '',
|
||||||
|
'X-Core-Devicetype': 'web',
|
||||||
|
'Origin': 'https://nostv.pt',
|
||||||
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
site: 'nostv.pt',
|
||||||
|
days: 2,
|
||||||
|
url({ channel, date }) {
|
||||||
|
return `https://tyr-prod.apigee.net/nostv/ott/schedule/range/contents/guest?channels=${channel.site_id}&minDate=${date.format('YYYY-MM-DD')}T00:00:00Z&maxDate=${date.format('YYYY-MM-DD')}T23:59:59Z&isDateInclusive=true&client_id=${headers['X-Apikey']}`
|
||||||
|
},
|
||||||
|
request: { headers },
|
||||||
|
parser({ content }) {
|
||||||
|
const programs = []
|
||||||
|
if (content) {
|
||||||
|
const items = Array.isArray(content) ? content : JSON.parse(content)
|
||||||
|
items.forEach(item => {
|
||||||
|
programs.push({
|
||||||
|
title: item.Metadata?.Title,
|
||||||
|
sub_title: item.Metadata?.SubTitle ? item.Metadata?.SubTitle : null,
|
||||||
|
description: item.Metadata?.Description,
|
||||||
|
season: item.Metadata?.Season,
|
||||||
|
episode: item.Metadata?.Episode,
|
||||||
|
icon: item.Images ?
|
||||||
|
`https://mage.stream.nos.pt/v1/nostv_mage/Images?sourceUri=${item.Images[0].Url}&profile=ott_1_452x340&client_id=${headers['X-Apikey']}` :
|
||||||
|
null,
|
||||||
|
start: dayjs.utc(item.UtcDateTimeStart),
|
||||||
|
stop: dayjs.utc(item.UtcDateTimeEnd)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return programs
|
||||||
|
},
|
||||||
|
async channels() {
|
||||||
|
const result = await axios
|
||||||
|
.get(`https://tyr-prod.apigee.net/nostv/ott/channels/guest?client_id=${headers['X-Apikey']}`, { headers })
|
||||||
|
.then(r => r.data)
|
||||||
|
.catch(console.error)
|
||||||
|
|
||||||
|
return result.map(item => {
|
||||||
|
return {
|
||||||
|
lang: 'pt',
|
||||||
|
site_id: item.ServiceId,
|
||||||
|
name: item.Name
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
51
sites/nostv.pt/nostv.pt.test.js
Normal file
51
sites/nostv.pt/nostv.pt.test.js
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
const { parser, url } = require('./nostv.pt.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('2023-12-11').startOf('d')
|
||||||
|
const channel = {
|
||||||
|
site_id: '510',
|
||||||
|
xmltv_id: 'SPlus.pt'
|
||||||
|
}
|
||||||
|
|
||||||
|
it('can generate valid url', () => {
|
||||||
|
expect(url({ channel, date })).toBe(
|
||||||
|
'https://tyr-prod.apigee.net/nostv/ott/schedule/range/contents/guest?channels=510&minDate=2023-12-11T00:00:00Z&maxDate=2023-12-11T23:59:59Z&isDateInclusive=true&client_id=xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI'
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('can parse response', () => {
|
||||||
|
const content = fs.readFileSync(path.resolve(__dirname, '__data__/data.json'))
|
||||||
|
const results = parser({ content })
|
||||||
|
.map(p => {
|
||||||
|
p.start = p.start.toJSON()
|
||||||
|
p.stop = p.stop.toJSON()
|
||||||
|
return p
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(results[0]).toMatchObject({
|
||||||
|
start: '2023-12-11T16:30:00.000Z',
|
||||||
|
stop: '2023-12-11T17:00:00.000Z',
|
||||||
|
title: 'Village Vets',
|
||||||
|
description:
|
||||||
|
'A história de dois melhores amigos veterinários e o seu extraordinário trabalho na Austrália.',
|
||||||
|
season: 1,
|
||||||
|
episode: 12,
|
||||||
|
icon: 'https://mage.stream.nos.pt/v1/nostv_mage/Images?sourceUri=http://vip.pam.local.internal/PAM.Images/Store/8329ed1aec5d4c0faa2056972256ff9f&profile=ott_1_452x340&client_id=xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('can handle empty guide', async () => {
|
||||||
|
const results = await parser({
|
||||||
|
date,
|
||||||
|
content: '[]'
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(results).toMatchObject([])
|
||||||
|
})
|
21
sites/nostv.pt/readme.md
Normal file
21
sites/nostv.pt/readme.md
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# nostv.pt
|
||||||
|
|
||||||
|
https://nostv.pt/guia/
|
||||||
|
|
||||||
|
### Download the guide
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run grab -- --site=nostv.pt
|
||||||
|
```
|
||||||
|
|
||||||
|
### Update channel list
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run channels:parse -- --config=./sites/nostv.pt/nostv.pt.config.js --output=./sites/nostv.pt/nostv.pt.channels.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
### Test
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm test -- nostv.pt
|
||||||
|
```
|
1
sites/pickx.be/__data__/data.json
Normal file
1
sites/pickx.be/__data__/data.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"channelId":"UID0118","duration":20,"programReferenceNumber":"51632189","programScheduleStart":"2023-12-12T23:55:00.000Z","programScheduleEnd":"2023-12-13T00:15:00.000Z","onRewind":false,"scheduleTrailId":202312052657806,"fetchOnRewind":true,"category":"C.News","subCategory":"C.Magazine","program":{"actors":[],"VCHIP":"","blacklist":false,"blacklistInterval":0,"blacklistOTT":false,"blacklistOTTInterval":0,"catchupGracePeriod":0,"category":"C.News","description":"Le journal de vivre ici.","director":"","disableNPVR":false,"episodeNumber":null,"episodeTitle":"","extRatingCodes":"","facebookObjID":"","posterFileName":"250_250_4B990CC58066A7B2A660AFA0BDDE5C41.jpg","programReferenceNumber":"51632189","programType":"NE","releaseYear":null,"seasonNumber":null,"seriesGID":"","seriesID":"","subCategory":"C.Magazine","title":"Le 22h30","trueDuration":20,"supportForVisuallyImpaired":false,"supportForHearingImpaired":true,"translatedCategory":{"fr":"Info","nl":"Nieuws"},"translatedSubCategory":{"fr":"Magazine","nl":"Magazine"}}}]
|
111
sites/pickx.be/pickx.be.config.js
Normal file
111
sites/pickx.be/pickx.be.config.js
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
const axios = require('axios')
|
||||||
|
const dayjs = require('dayjs')
|
||||||
|
const utc = require('dayjs/plugin/utc')
|
||||||
|
|
||||||
|
dayjs.extend(utc)
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
site: 'pickx.be',
|
||||||
|
days: 2,
|
||||||
|
url({ channel, date }) {
|
||||||
|
return `https://px-epg.azureedge.net/airings/11702375189765v.4.2/${date.format('YYYY-MM-DD')}/channel/${channel.site_id}?timezone=Europe%2FBrussels`
|
||||||
|
},
|
||||||
|
request: {
|
||||||
|
headers: {
|
||||||
|
Origin: 'https://www.pickx.be',
|
||||||
|
Referer: 'https://www.pickx.be/'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
parser({ channel, content }) {
|
||||||
|
const programs = []
|
||||||
|
if (content) {
|
||||||
|
const items = JSON.parse(content)
|
||||||
|
items.forEach(item => {
|
||||||
|
programs.push({
|
||||||
|
title: item.program.title,
|
||||||
|
sub_title: item.program.episodeTitle,
|
||||||
|
description: item.program.description,
|
||||||
|
category: item.program.translatedCategory?.[channel.lang] ?
|
||||||
|
item.program.translatedCategory[channel.lang] : item.program.category.split('.')[1],
|
||||||
|
icon: item.program.posterFileName ?
|
||||||
|
`https://experience-cache.proximustv.be/posterserver/poster/EPG/w-166_h-110/${item.program.posterFileName}` : null,
|
||||||
|
season: item.program.seasonNumber,
|
||||||
|
episode: item.program.episodeNumber,
|
||||||
|
actors: item.program.actors,
|
||||||
|
director: item.program.director ? [item.program.director] : null,
|
||||||
|
start: dayjs.utc(item.programScheduleStart),
|
||||||
|
stop: dayjs.utc(item.programScheduleEnd)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return programs
|
||||||
|
},
|
||||||
|
async channels({ lang = ''}) {
|
||||||
|
const query = {
|
||||||
|
operationName: 'getChannels',
|
||||||
|
variables: {
|
||||||
|
language: lang,
|
||||||
|
queryParams: {},
|
||||||
|
'id': '0',
|
||||||
|
params: {
|
||||||
|
shouldReadFromCache: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
query:
|
||||||
|
`query getChannels($language: String!, $queryParams: ChannelQueryParams, $id: String, $params: ChannelParams) {
|
||||||
|
channels(language: $language, queryParams: $queryParams, id: $id, params: $params) {
|
||||||
|
id
|
||||||
|
channelReferenceNumber
|
||||||
|
name
|
||||||
|
callLetter
|
||||||
|
number
|
||||||
|
logo {
|
||||||
|
key
|
||||||
|
url
|
||||||
|
__typename
|
||||||
|
}
|
||||||
|
language
|
||||||
|
hd
|
||||||
|
radio
|
||||||
|
replayable
|
||||||
|
ottReplayable
|
||||||
|
playable
|
||||||
|
ottPlayable
|
||||||
|
recordable
|
||||||
|
subscribed
|
||||||
|
cloudRecordable
|
||||||
|
catchUpWindowInHours
|
||||||
|
isOttNPVREnabled
|
||||||
|
ottNPVRStart
|
||||||
|
subscription {
|
||||||
|
channelRef
|
||||||
|
subscribed
|
||||||
|
upselling {
|
||||||
|
upsellable
|
||||||
|
packages
|
||||||
|
__typename
|
||||||
|
}
|
||||||
|
__typename
|
||||||
|
}
|
||||||
|
packages
|
||||||
|
__typename
|
||||||
|
}
|
||||||
|
}`
|
||||||
|
}
|
||||||
|
const result = await axios
|
||||||
|
.post('https://api.proximusmwc.be/tiams/v2/graphql', query)
|
||||||
|
.then(r => r.data)
|
||||||
|
.catch(console.error)
|
||||||
|
|
||||||
|
return result?.data?.channels
|
||||||
|
.filter(channel => !channel.radio && (!lang || channel.language === (lang === 'de' ? 'ger' : lang)))
|
||||||
|
.map(channel => {
|
||||||
|
return {
|
||||||
|
lang: channel.language === 'ger' ? 'de' : channel.language,
|
||||||
|
site_id: channel.id,
|
||||||
|
name: channel.name
|
||||||
|
}
|
||||||
|
}) || []
|
||||||
|
}
|
||||||
|
}
|
54
sites/pickx.be/pickx.be.test.js
Normal file
54
sites/pickx.be/pickx.be.test.js
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
const { parser, url, request } = require('./pickx.be.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('2023-12-13').startOf('d')
|
||||||
|
const channel = {
|
||||||
|
lang: 'fr',
|
||||||
|
site_id: 'UID0118',
|
||||||
|
xmltv_id: 'Vedia.be'
|
||||||
|
}
|
||||||
|
|
||||||
|
it('can generate valid url', () => {
|
||||||
|
expect(url({channel, date}))
|
||||||
|
.toBe('https://px-epg.azureedge.net/airings/11702375189765v.4.2/2023-12-13/channel/UID0118?timezone=Europe%2FBrussels')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('can generate valid request headers', () => {
|
||||||
|
expect(request.headers).toMatchObject({
|
||||||
|
Origin: 'https://www.pickx.be',
|
||||||
|
Referer: 'https://www.pickx.be/'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('can parse response', () => {
|
||||||
|
const content = fs.readFileSync(path.resolve(__dirname, '__data__/data.json'))
|
||||||
|
const result = parser({ content, channel, date }).map(p => {
|
||||||
|
p.start = p.start.toJSON()
|
||||||
|
p.stop = p.stop.toJSON()
|
||||||
|
return p
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(result[0]).toMatchObject({
|
||||||
|
start: '2023-12-12T23:55:00.000Z',
|
||||||
|
stop: '2023-12-13T00:15:00.000Z',
|
||||||
|
title: 'Le 22h30',
|
||||||
|
description:
|
||||||
|
'Le journal de vivre ici.',
|
||||||
|
category: 'Info',
|
||||||
|
icon: 'https://experience-cache.proximustv.be/posterserver/poster/EPG/w-166_h-110/250_250_4B990CC58066A7B2A660AFA0BDDE5C41.jpg'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('can handle empty guide', () => {
|
||||||
|
const result = parser({
|
||||||
|
date,
|
||||||
|
channel,
|
||||||
|
content: ''
|
||||||
|
})
|
||||||
|
expect(result).toMatchObject([])
|
||||||
|
})
|
11
sites/pickx.be/pickx.be_de.channels.xml
Normal file
11
sites/pickx.be/pickx.be_de.channels.xml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<channels>
|
||||||
|
<channel site="pickx.be" lang="de" xmltv_id="BRFernsehenNord.de" site_id="UID2348">BRF TV HD</channel>
|
||||||
|
<channel site="pickx.be" lang="de" xmltv_id="BRFernsehenNord.de" site_id="UID58335">BRF TV</channel>
|
||||||
|
<channel site="pickx.be" lang="de" xmltv_id="DasErste.de" site_id="UID0024">Das Erste</channel>
|
||||||
|
<channel site="pickx.be" lang="de" xmltv_id="DasErste.de" site_id="UID2375">Das Erste HD</channel>
|
||||||
|
<channel site="pickx.be" lang="de" xmltv_id="RTL.de" site_id="UID2210">RTL</channel>
|
||||||
|
<channel site="pickx.be" lang="de" xmltv_id="RTL.de" site_id="UID2482">RTL Deutschland HD</channel>
|
||||||
|
<channel site="pickx.be" lang="de" xmltv_id="ZDF.de" site_id="UID0030">ZDF</channel>
|
||||||
|
<channel site="pickx.be" lang="de" xmltv_id="ZDF.de" site_id="UID2379">ZDF HD</channel>
|
||||||
|
</channels>
|
23
sites/pickx.be/pickx.be_en.channels.xml
Normal file
23
sites/pickx.be/pickx.be_en.channels.xml
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<channels>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="" site_id="NETFLIX">Netflix</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="BBCEntertainment.uk" site_id="UID50316">BBC Ent</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="BBCFirstBenelux.uk" site_id="UID0132">BBC First</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="BBCNewsEurope.uk" site_id="UID2481">BBC News HD</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="BBCNewsEurope.uk" site_id="UID50069">BBC News</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="BBCOne.uk" site_id="UID2355">BBC One HD</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="BBCOne.uk" site_id="UID50071">BBC One</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="BBCTwo.uk" site_id="UID2356">BBC Two HD</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="BBCTwo.uk" site_id="UID50295">BBC Two</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="CNNInternationalEurope.us" site_id="UID2056">CNN HD</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="CNNInternationalEurope.us" site_id="UID50032">CNN</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="EuronewsEnglish.fr" site_id="UID2488">Euronews E HD</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="EuronewsEnglish.fr" site_id="UID50085">Euronews E</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="FashionTVEurope.fr" site_id="UID2470">Fashion TV HD</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="FashionTVEurope.fr" site_id="UID50031">FashionTV</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="Motorvision.de" site_id="UID2063">Motorvision+</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="Motorvision.de" site_id="UID2067">Motorvision+ HD</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="MTVLive.uk" site_id="UID50315">MTV Live HD</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="PenthouseGold.us" site_id="UID0461">Penthouse Gold</channel>
|
||||||
|
<channel site="pickx.be" lang="en" xmltv_id="WSport.za" site_id="UID2366">W Sports</channel>
|
||||||
|
</channels>
|
196
sites/pickx.be/pickx.be_fr.channels.xml
Normal file
196
sites/pickx.be/pickx.be_fr.channels.xml
Normal file
|
@ -0,0 +1,196 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<channels>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="" site_id="UID0131">Disney+</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="" site_id="UID0639">Studio PXS F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="" site_id="UID50303">RegInfo F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="13emeRue.fr" site_id="UID2054">13è Rue HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="13emeRue.fr" site_id="UID50110">13è Rue</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="AB3.be" site_id="UID0084">AB3 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="AB3.be" site_id="UID50058">AB3</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ABXplore.be" site_id="UID0231">ABXPLO HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ABXplore.be" site_id="UID50041">ABXPLORE</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Action.fr" site_id="UID2055">Action HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Action.fr" site_id="UID50019">Action</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ACTV.be" site_id="UID2321">Antenne Centre HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ACTV.be" site_id="UID50147">Antenne C</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Animaux.fr" site_id="UID2487">Animaux HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Animaux.fr" site_id="UID50053">Animaux</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="arte.fr" site_id="UID0239">arte HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="arte.fr" site_id="UID50018">Arte</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Automotolachaine.fr" site_id="UID2476">AUTOMOTO HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Automotolachaine.fr" site_id="UID50111">AUTOMOTO</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="BabyTV.uk" site_id="UID2479">Baby TV F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="BabyTV.uk" site_id="UID50011">Baby TV F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Be1.be" site_id="UID0300">Be1</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="BeCine.be" site_id="UID0301">Be Ciné</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="BelRTL.be" site_id="UID0194">bel RTL HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="BeSeries.be" site_id="UID0302">Be Séries</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Boomerang.fr" site_id="UID2359">Boom F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Boomerang.fr" site_id="UID50103">Boomerang F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Bouke.be" site_id="UID2328">Bouké HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Bouke.be" site_id="UID50145">Bouké</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="BX1.be" site_id="UID2327">bx1 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="BX1.be" site_id="UID50075">bx1</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="C8.fr" site_id="UID0312">C8</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="CanalJ.fr" site_id="UID2469">Canal J HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="CanalJ.fr" site_id="UID50057">Canal J</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="CanalZ.be" site_id="UID2050">Canal Z HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="CanalZ.be" site_id="UID50035">Canal Z</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="CanalZoom.be" site_id="UID2329">Canal Zoom HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="CanalZoom.be" site_id="UID50146">Canal Zoom</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="CartoonNetwork.fr" site_id="UID2361">Cartoon F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="CartoonNetwork.fr" site_id="UID50021">Cartoon F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="CinePlusClassicBelgium.be" site_id="UID0305">Ciné+Classic</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="CinePlusFrissonBelgium.be" site_id="UID0304">Ciné+Frisson</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="CinePlusPremierBelgium.be" site_id="UID0303">Ciné+Premier</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ClubRTL.be" site_id="UID50070">RTL club</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ClubRTL.be" site_id="UID50209">RTL club HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ComedyCentral.fr" site_id="UID2068">Comedy Central F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="CrimeDistrict.fr" site_id="UID0189">Crime District</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="DiscoveryChannel.fr" site_id="UID0090">Discovery F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="DiscoveryChannel.fr" site_id="UID0091">Disc HD F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="DisneyChannel.fr" site_id="UID2042">Disn Ch HD F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="DisneyChannel.fr" site_id="UID50024">Disn Ch F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="DisneyJunior.fr" site_id="UID2367">Disn Jr F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="DisneyJunior.fr" site_id="UID50137">Disn Jr F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="DobbitTVFR.be" site_id="UID0043">Dobbit TV F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="DorcelXXX.nl" site_id="UID2464">Dorcel XXX HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="DorcelXXX.nl" site_id="UID50099">Dorcel XXX</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="E.fr" site_id="UID2040">E! HD F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="E.fr" site_id="UID50109">E! F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Eleven1.be" site_id="UID0640">ES1 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Eleven1.be" site_id="UID0644">ES1 F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Eleven2.be" site_id="UID0642">ES2 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Eleven2.be" site_id="UID0646">ES2 F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Eleven3.be" site_id="UID0648">ES3 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Eleven3.be" site_id="UID0697">ES3 F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ElevenProLeague1.be" site_id="UID2130">Eleven Pro League 1 (FR) [HD]</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ElevenProLeague1.be" site_id="UID2131">Eleven Pro League 1 (FR)</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ElevenProLeague2.be" site_id="UID2182">Eleven Pro League 2 (FR) [HD]</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ElevenProLeague2.be" site_id="UID2183">Eleven Pro League 2 (FR)</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ElevenProLeague3.be" site_id="UID2186">Eleven Pro League 3 (FR) [HD]</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ElevenProLeague3.be" site_id="UID2187">Eleven Pro League 3 (FR)</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="EuronewsFrench.fr" site_id="UID0154">Euronews F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="EuronewsFrench.fr" site_id="UID2489">Euronews F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Eurosport1.fr" site_id="UID50077">Eurosp F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Eurosport1.fr" site_id="UID50212">Eurosp HD F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Eurosport2.fr" site_id="UID2357">Eurosp2 HD F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Eurosport2.fr" site_id="UID50090">Eurosp2 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="France2.fr" site_id="UID50088">France 2</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="France2.fr" site_id="UID50211">France 2 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="France3.fr" site_id="UID0308">France 3 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="France3.fr" site_id="UID50089">France 3</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="France4.fr" site_id="UID0309">France 4 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="France4.fr" site_id="UID50081">France 4</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="France5.fr" site_id="UID0310">France 5 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="France5.fr" site_id="UID50038">France 5</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="France24French.fr" site_id="UID0149">France 24 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="France24French.fr" site_id="UID50073">France 24 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="GameOne.fr" site_id="UID2066">Game One</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Gulli.fr" site_id="UID2060">Gulli HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="HistoireTV.fr" site_id="UID2369">Histoire HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="HistoireTV.fr" site_id="UID50013">Histoire</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="KTO.fr" site_id="UID50164">KTO</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="LaTrois.be" site_id="UID50302">La Trois</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="LaTrois.be" site_id="UID50334">La Trois HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="LaUne.be" site_id="UID50060">La Une</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="LaUne.be" site_id="UID50323">La Une HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="LCI.fr" site_id="UID2377">LCI HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="LCI.fr" site_id="UID50067">LCI</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="LN24.be" site_id="UID0311">LN24</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Mangas.fr" site_id="UID2378">Mangas HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Mangas.fr" site_id="UID50045">Mangas</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Matele.be" site_id="UID0121">MaTélé</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Matele.be" site_id="UID2331">MaTélé HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Melody.fr" site_id="UID2471">Melody.tv HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Melody.fr" site_id="UID50157">Melody.tv</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="MezzoLive.fr" site_id="UID0092">MezzoLive</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="MTV.fr" site_id="UID50142">MTV F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="MTVHits.fr" site_id="UID2473">MTV Hits HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="MTVHits.fr" site_id="UID50331">MTV Hits</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="MuseumTVFrench.fr" site_id="UID2320">Museum TV</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="MyZenTV.fr" site_id="UID2317">MyZen.tv</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="NationalGeographic.fr" site_id="UID50065">NGC F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="NationalGeographic.fr" site_id="UID50203">NGC HD F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="NationalGeographicWild.fr" site_id="UID0022">NGC Wild F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Nickelodeon.fr" site_id="UID50314">nick F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="NickelodeonJunior.fr" site_id="UID2070">nick jr F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Notele.be" site_id="UID2332">No Télé HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Notele.be" site_id="UID50136">No Télé</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ParamountChannel.fr" site_id="UID2069">Paramount Channel</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxLiveFR.be" site_id="UID0679">PickxLive F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxLiveFR.be" site_id="UID2071">PickxLive F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxLiveFR.be" site_id="UID50113">PickxLive F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxLiveFR.be" site_id="UID50251">PickxLive F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusFR.be" site_id="UID0041">Pickx+ F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusFR.be" site_id="UID0081">Pickx+ F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusFR.be" site_id="UID2218">Pickx+ F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusFR.be" site_id="UID2318">Pickx+ F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports1FR.be" site_id="UID0680">Pickx+ Sports 1 F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports1FR.be" site_id="UID2216">Pickx+ Sports 1 F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports2FR.be" site_id="UID0651">Pickx+ Sports 1 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports2FR.be" site_id="UID0652">Pickx+ Sports 2 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports2FR.be" site_id="UID0681">Pickx+ Sports 2 F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports3FR.be" site_id="UID0653">Pickx+ Sports 3 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports3FR.be" site_id="UID0682">Pickx+ Sports 3 F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports4FR.be" site_id="UID0654">Pickx+ Sports 4 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports4FR.be" site_id="UID0683">Pickx+ Sports 4 F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports5FR.be" site_id="UID0655">Pickx+ Sports 5 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports5FR.be" site_id="UID0684">Pickx+ Sports 5 F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports6FR.be" site_id="UID0656">Pickx+ Sports 6 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports6FR.be" site_id="UID0685">Pickx+ Sports 6 F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports7FR.be" site_id="UID50257">Pickx+ Sports 7 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports7FR.be" site_id="UID50289">Pickx+ Sports 7 F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports8FR.be" site_id="UID0671">Pickx+ Sports 8 F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports8FR.be" site_id="UID50258">Pickx+ Sports 8 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports9FR.be" site_id="UID0672">Pickx+ Sports 9 F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports9FR.be" site_id="UID50259">Pickx+ Sports 9 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports10FR.be" site_id="UID0674">Pickx+ Sports 10 F HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PickxPlusSports10FR.be" site_id="UID50231">Pickx+ Sports 10 F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PinkX.fr" site_id="UID2466">Pink HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PinkX.fr" site_id="UID50192">Pink</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PlugRTL.be" site_id="UID0106">RTL plug HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="PlugRTL.be" site_id="UID50026">RTL plug</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="RadioContact.be" site_id="UID50014">ContactV</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="RFMTV.fr" site_id="UID2478">RFM TV HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="RFMTV.fr" site_id="UID50043">RFM TV</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="RTCTeleLiege.be" site_id="UID2335">RTC Liège HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="RTCTeleLiege.be" site_id="UID29769866">RTC Liège</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="RTLTVI.be" site_id="UID0102">RTL tvi HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="RTLTVI.be" site_id="UID50072">RTL tvi</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ScienceVieTV.fr" site_id="UID2368">Sc et Vie TV HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="ScienceVieTV.fr" site_id="UID50102">Sc et Vie TV</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Syfy.fr" site_id="UID2053">SyFy HD F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Syfy.fr" site_id="UID50064">SyFy F</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TCMCinema.fr" site_id="UID2052">TCM Cinéma HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TCMCinema.fr" site_id="UID50097">TCM cinéma</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TeleMB.be" site_id="UID2340">Télé MB HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TeleMB.be" site_id="UID50140">Télé MB</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Telesambre.be" site_id="UID0117">Télé Sambre</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Telesambre.be" site_id="UID2341">Télé Sambre HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TF1.fr" site_id="UID50068">TF1</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TF1.fr" site_id="UID50190">TF1 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TF1SeriesFilms.fr" site_id="UID2351">TF1 Séries Films</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TiJi.fr" site_id="UID2467">Tiji HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TiJi.fr" site_id="UID50095">Tiji</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Tipik.be" site_id="UID0047">TIPIK HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Tipik.be" site_id="UID50059">TIPIK</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TipikVision.be" site_id="UID0025">TIPIK vision</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TMC.fr" site_id="UID2276">TMC HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TraceUrban.fr" site_id="UID2468">Trace HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TraceUrban.fr" site_id="UID50028">TraceUrban</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Trek.fr" site_id="UID2179">TREK HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Trek.fr" site_id="UID50023">TREK</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TV5MondeFranceBelgiumSwitzerlandMonaco.fr" site_id="UID2065">TV5 Monde HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TV5MondeFranceBelgiumSwitzerlandMonaco.fr" site_id="UID50030">TV5 Monde</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TVBreizh.fr" site_id="UID2051">TV Breizh HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TVBreizh.fr" site_id="UID50012">TV Breizh</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TVCom.be" site_id="UID0119">TV Com</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TVCom.be" site_id="UID2342">TV Com HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TVLux.be" site_id="UID0120">TV Lux</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="TVLux.be" site_id="UID2344">TV Lux HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="UshuaiaTV.fr" site_id="UID50025">Ushuaïa</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="UshuaiaTV.fr" site_id="UID50197">Ushuaïa HD</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Vedia.be" site_id="UID0118">Vedia</channel>
|
||||||
|
<channel site="pickx.be" lang="fr" xmltv_id="Vedia.be" site_id="UID2346">Védia HD</channel>
|
||||||
|
</channels>
|
160
sites/pickx.be/pickx.be_nl.channels.xml
Normal file
160
sites/pickx.be/pickx.be_nl.channels.xml
Normal file
|
@ -0,0 +1,160 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<channels>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="" site_id="UID2347">WTV HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="" site_id="UID2531">Studio PXS N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="" site_id="UID50114">WTV</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="" site_id="UID50309">RegInfo N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="AnimalPlanet.nl" site_id="UID0246">Animal Pl HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="AnimalPlanet.nl" site_id="UID50092">Animal Pl</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="ATV.be" site_id="UID2322">ATV HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="ATV.be" site_id="UID50116">ATV</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="AVS.be" site_id="UID2323">AVS HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="AVSGent.be" site_id="UID50117">AVS Gent</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="BabyTV.uk" site_id="UID2480">Baby TV N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="BabyTV.uk" site_id="UID50052">Baby TV N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Bruzz.be" site_id="UID2326">BRUZZ HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Bruzz.be" site_id="UID50130">BRUZZ</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Canvas.be" site_id="UID50084">VRT Canvas</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Canvas.be" site_id="UID50306">VRT Canvas HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Cartoonito.uk" site_id="UID2360">Cartoonito HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Cartoonito.uk" site_id="UID50305">Cartoonito</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="CartoonNetwork.nl" site_id="UID2362">Cartoon N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="CartoonNetwork.nl" site_id="UID50022">Cartoon N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="ComedyCentral.nl" site_id="UID2376">Comedy Central N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="ComedyCentral.nl" site_id="UID50144">Comedy Central N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="DiscoveryChannel.nl" site_id="UID50017">Discovery N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="DiscoveryChannel.nl" site_id="UID50199">Disc HD N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="DiscoveryScience.uk" site_id="UID2363">Disc Sc HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="DiscoveryScience.uk" site_id="UID50029">Disc Science</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="DisneyChannel.nl" site_id="UID2043">Disn Ch HD N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="DisneyChannel.nl" site_id="UID50329">Disn Ch N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="DisneyJunior.nl" site_id="UID0080">DisnJr N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="DobbitTVNL.be" site_id="UID0037">Dobbit TV N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="DobbitTVNL.be" site_id="UID2374">Dobbit N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="DuskTV.nl" site_id="UID0628">Dusk</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="EclipsTV.be" site_id="UID0211">Eclips</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Een.be" site_id="UID50037">VRT 1</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Een.be" site_id="UID50208">VRT 1 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="EEurope.nl" site_id="UID2041">E! HD N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="EEurope.nl" site_id="UID50128">E! N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Eleven1.be" site_id="UID0641">ES1 N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Eleven1.be" site_id="UID0645">ES1 N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Eleven2.be" site_id="UID0643">ES2 N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Eleven2.be" site_id="UID0647">ES2 N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Eleven3.be" site_id="UID0649">ES3 N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Eleven3.be" site_id="UID0698">ES3 N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="ElevenProLeague1.be" site_id="UID2180">Eleven Pro League 1 (NL) [HD]</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="ElevenProLeague1.be" site_id="UID2181">Eleven Pro League 1 (NL)</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="ElevenProLeague2.be" site_id="UID2184">Eleven Pro League 2 (NL) [HD]</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="ElevenProLeague2.be" site_id="UID2185">Eleven Pro League 2 (NL)</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="ElevenProLeague3.be" site_id="UID2188">Eleven Pro League 3 (NL) [HD]</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="ElevenProLeague3.be" site_id="UID2189">Eleven Pro League 3 (NL)</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Eurosport1.fr" site_id="UID50094">Eurosp N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Eurosport1.fr" site_id="UID50210">Eurosp HD N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Eurosport2.fr" site_id="UID2358">Eurosp2 HD N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Eurosport2.fr" site_id="UID50269">Eurosp2 N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="FocusWTV.be" site_id="UID2330">Focus TV HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="FocusWTV.be" site_id="UID50115">Focus TV</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Fox.nl" site_id="UID0142">STAR Channel HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="History.nl" site_id="UID2370">History HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="History.nl" site_id="UID50154">History</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="InsightTV.nl" site_id="UID2350">INPLUS</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="InvestigationDiscovery.nl" site_id="UID2364">Inv Disc HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="InvestigationDiscovery.nl" site_id="UID50223">Inv Disc</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="KanaalZ.be" site_id="UID2049">Kanaal Z HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="KanaalZ.be" site_id="UID50034">Kanaal Z</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Ketnet.be" site_id="UID0248">Ketnet HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Ketnet.be" site_id="UID50310">Ketnet</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="MentTV.be" site_id="UID2349">Ment TV HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="MentTV.be" site_id="UID50319">Ment TV</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="MTV80s.uk" site_id="UID50168">MTV 80s</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="MTV.nl" site_id="UID2472">MTV N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="MTV.nl" site_id="UID50143">MTV N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="NationalGeographic.nl" site_id="UID2061">NGC HD N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="NationalGeographic.nl" site_id="UID50087">NGC N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="NationalGeographicWild.nl" site_id="UID0023">NGC Wild N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Nickelodeon.nl" site_id="UID0135">nick N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Nickelodeon.nl" site_id="UID50039">nick N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="NickJr.nl" site_id="UID50153">nick jr N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Nicktoons.nl" site_id="UID50165">nick Toons</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Njam.be" site_id="UID0232">Njam! HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Njam.be" site_id="UID0234">Njam!</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="NPO1.nl" site_id="UID0256">NPO 1 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="NPO1.nl" site_id="UID50047">NPO 1</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="NPO2.nl" site_id="UID0257">NPO 2 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="NPO2.nl" site_id="UID50080">NPO 2</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="NPO3.nl" site_id="UID0258">NPO 3 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="NPO3.nl" site_id="UID50079">NPO 3</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="OUTtv.nl" site_id="UID0307">OUT tv</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PassieXXX.nl" site_id="UID2465">Passie XXX HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PassieXXX.nl" site_id="UID50151">Passie XXX</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxLiveNL.be" site_id="UID0629">PickxLive N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxLiveNL.be" site_id="UID2074">PickxLive N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxLiveNL.be" site_id="UID50112">PickxLive N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxLiveNL.be" site_id="UID50213">PickxLive N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusNL.be" site_id="UID0042">Pickx+ N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusNL.be" site_id="UID0082">Pickx+ N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusNL.be" site_id="UID2219">Pickx+ N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusNL.be" site_id="UID2319">Pickx+ N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports1NL.be" site_id="UID0601">Pickx+ Sports 1 N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports1NL.be" site_id="UID0630">Pickx+ Sports 1 N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports1NL.be" site_id="UID2217">Pickx+ Sports 1 N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports2NL.be" site_id="UID0602">Pickx+ Sports 2 N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports2NL.be" site_id="UID0631">Pickx+ Sports 2 N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports3NL.be" site_id="UID0603">Pickx+ Sports 3 N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports3NL.be" site_id="UID0632">Pickx+ Sports 3 N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports4NL.be" site_id="UID0604">Pickx+ Sports 4 N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports4NL.be" site_id="UID0633">Pickx+ Sports 4 N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports5NL.be" site_id="UID0605">Pickx+ Sports 5 N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports5NL.be" site_id="UID0634">Pickx+ Sports 5 N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports6NL.be" site_id="UID0606">Pickx+ Sports 6 N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports6NL.be" site_id="UID0635">Pickx+ Sports 6 N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports7NL.be" site_id="UID50219">Pickx+ Sports 7 N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports7NL.be" site_id="UID50290">Pickx+ Sports 7 N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports8NL.be" site_id="UID0625">Pickx+ Sports 8 N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports8NL.be" site_id="UID50230">Pickx+ Sports 8 N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports9NL.be" site_id="UID0626">Pickx+ Sports 9 N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports9NL.be" site_id="UID50224">Pickx+ Sports 9 N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports10NL.be" site_id="UID0694">Pickx+ Sports 10 N HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PickxPlusSports10NL.be" site_id="UID50225">Pickx+ Sports 10 N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="PlattelandsTV.be" site_id="UID0062">Plattelands</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Play4.be" site_id="UID2120">Play4 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Play4.be" site_id="UID50083">Play4</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Play5.be" site_id="UID2121">Play5 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Play5.be" site_id="UID50066">Play5</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Play6.be" site_id="UID0146">Play6</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Play6.be" site_id="UID0147">Play6 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Play7.be" site_id="UID2293">Play7 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="QMusic.be" site_id="UID2353">Q-Music Kijk Live</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="RingTV.be" site_id="UID2333">Ring TV HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="RingTV.be" site_id="UID50135">Ring TV</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="ROBTV.be" site_id="UID2334">ROBTV HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="ROBTV.be" site_id="UID50121">ROB TV</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="RTVKempen.be" site_id="UID2336">RTV Kempen HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="RTVKempen.be" site_id="UID50132">RTV Kempen O</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="RTVMech.be" site_id="UID2339">RTV Mech HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="RTVMech.be" site_id="UID50133">RTV Mech</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Sport10.be" site_id="UID2059">Sport 10</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Sport10.be" site_id="UID50201">Sport 10 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="StingrayClassica.ca" site_id="UID50198">Classica</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="StuBru.be" site_id="UID0813">StuBru</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Studio100TVNL.be" site_id="UID2033">ST100TV HD N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="Studio100TVNL.be" site_id="UID2034">ST100TV N</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="TLC.nl" site_id="UID2173">TLC</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="TVLimburg.be" site_id="UID2343">TV Limburg HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="TVLimburg.be" site_id="UID50120">TVLimbC</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="TVOost.be" site_id="UID2345">TV Oost HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="TVOost.be" site_id="UID50129">TV Oost</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="VlaamsParlementTV.be" site_id="UID1102">Vlaamsparlement.tv</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="VTM2.be" site_id="UID0039">VTM 2 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="VTM2.be" site_id="UID50044">VTM 2</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="VTM3.be" site_id="UID0155">VTM 3 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="VTM3.be" site_id="UID50082">VTM 3</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="VTM4.be" site_id="UID2073">VTM 4 HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="VTM4.be" site_id="UID50301">VTM 4</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="VTM.be" site_id="UID50040">VTM</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="VTM.be" site_id="UID50297">VTM HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="VTMGold.be" site_id="UID0313">VTM Gold</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="VTMKids.be" site_id="UID2047">VTM NON-STOP DOKTERS HD</channel>
|
||||||
|
<channel site="pickx.be" lang="nl" xmltv_id="VTMKids.be" site_id="UID2175">VTM NON-STOP DOKTERS</channel>
|
||||||
|
</channels>
|
61
sites/pickx.be/readme.md
Normal file
61
sites/pickx.be/readme.md
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
# pickx.be
|
||||||
|
|
||||||
|
https://www.pickx.be/fr/television/programme-tv
|
||||||
|
|
||||||
|
### Download the guide
|
||||||
|
|
||||||
|
Dutch:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run grab -- --site=pickx.be --lang=nl
|
||||||
|
```
|
||||||
|
|
||||||
|
English:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run grab -- --site=pickx.be --lang=en
|
||||||
|
```
|
||||||
|
|
||||||
|
French:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run grab -- --site=pickx.be --lang=fr
|
||||||
|
```
|
||||||
|
|
||||||
|
German:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run grab -- --site=pickx.be --lang=de
|
||||||
|
```
|
||||||
|
|
||||||
|
### Update channel list
|
||||||
|
|
||||||
|
Dutch:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run channels:parse -- --config=./sites/pickx.be/pickx.be.config.js --output=./sites/pickx.be/pickx.be_nl.channels.xml --set=lang:nl
|
||||||
|
```
|
||||||
|
|
||||||
|
English:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run channels:parse -- --config=./sites/pickx.be/pickx.be.config.js --output=./sites/pickx.be/pickx.be_en.channels.xml --set=lang:en
|
||||||
|
```
|
||||||
|
|
||||||
|
French:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run channels:parse -- --config=./sites/pickx.be/pickx.be.config.js --output=./sites/pickx.be/pickx.be_fr.channels.xml --set=lang:fr
|
||||||
|
```
|
||||||
|
|
||||||
|
German:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run channels:parse -- --config=./sites/pickx.be/pickx.be.config.js --output=./sites/pickx.be/pickx.be_de.channels.xml --set=lang:de
|
||||||
|
```
|
||||||
|
|
||||||
|
### Test
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm test -- pickx.be
|
||||||
|
```
|
|
@ -1,210 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<channels>
|
|
||||||
<channel site="proximusmwc.be" lang="de" xmltv_id="BRFernsehenNord.de" site_id="UID2348">BRF TV HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="de" xmltv_id="DasErste.de" site_id="UID0024">Das Erste</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="de" xmltv_id="RTL.de" site_id="UID2210">RTL</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="de" xmltv_id="ZDF.de" site_id="UID0030">ZDF</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="en" xmltv_id="BBCEntertainment.uk" site_id="UID50316">BBC Ent</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="en" xmltv_id="BBCFirstBenelux.uk" site_id="UID0132">BBC First</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="en" xmltv_id="BBCOne.uk" site_id="UID50071">BBC One</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="en" xmltv_id="BBCTwo.uk" site_id="UID50295">BBC Two</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="en" xmltv_id="BBCNewsEurope.uk" site_id="UID50069">BBC World</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="en" xmltv_id="CNNInternationalEurope.us" site_id="UID50032">CNN</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="en" xmltv_id="eSports1.de" site_id="UID0689">eSportsONE</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="en" xmltv_id="EuronewsEnglish.fr" site_id="UID50085">Euronews E</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="en" xmltv_id="ExtremeSportsChannel.nl" site_id="UID0100">Extreme</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="en" xmltv_id="FashionTVEurope.fr" site_id="UID50031">FashionTV</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="en" xmltv_id="Motorvision.de" site_id="UID2063">MVTV</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="en" xmltv_id="MTVLive.uk" site_id="UID50315">MTV Live HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="en" xmltv_id="PenthouseGold.us" site_id="UID0461">Penthouse Gold</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="es" xmltv_id="TVEInternacionalEuropeAsia.es" site_id="UID50027">TVE Int</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="13emeRue.fr" site_id="UID2054">13è Rue HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="2MInternational.ma" site_id="UID2045">2M Monde</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="AB3.be" site_id="UID50058">AB3</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="ABXplore.be" site_id="UID0231">ABXPLO HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Action.fr" site_id="UID50019">Action</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="ACTV.be" site_id="UID2321">Antenne Centre HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="AlAoulaEurope.ma" site_id="UID50141">Al Aoula</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="AlJazeeraEnglish.qa" site_id="UID50162">Al Jazeera</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Animaux.fr" site_id="UID50053">Animaux</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="arte.fr" site_id="UID50018">Arte</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Automotolachaine.fr" site_id="UID50111">AUTOMOTO</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Be1.be" site_id="UID0300">Be1</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="BeCine.be" site_id="UID0301">Be Ciné</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="BelRTL.be" site_id="UID0194">Bel RTL</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="BeSeries.be" site_id="UID0302">Be Séries</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Boomerang.fr" site_id="UID50103">Boomerang F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Bouke.be" site_id="UID2328">Bouké HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="BX1.be" site_id="UID50075">bx1</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="C8.fr" site_id="UID0312">C8</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="CanalJ.fr" site_id="UID50057">Canal J</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="CanalZoom.be" site_id="UID50146">Canal Zoom</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="CartoonNetwork.fr" site_id="UID50021">Cartoon F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="CinePlusClassicBelgium.be" site_id="UID0305">Ciné+Classic</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="CinePlusFrissonBelgium.be" site_id="UID0304">Ciné+Frisson</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="CinePlusPremierBelgium.be" site_id="UID0303">Ciné+Premier</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="ClubRTL.be" site_id="UID50070">ClubRTL</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="ComedyCentral.fr" site_id="UID2068">Comedy Central F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="CrimeDistrict.fr" site_id="UID0189">Crime District</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="DiscoveryChannel.fr" site_id="UID0090">Discovery F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="DisneyChannel.fr" site_id="UID2042">Disn Ch HD F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="DisneyJunior.fr" site_id="UID50137">Disn Jr F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="DobbitTVFR.be" site_id="UID0043">Dobbit TV F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="DorcelXXX.nl" site_id="UID50099">Dorcel XXX</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="E.fr" site_id="UID50109">E! F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="EuronewsFrench.fr" site_id="UID0154">Euronews F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Eurosport1.fr" site_id="UID50077">Eurosp F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Eurosport2.fr" site_id="UID50090">Eurosp2 F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="France2.fr" site_id="UID50088">France 2</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="France24French.fr" site_id="UID50073">France 24 F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="France3.fr" site_id="UID50089">France 3</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="France4.fr" site_id="UID50081">France 4</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="France5.fr" site_id="UID50038">France 5</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="GameOne.fr" site_id="UID2066">Game One</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Gulli.fr" site_id="UID2060">Gulli HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="HistoireTV.fr" site_id="UID50013">Histoire</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="KTO.fr" site_id="UID50164">KTO</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="LaTrois.be" site_id="UID50302">La Trois</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="LaUne.be" site_id="UID50060">La Une</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="LCI.fr" site_id="UID50067">LCI</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="LN24.be" site_id="UID0311">LN24</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="MaghrebTV.be" site_id="DTV29670499">Maghreb TV</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Mangas.fr" site_id="UID50045">Mangas</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Matele.be" site_id="UID0121">MaTélé</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Melody.fr" site_id="UID50157">Melody.tv</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="MezzoLive.fr" site_id="UID0092">MezzoLive</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="MTV.fr" site_id="UID50142">MTV F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="MTVHits.fr" site_id="UID50331">MTV Hits</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="" site_id="UID2320">Museum TV</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="MyZenTV.fr" site_id="UID2317">MyZen.tv</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="NationalGeographic.fr" site_id="UID50065">NGC F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="NationalGeographicWild.fr" site_id="UID0022">NGC Wild F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Nickelodeon.fr" site_id="UID50314">nick F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="NickelodeonJunior.fr" site_id="UID2070">nick jr F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Notele.be" site_id="UID2332">No Télé HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="ParamountChannel.fr" site_id="UID2069">Paramount Channel</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="PickxLiveFR.be" site_id="UID0679">PickxLive F HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="PickxPlusFR.be" site_id="UID0041">Pickx+ F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="PickxPlusSports10FR.be" site_id="UID0674">Pickx+ Sports 10 F HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="PickxPlusSports2FR.be" site_id="UID0651">Pickx+ Sports 1 F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="PickxPlusSports3FR.be" site_id="UID0653">Pickx+ Sports 3 F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="PickxPlusSports4FR.be" site_id="UID0654">Pickx+ Sports 4 F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="PickxPlusSports5FR.be" site_id="UID0655">Pickx+ Sports 5 F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="PickxPlusSports6FR.be" site_id="UID0656">Pickx+ Sports 6 F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="PickxPlusSports7FR.be" site_id="UID50257">Pickx+ Sports 7 F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="PickxPlusSports8FR.be" site_id="UID0671">Pickx+ Sports 8 F HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="PickxPlusSports9FR.be" site_id="UID0672">Pickx+ Sports 9 F HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="PinkX.fr" site_id="UID50192">Pink</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="PlugRTL.be" site_id="UID50026">PlugRTL</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="RadioContact.be" site_id="UID50014">ContactV</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="RFMTV.fr" site_id="UID50043">RFM TV</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="RTCTeleLiege.be" site_id="UID2335">RTC Liège HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="RTLTVI.be" site_id="UID50072">RTL-TVI</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="ScienceVieTV.fr" site_id="UID50102">Sc et Vie TV</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Studio100TVFR.be" site_id="UID0108">ST100TV F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Syfy.fr" site_id="UID50064">SyFy F</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="TCMCinema.fr" site_id="UID50097">TCM cinéma</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="TeleMB.be" site_id="UID2340">Télé MB HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Telesambre.be" site_id="UID0117">Télé Sambre</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="TF1.fr" site_id="UID50068">TF1</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="TiJi.fr" site_id="UID50095">Tiji</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Tipik.be" site_id="UID50059">TIPIK</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="TipikVision.be" site_id="UID0025">TIPIK vision</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="TMC.fr" site_id="UID2276">TMC HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="TraceUrban.fr" site_id="UID50028">TraceUrban</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Trek.fr" site_id="UID50023">TREK</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="TV5MondeFranceBelgiumSwitzerlandMonaco.fr" site_id="UID50030">TV5 Monde</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="TVBreizh.fr" site_id="UID50012">TV Breizh</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="TVCom.be" site_id="UID0119">TV Com</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="TVLux.be" site_id="UID0120">TV Lux</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="UshuaiaTV.fr" site_id="UID50025">Ushuaïa</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="fr" xmltv_id="Vedia.be" site_id="UID0118">Vedia</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="it" xmltv_id="MediasetItalia.it" site_id="UID0133">Mediaset</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="it" xmltv_id="Rai1.it" site_id="UID50048">RAI Uno</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="it" xmltv_id="Rai2.it" site_id="UID50015">RAI Due</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="it" xmltv_id="Rai3.it" site_id="UID50020">RAI Tre</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="AnimalPlanet.nl" site_id="UID50092">Animal Pl</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="ATV.be" site_id="UID50116">ATV</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="AVS.be" site_id="UID2323">AVS HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="AVSGent.be" site_id="UID50117">AVS Gent</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="BabyTV.uk" site_id="UID50052">Baby TV N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Boomerang.nl" site_id="UID50305">Boomerang N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Bruzz.be" site_id="UID2326">BRUZZ HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Canvas.be" site_id="UID50084">Canvas</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="CartoonNetwork.nl" site_id="UID50022">Cartoon N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="ComedyCentral.nl" site_id="UID50144">Comedy Central N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="DiscoveryChannel.nl" site_id="UID50017">Discovery N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="DiscoveryScience.uk" site_id="UID50029">Disc Science</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="DisneyChannel.nl" site_id="UID50329">Disn Ch N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="DisneyJunior.nl" site_id="UID0080">DisnJr N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="DobbitTVNL.be" site_id="UID0037">Dobbit TV N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="DuskTV.nl" site_id="UID0628">Dusk</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="EclipsTV.be" site_id="UID0211">Eclips</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Een.be" site_id="UID50037">één</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="EEurope.nl" site_id="UID50128">E! N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Eleven1.be" site_id="UID0641">ES1 N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Eleven2.be" site_id="UID0643">ES2 N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Eleven3.be" site_id="UID0649">ES3 N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="ElevenProLeague1.be" site_id="UID2181">Eleven Pro League 1 (NL)</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="ElevenProLeague2.be" site_id="UID2185">Eleven Pro League 2 (NL)</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="ElevenProLeague3.be" site_id="UID2189">Eleven Pro League 3 (NL)</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Eurosport1.fr" site_id="UID50094">Eurosp N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Eurosport2.fr" site_id="UID50269">Eurosp2 N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="FocusWTV.be" site_id="UID2330">Focus TV HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Fox.nl" site_id="UID0142">FOX</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="History.nl" site_id="UID50154">History</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="InsightTV.nl" site_id="UID2350">Insight TV</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="InvestigationDiscovery.nl" site_id="UID50223">Inv Disc</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="KanaalZ.be" site_id="UID50034">Kanaal Z</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Ketnet.be" site_id="UID50310">Ketnet</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="MentTV.be" site_id="UID50319">Ment TV</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="MTV80s.uk" site_id="UID50168">MTV 80s</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="MTV.nl" site_id="UID50143">MTV N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="NationalGeographic.nl" site_id="UID50087">NGC N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="NationalGeographicWild.nl" site_id="UID0023">NGC Wild N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Nickelodeon.nl" site_id="UID50039">nick N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="NickJr.nl" site_id="UID50153">nick jr N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Nicktoons.nl" site_id="UID50165">nick Toons</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Njam.be" site_id="UID0232">Njam! HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="NPO1.nl" site_id="UID50047">NPO 1</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="NPO2.nl" site_id="UID50080">NPO 2</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="NPO3.nl" site_id="UID50079">NPO 3</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="OUTtv.nl" site_id="UID0307">OUT tv</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PassieXXX.nl" site_id="UID50151">Passie XXX</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PebbleTV.nl" site_id="UID0019">Pebble TV</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PickxLiveNL.be" site_id="UID0629">PickxLive N HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PickxPlusNL.be" site_id="UID0042">Pickx+ N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PickxPlusSports10NL.be" site_id="UID50225">Pickx+ Sports 10 N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PickxPlusSports1NL.be" site_id="UID0601">Pickx+ Sports 1 N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PickxPlusSports2NL.be" site_id="UID0602">Pickx+ Sports 2 N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PickxPlusSports3NL.be" site_id="UID0603">Pickx+ Sports 3 N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PickxPlusSports4NL.be" site_id="UID0604">Pickx+ Sports 4 N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PickxPlusSports5NL.be" site_id="UID0605">Pickx+ Sports 5 N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PickxPlusSports6NL.be" site_id="UID0606">Pickx+ Sports 6 N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PickxPlusSports7NL.be" site_id="UID50219">Pickx+ Sports 7 N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PickxPlusSports8NL.be" site_id="UID50230">Pickx+ Sports 8 N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PickxPlusSports9NL.be" site_id="UID50224">Pickx+ Sports 9 N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="PlattelandsTV.be" site_id="UID0062">Plattelands</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Play4.be" site_id="UID50083">Play4</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Play5.be" site_id="UID50066">Play5</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Play6.be" site_id="UID0146">Play6</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Play7.be" site_id="UID2293">Play7 HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="RingTV.be" site_id="UID2333">Ring TV HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="ROBTV.be" site_id="UID50121">ROB TV</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="RTVKempen.be" site_id="UID2336">RTV Kempen HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="RTVMech.be" site_id="UID2339">RTV Mech HD</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Sport10.be" site_id="UID2059">Sport 10</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="StingrayClassica.ca" site_id="UID50198">Classica</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Studio100Hits.be" site_id="UID2032">ST100 Hits</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="Studio100TVNL.be" site_id="UID2034">ST100TV N</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="TLC.nl" site_id="UID2173">TLC</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="TVLimburg.be" site_id="UID50120">TVLimbC</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="TVOost.be" site_id="UID50129">TV Oost</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="VlaamsParlementTV.be" site_id="UID1102">Vlaamsparlement.tv</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="VTM.be" site_id="UID50040">VTM</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="VTM2.be" site_id="UID50044">VTM 2</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="VTM3.be" site_id="UID50082">VTM 3</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="VTM4.be" site_id="UID50301">VTM 4</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="VTMGold.be" site_id="UID0313">VTM Gold</channel>
|
|
||||||
<channel site="proximusmwc.be" lang="nl" xmltv_id="VTMKids.be" site_id="UID2175">VTM Kids</channel>
|
|
||||||
</channels>
|
|
|
@ -1,80 +0,0 @@
|
||||||
const axios = require('axios')
|
|
||||||
const dayjs = require('dayjs')
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
site: 'proximusmwc.be',
|
|
||||||
days: 2,
|
|
||||||
url: 'https://api.proximusmwc.be/v2/graphql',
|
|
||||||
request: {
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json'
|
|
||||||
},
|
|
||||||
data({ channel, date }) {
|
|
||||||
return {
|
|
||||||
query:
|
|
||||||
'query ($language: String!, $startTime: Int!, $endTime: Int!, $options: SchedulesByIntervalOptions) { schedulesByInterval(language: $language, startTime: $startTime, endTime: $endTime, options: $options) { trailId programReferenceNumber channelId title category startTime endTime image { key url __typename } parentalRating detailUrl grouped description shortDescription category categoryId subCategory links { episodeNumber id seasonId seasonName seriesId seriesTitle title type __typename } seriesId __typename }}',
|
|
||||||
variables: {
|
|
||||||
startTime: date.unix(),
|
|
||||||
endTime: date.add(1, 'd').unix(),
|
|
||||||
language: 'fr',
|
|
||||||
options: { channelIds: [channel.site_id] }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
parser: function ({ content }) {
|
|
||||||
const programs = []
|
|
||||||
const items = parseItems(content)
|
|
||||||
items.forEach(item => {
|
|
||||||
programs.push({
|
|
||||||
title: item.title,
|
|
||||||
description: item.description,
|
|
||||||
icon: parseIcon(item),
|
|
||||||
category: parseCategory(item),
|
|
||||||
start: dayjs.unix(item.startTime),
|
|
||||||
stop: dayjs.unix(item.endTime)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
return programs
|
|
||||||
},
|
|
||||||
async channels() {
|
|
||||||
const query = {
|
|
||||||
operationName: 'getPlayableChannels',
|
|
||||||
variables: { language: 'fr', id: '0' },
|
|
||||||
query:
|
|
||||||
'query getPlayableChannels($language: String!, $queryParams: ChannelQueryParams, $id: String) { playableChannels(language: $language, queryParams: $queryParams, id: $id) { id name language radio }}'
|
|
||||||
}
|
|
||||||
const data = await axios
|
|
||||||
.post('https://api.proximusmwc.be/v2/graphql', query)
|
|
||||||
.then(r => r.data)
|
|
||||||
.catch(console.log)
|
|
||||||
|
|
||||||
const channels = []
|
|
||||||
for (let item of data.data.playableChannels) {
|
|
||||||
if (item.radio) continue
|
|
||||||
channels.push({
|
|
||||||
lang: item.language,
|
|
||||||
site_id: item.id,
|
|
||||||
name: item.name
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
return channels
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseCategory(item) {
|
|
||||||
return item.category ? item.category.replace(/^C\./, '') : null
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseIcon(item) {
|
|
||||||
return item.image[0] ? item.image[0].url : null
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseItems(content) {
|
|
||||||
const data = JSON.parse(content)
|
|
||||||
if (!data || !data.data || !Array.isArray(data.data.schedulesByInterval)) return []
|
|
||||||
|
|
||||||
return data.data.schedulesByInterval
|
|
||||||
}
|
|
|
@ -1,66 +0,0 @@
|
||||||
const { parser, url, request } = require('./proximusmwc.be.config.js')
|
|
||||||
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('2022-03-04', 'YYYY-MM-DD').startOf('d')
|
|
||||||
const channel = {
|
|
||||||
site_id: 'UID0024',
|
|
||||||
xmltv_id: 'DasErste.de'
|
|
||||||
}
|
|
||||||
|
|
||||||
it('can generate valid url', () => {
|
|
||||||
expect(url).toBe('https://api.proximusmwc.be/v2/graphql')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('can generate valid request headers', () => {
|
|
||||||
expect(request.headers).toMatchObject({
|
|
||||||
'Content-Type': 'application/json'
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
it('can generate valid request data', () => {
|
|
||||||
expect(request.data({ channel, date })).toMatchObject({
|
|
||||||
query:
|
|
||||||
'query ($language: String!, $startTime: Int!, $endTime: Int!, $options: SchedulesByIntervalOptions) { schedulesByInterval(language: $language, startTime: $startTime, endTime: $endTime, options: $options) { trailId programReferenceNumber channelId title category startTime endTime image { key url __typename } parentalRating detailUrl grouped description shortDescription category categoryId subCategory links { episodeNumber id seasonId seasonName seriesId seriesTitle title type __typename } seriesId __typename }}',
|
|
||||||
variables: {
|
|
||||||
endTime: 1646438400,
|
|
||||||
language: 'fr',
|
|
||||||
options: { channelIds: ['UID0024'] },
|
|
||||||
startTime: 1646352000
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
it('can parse response', () => {
|
|
||||||
const content =
|
|
||||||
'{"data":{"schedulesByInterval":[{"trailId":"UID0024_202202225537","programReferenceNumber":"107504040014","channelId":"UID0024","title":"Der Bozen-Krimi","category":"C.Magazine","startTime":1646350800,"endTime":1646356200,"description":"Chiara Schoras alias \\"Capo\\" Sonja Schwarz muss im 14. Bozen-Krimi nicht nur einen widersprüchlichen Mordfall aufklären, sondern auch ein Geheimnis ans Licht bringen, das zwei Familien auf schmerzhafte Weise untrennbar verbindet.","image":[{"key":"source","url":"https://experience-cache.proximustv.be:443/posterserver/poster/EPG/250_250_BF6BF77FC28F72FA23EAEA6CAAE98B60.jpg","__typename":"Image"},{"key":"custom","url":"https://experience-cache.proximustv.be:443/posterserver/poster/EPG/w-%width%_h-%height%/250_250_BF6BF77FC28F72FA23EAEA6CAAE98B60.jpg","__typename":"Image"}]}]}}'
|
|
||||||
const result = parser({ content, channel, date }).map(p => {
|
|
||||||
p.start = p.start.toJSON()
|
|
||||||
p.stop = p.stop.toJSON()
|
|
||||||
return p
|
|
||||||
})
|
|
||||||
|
|
||||||
expect(result).toMatchObject([
|
|
||||||
{
|
|
||||||
start: '2022-03-03T23:40:00.000Z',
|
|
||||||
stop: '2022-03-04T01:10:00.000Z',
|
|
||||||
title: 'Der Bozen-Krimi',
|
|
||||||
description:
|
|
||||||
'Chiara Schoras alias "Capo" Sonja Schwarz muss im 14. Bozen-Krimi nicht nur einen widersprüchlichen Mordfall aufklären, sondern auch ein Geheimnis ans Licht bringen, das zwei Familien auf schmerzhafte Weise untrennbar verbindet.',
|
|
||||||
category: 'Magazine',
|
|
||||||
icon: 'https://experience-cache.proximustv.be:443/posterserver/poster/EPG/250_250_BF6BF77FC28F72FA23EAEA6CAAE98B60.jpg'
|
|
||||||
}
|
|
||||||
])
|
|
||||||
})
|
|
||||||
|
|
||||||
it('can handle empty guide', () => {
|
|
||||||
const result = parser({
|
|
||||||
date,
|
|
||||||
channel,
|
|
||||||
content: '{"data":{"schedulesByInterval":[]}}'
|
|
||||||
})
|
|
||||||
expect(result).toMatchObject([])
|
|
||||||
})
|
|
|
@ -1,21 +0,0 @@
|
||||||
# proximusmwc.be
|
|
||||||
|
|
||||||
http://proximusmwc.be/
|
|
||||||
|
|
||||||
### Download the guide
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm run grab -- --site=proximusmwc.be
|
|
||||||
```
|
|
||||||
|
|
||||||
### Update channel list
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm run channels:parse -- --config=./sites/proximusmwc.be/proximusmwc.be.config.js --output=./sites/proximusmwc.be/proximusmwc.be.channels.xml
|
|
||||||
```
|
|
||||||
|
|
||||||
### Test
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm test -- proximusmwc.be
|
|
||||||
```
|
|
|
@ -1,203 +1,51 @@
|
||||||
<div class="hour">
|
<div class="hour">
|
||||||
<div class="bg" id="item-11-11-2023">
|
<div class="bg" id="item-10-12-2023">
|
||||||
|
|
||||||
<h4 class="big-title text-uppercase mt-0 fadeInRight animated " data-animation-in="fadeInRight"
|
<h4 class="big-title text-uppercase mt-0 fadeInRight animated " data-animation-in="fadeInRight"
|
||||||
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
||||||
<span>السبت</span>
|
<span>الأحد</span>
|
||||||
11/11/2023
|
2023-12-10
|
||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="iq-accordion iq-accordion-square mt-2">
|
<div class="iq-accordion iq-accordion-square mt-2">
|
||||||
<div class="iq-accordion-block ">
|
|
||||||
<div class="iq-accordion-title">
|
<div class="iq-accordion-block " id="item-239849">
|
||||||
|
<div class="iq-accordion-title" onclick="getData(239849)">
|
||||||
|
|
||||||
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
|
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
|
||||||
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
||||||
<span>02:00
|
|
||||||
|
<span>00:36
|
||||||
</span>
|
</span>
|
||||||
<span>حريم كريم</span>
|
|
||||||
|
<span>كتكوت</span>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="iq-accordion-details" id="" style="display: none;">
|
|
||||||
<div class="row">
|
<div class="iq-accordion-details" style="display: none;">
|
||||||
<div class="col-lg-6 col-md-12 col-sm-12 ">
|
|
||||||
<img src="https://imgsrv.rotana.net/spider_storage/1398X1000/1686579733?w=450&fit=max"
|
|
||||||
loading="lazy" alt="">
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-6 col-md-12 col-sm-12">
|
|
||||||
<div class="iq-blog-detail">
|
|
||||||
<div class="trending-info">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12 col-12 mb-auto">
|
|
||||||
<div class="d-md-flex trending-box">
|
|
||||||
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated"
|
|
||||||
data-animation-in="fadeInLeft" data-delay-in="0.6"
|
|
||||||
style="opacity: 1; animation-delay: 0.6s">
|
|
||||||
حريم كريم
|
|
||||||
</h5>
|
|
||||||
</div>
|
|
||||||
<ul
|
|
||||||
class="p-0 list-inline d-flex flex-wrap align-items-center mb-3 mt-4 iq_tag-list">
|
|
||||||
<li class="text-primary text-lable mr-3">
|
|
||||||
<i class="fa fa-tags" aria-hidden="true"></i>
|
|
||||||
التصنيف
|
|
||||||
</li>
|
|
||||||
<li class="trending-list mr-3">
|
|
||||||
<a class="title" href="#">كوميديا
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<div class="blog-button">
|
|
||||||
<button id="modal-open-button" type="button"
|
|
||||||
class="btn btn-primary button-link" data-toggle="modal"
|
|
||||||
data-target="#exampleModal"
|
|
||||||
onclick="throttle(getPlayer_epg, 1000, 'https://hiplayer.hibridcdn.net/l/rotana-cinemamasrdvr',1699653600,1699660800); showCatchUpStatus();">
|
|
||||||
<i class="ri-tv-line"></i>
|
|
||||||
الأرشيف
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
<span>
|
|
||||||
<p><strong>2h</strong></p>
|
|
||||||
كريم وجيهان ينفصلا بعد عام من الزواج بسبب اكتشافها لخيانته في منزلها، يحاول كريم استعادة زوجته، لكنها ترفض، فيتصل كريم بزميلته القديمة مها، لتساعده، لكن متاعب تحدث بين مها وزوجها، فتأتي لتعيش مع كريم،...
|
|
||||||
<br><br>
|
|
||||||
<span> البلد
|
|
||||||
:
|
|
||||||
مصر
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<span> سنة الإصدار
|
|
||||||
:
|
|
||||||
2005
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<span> التصنيف
|
|
||||||
:
|
|
||||||
فيلم
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<span> اللغة
|
|
||||||
:
|
|
||||||
عربي
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="iq-accordion iq-accordion-square mt-2">
|
||||||
</div>
|
|
||||||
</div>
|
<div class="iq-accordion-block " id="item-239850">
|
||||||
<div class="row">
|
<div class="iq-accordion-title" onclick="getData(239850)">
|
||||||
<div class="col-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 ">
|
|
||||||
<div class="iq-accordion-title">
|
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
|
||||||
<h5 class="big-title text-uppercase mt-0 fadeInDown animated" data-animation-in="fadeInDown"
|
|
||||||
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
||||||
<span>طاقم العمل</span>
|
|
||||||
|
<span>02:46
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span>عيار ناري</span>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="">
|
|
||||||
<ul class=" row list-inline mb-0 iq-rtl-direction iq_genres-contents">
|
<div class="iq-accordion-details" style="display: none;">
|
||||||
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 2">
|
|
||||||
<div class="block-images position-relative watchlist-first">
|
|
||||||
<div class="img-box">
|
|
||||||
<img src="https://imgsrv.rotana.net/elcinema_persons/1677279797?w=165&fit=max"
|
|
||||||
class="img-fluid" loading="lazy" alt="مصطفى قمر">
|
|
||||||
</div>
|
|
||||||
<a href="https://rotana.net/ar/actor-details/1065773">
|
|
||||||
<div
|
|
||||||
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
|
||||||
<h6 class="iq-title">
|
|
||||||
مصطفى قمر
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 3">
|
|
||||||
<div class="block-images position-relative watchlist-first">
|
|
||||||
<div class="img-box">
|
|
||||||
<img src="https://imgsrv.rotana.net/elcinema_persons/1677296222?w=165&fit=max"
|
|
||||||
class="img-fluid" loading="lazy" alt="ياسمين عبدالعزيز">
|
|
||||||
</div>
|
|
||||||
<a href="https://rotana.net/ar/actor-details/1073676">
|
|
||||||
<div
|
|
||||||
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
|
||||||
<h6 class="iq-title">
|
|
||||||
ياسمين عبدالعزيز
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 4">
|
|
||||||
<div class="block-images position-relative watchlist-first">
|
|
||||||
<div class="img-box">
|
|
||||||
<img src="https://imgsrv.rotana.net/elcinema_persons/1677257989?w=165&fit=max"
|
|
||||||
class="img-fluid" loading="lazy" alt="داليا البحيري">
|
|
||||||
</div>
|
|
||||||
<a href="https://rotana.net/ar/actor-details/1070026">
|
|
||||||
<div
|
|
||||||
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
|
||||||
<h6 class="iq-title">
|
|
||||||
داليا البحيري
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 5">
|
|
||||||
<div class="block-images position-relative watchlist-first">
|
|
||||||
<div class="img-box">
|
|
||||||
<img src="https://imgsrv.rotana.net/elcinema_persons/1677255054?w=165&fit=max"
|
|
||||||
class="img-fluid" loading="lazy" alt="بسمة">
|
|
||||||
</div>
|
|
||||||
<a href="https://rotana.net/ar/actor-details/1039904">
|
|
||||||
<div
|
|
||||||
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
|
||||||
<h6 class="iq-title">
|
|
||||||
بسمة
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 6">
|
|
||||||
<div class="block-images position-relative watchlist-first">
|
|
||||||
<div class="img-box">
|
|
||||||
<img src="https://imgsrv.rotana.net/elcinema_persons/1677284150?w=165&fit=max"
|
|
||||||
class="img-fluid" loading="lazy" alt="علا غانم">
|
|
||||||
</div>
|
|
||||||
<a href="https://rotana.net/ar/actor-details/1074816">
|
|
||||||
<div
|
|
||||||
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
|
||||||
<h6 class="iq-title">
|
|
||||||
علا غانم
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 7">
|
|
||||||
<div class="block-images position-relative watchlist-first">
|
|
||||||
<div class="img-box">
|
|
||||||
<img src="https://imgsrv.rotana.net/elcinema_persons/1677288303?w=165&fit=max"
|
|
||||||
class="img-fluid" loading="lazy" alt="ريهام عبدالغفور">
|
|
||||||
</div>
|
|
||||||
<a href="https://rotana.net/ar/actor-details/1077680">
|
|
||||||
<div
|
|
||||||
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
|
||||||
<h6 class="iq-title">
|
|
||||||
ريهام عبدالغفور
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -1,203 +1,51 @@
|
||||||
<div class="hour">
|
<div class="hour">
|
||||||
<div class="bg" id="item-11-11-2023">
|
<div class="bg" id="item-10-12-2023">
|
||||||
|
|
||||||
<h4 class="big-title text-uppercase mt-0 fadeInRight animated " data-animation-in="fadeInRight"
|
<h4 class="big-title text-uppercase mt-0 fadeInRight animated " data-animation-in="fadeInRight"
|
||||||
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
||||||
<span>Saturday</span>
|
<span>Sunday</span>
|
||||||
11/11/2023
|
2023-12-10
|
||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="iq-accordion iq-accordion-square mt-2">
|
<div class="iq-accordion iq-accordion-square mt-2">
|
||||||
<div class="iq-accordion-block ">
|
|
||||||
<div class="iq-accordion-title">
|
<div class="iq-accordion-block " id="item-239849">
|
||||||
|
<div class="iq-accordion-title" onclick="getData(239849)">
|
||||||
|
|
||||||
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
|
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
|
||||||
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
||||||
<span>02:00
|
|
||||||
|
<span>00:36
|
||||||
</span>
|
</span>
|
||||||
<span>Harim Karim</span>
|
|
||||||
|
<span>Katkout</span>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="iq-accordion-details" id="" style="display: none;">
|
|
||||||
<div class="row">
|
<div class="iq-accordion-details" style="display: none;">
|
||||||
<div class="col-lg-6 col-md-12 col-sm-12 ">
|
|
||||||
<img src="https://imgsrv.rotana.net/spider_storage/1398X1000/1686579733?w=450&fit=max"
|
|
||||||
loading="lazy" alt="1">
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-6 col-md-12 col-sm-12">
|
|
||||||
<div class="iq-blog-detail">
|
|
||||||
<div class="trending-info">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12 col-12 mb-auto">
|
|
||||||
<div class="d-md-flex trending-box">
|
|
||||||
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated"
|
|
||||||
data-animation-in="fadeInLeft" data-delay-in="0.6"
|
|
||||||
style="opacity: 1; animation-delay: 0.6s">
|
|
||||||
Harim Karim
|
|
||||||
</h5>
|
|
||||||
</div>
|
|
||||||
<ul
|
|
||||||
class="p-0 list-inline d-flex flex-wrap align-items-center mb-3 mt-4 iq_tag-list">
|
|
||||||
<li class="text-primary text-lable mr-3">
|
|
||||||
<i class="fa fa-tags" aria-hidden="true"></i>
|
|
||||||
Genres
|
|
||||||
</li>
|
|
||||||
<li class="trending-list mr-3">
|
|
||||||
<a class="title" href="#">Comedy
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<div class="blog-button">
|
|
||||||
<button id="modal-open-button" type="button"
|
|
||||||
class="btn btn-primary button-link" data-toggle="modal"
|
|
||||||
data-target="#exampleModal"
|
|
||||||
onclick="throttle(getPlayer_epg, 1000, 'https://hiplayer.hibridcdn.net/l/rotana-cinemamasrdvr',1699653600,1699660800); showCatchUpStatus();">
|
|
||||||
<i class="ri-tv-line"></i>
|
|
||||||
Catch up
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
<span>
|
|
||||||
<p><strong>2h</strong></p>
|
|
||||||
Karim and Jihan separate after a year of marriage due to her discovering his betrayal in her home. Karim tries to get his wife back, but she refuses. Karim calls his old colleague Maha to help him. Ho...
|
|
||||||
<br><br>
|
|
||||||
<span> Country
|
|
||||||
:
|
|
||||||
Egypt
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<span> Release Year
|
|
||||||
:
|
|
||||||
2005
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<span> Category
|
|
||||||
:
|
|
||||||
Movie
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<span> Language
|
|
||||||
:
|
|
||||||
Arabic
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="iq-accordion iq-accordion-square mt-2">
|
||||||
</div>
|
|
||||||
</div>
|
<div class="iq-accordion-block " id="item-239850">
|
||||||
<div class="row">
|
<div class="iq-accordion-title" onclick="getData(239850)">
|
||||||
<div class="col-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 ">
|
|
||||||
<div class="iq-accordion-title">
|
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
|
||||||
<h5 class="big-title text-uppercase mt-0 fadeInDown animated" data-animation-in="fadeInDown"
|
|
||||||
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
||||||
<span>Cast</span>
|
|
||||||
|
<span>02:46
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span>Gunshot</span>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="">
|
|
||||||
<ul class=" row list-inline mb-0 iq-rtl-direction iq_genres-contents">
|
<div class="iq-accordion-details" style="display: none;">
|
||||||
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 2">
|
|
||||||
<div class="block-images position-relative watchlist-first">
|
|
||||||
<div class="img-box">
|
|
||||||
<img src="https://imgsrv.rotana.net/elcinema_persons/1677279797?w=165&fit=max"
|
|
||||||
class="img-fluid" loading="lazy" alt="Mostafa Amar">
|
|
||||||
</div>
|
|
||||||
<a href="https://rotana.net/en/actor-details/1065773">
|
|
||||||
<div
|
|
||||||
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
|
||||||
<h6 class="iq-title">
|
|
||||||
Mostafa Amar
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 3">
|
|
||||||
<div class="block-images position-relative watchlist-first">
|
|
||||||
<div class="img-box">
|
|
||||||
<img src="https://imgsrv.rotana.net/elcinema_persons/1677296222?w=165&fit=max"
|
|
||||||
class="img-fluid" loading="lazy" alt="Yasmin Abdulaziz">
|
|
||||||
</div>
|
|
||||||
<a href="https://rotana.net/en/actor-details/1073676">
|
|
||||||
<div
|
|
||||||
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
|
||||||
<h6 class="iq-title">
|
|
||||||
Yasmin Abdulaziz
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 4">
|
|
||||||
<div class="block-images position-relative watchlist-first">
|
|
||||||
<div class="img-box">
|
|
||||||
<img src="https://imgsrv.rotana.net/elcinema_persons/1677257989?w=165&fit=max"
|
|
||||||
class="img-fluid" loading="lazy" alt="Dalia Al Beheri">
|
|
||||||
</div>
|
|
||||||
<a href="https://rotana.net/en/actor-details/1070026">
|
|
||||||
<div
|
|
||||||
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
|
||||||
<h6 class="iq-title">
|
|
||||||
Dalia Al Beheri
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 5">
|
|
||||||
<div class="block-images position-relative watchlist-first">
|
|
||||||
<div class="img-box">
|
|
||||||
<img src="https://imgsrv.rotana.net/elcinema_persons/1677255054?w=165&fit=max"
|
|
||||||
class="img-fluid" loading="lazy" alt="Basma">
|
|
||||||
</div>
|
|
||||||
<a href="https://rotana.net/en/actor-details/1039904">
|
|
||||||
<div
|
|
||||||
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
|
||||||
<h6 class="iq-title">
|
|
||||||
Basma
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 6">
|
|
||||||
<div class="block-images position-relative watchlist-first">
|
|
||||||
<div class="img-box">
|
|
||||||
<img src="https://imgsrv.rotana.net/elcinema_persons/1677284150?w=165&fit=max"
|
|
||||||
class="img-fluid" loading="lazy" alt="Ola Ghanem">
|
|
||||||
</div>
|
|
||||||
<a href="https://rotana.net/en/actor-details/1074816">
|
|
||||||
<div
|
|
||||||
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
|
||||||
<h6 class="iq-title">
|
|
||||||
Ola Ghanem
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 7">
|
|
||||||
<div class="block-images position-relative watchlist-first">
|
|
||||||
<div class="img-box">
|
|
||||||
<img src="https://imgsrv.rotana.net/elcinema_persons/1677288303?w=165&fit=max"
|
|
||||||
class="img-fluid" loading="lazy" alt="Riham Abdulghafour">
|
|
||||||
</div>
|
|
||||||
<a href="https://rotana.net/en/actor-details/1077680">
|
|
||||||
<div
|
|
||||||
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
|
||||||
<h6 class="iq-title">
|
|
||||||
Riham Abdulghafour
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
240
sites/rotana.net/__data__/program_ar.html
Normal file
240
sites/rotana.net/__data__/program_ar.html
Normal file
|
@ -0,0 +1,240 @@
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-6 col-md-12 col-sm-12 ">
|
||||||
|
<img src="https://imgsrv.rotana.net/spider_storage/1398X1000/1690882129.webp?w=450&fit=max"
|
||||||
|
loading="lazy" alt="كتكوت">
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-12 col-sm-12">
|
||||||
|
<div class="iq-blog-detail">
|
||||||
|
<div class="trending-info">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12 col-12 mb-auto">
|
||||||
|
<div class="d-md-flex trending-box">
|
||||||
|
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
|
||||||
|
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
||||||
|
كتكوت
|
||||||
|
</h5>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="p-0 list-inline d-flex flex-wrap align-items-center mb-3 mt-4 iq_tag-list">
|
||||||
|
<li class="text-primary text-lable mr-3">
|
||||||
|
<i class="fa fa-tags" aria-hidden="true"></i>
|
||||||
|
التصنيف
|
||||||
|
</li>
|
||||||
|
<li class="trending-list mr-3">
|
||||||
|
<a class="title"
|
||||||
|
href="#">كوميديا , عائلة , إثارة
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="blog-button">
|
||||||
|
|
||||||
|
<button id="modal-open-button"
|
||||||
|
type="button" class="btn btn-primary button-link" data-toggle="modal"
|
||||||
|
|
||||||
|
data-target="#exampleModal"
|
||||||
|
onclick="throttle(getPlayer_epg, 1000, 'https://hiplayer.hibridcdn.net/l/rotana-cinemamasrdvr',1702168573,1702176316); showCatchUpStatus();"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<i class="ri-tv-line"></i>
|
||||||
|
|
||||||
|
الأرشيف
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
<span>
|
||||||
|
<p><strong></strong></p>
|
||||||
|
|
||||||
|
في إطار كوميدي تدور أحداث الفيلم، حول (كتكوت) الصعيدي الذي تحاول عمته كبيرة العائلة الصعيدية إجباره على تقديم نفسه للقتل ليفدي عائلته، ولكنه يهرب وتخطفه جهة أمنية لاكتشاف شبه كبير بينه وبين (يوسف خوري...
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<span> البلد
|
||||||
|
:
|
||||||
|
مصر
|
||||||
|
</span>
|
||||||
|
<br>
|
||||||
|
<span> سنة الإصدار
|
||||||
|
:
|
||||||
|
2006
|
||||||
|
</span>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<span> التصنيف
|
||||||
|
:
|
||||||
|
فيلم
|
||||||
|
</span>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<span> اللغة
|
||||||
|
:
|
||||||
|
عربي
|
||||||
|
</span>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 ">
|
||||||
|
<div class="iq-accordion-title">
|
||||||
|
|
||||||
|
<h5 class="big-title text-uppercase mt-0 fadeInDown animated" data-animation-in="fadeInDown"
|
||||||
|
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
||||||
|
<span>طاقم العمل</span>
|
||||||
|
</h5>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="">
|
||||||
|
|
||||||
|
<ul class=" row list-inline mb-0 iq-rtl-direction iq_genres-contents">
|
||||||
|
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 2">
|
||||||
|
<a
|
||||||
|
href="https://rotana.net/ar/actor-details/2619/%D9%85%D8%AD%D9%85%D8%AF-%D8%B3%D8%B9%D8%AF" target="_blank">
|
||||||
|
|
||||||
|
<div class="block-images position-relative watchlist-first">
|
||||||
|
<div class="img-box">
|
||||||
|
<img src="https://imgsrv.rotana.net/elcinema_persons/1677278061?w=165&fit=max"
|
||||||
|
class="img-fluid" loading="lazy" alt="محمد سعد">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
||||||
|
<h6 class="iq-title">
|
||||||
|
محمد سعد
|
||||||
|
</h6>
|
||||||
|
<h6 class="iq-title">ممثل</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 3">
|
||||||
|
<a
|
||||||
|
href="https://rotana.net/ar/actor-details/714/%D8%AD%D8%B3%D9%86-%D8%AD%D8%B3%D9%86%D9%8A" target="_blank">
|
||||||
|
|
||||||
|
<div class="block-images position-relative watchlist-first">
|
||||||
|
<div class="img-box">
|
||||||
|
<img src="https://imgsrv.rotana.net/elcinema_persons/1677264896?w=165&fit=max"
|
||||||
|
class="img-fluid" loading="lazy" alt="حسن حسني">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
||||||
|
<h6 class="iq-title">
|
||||||
|
حسن حسني
|
||||||
|
</h6>
|
||||||
|
<h6 class="iq-title">ممثل</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 4">
|
||||||
|
<a
|
||||||
|
href="https://rotana.net/ar/actor-details/6148/%D9%87%D8%A8%D9%87-%D8%A7%D9%84%D8%B3%D9%8A%D8%B3%D9%8A" target="_blank">
|
||||||
|
|
||||||
|
<div class="block-images position-relative watchlist-first">
|
||||||
|
<div class="img-box">
|
||||||
|
<img src="https://imgsrv.rotana.net/elcinema_persons/1677266249?w=165&fit=max"
|
||||||
|
class="img-fluid" loading="lazy" alt="هبه السيسي">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
||||||
|
<h6 class="iq-title">
|
||||||
|
هبه السيسي
|
||||||
|
</h6>
|
||||||
|
<h6 class="iq-title">ممثل</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 5">
|
||||||
|
<a
|
||||||
|
href="https://rotana.net/ar/actor-details/2589/%D8%B9%D9%84%D9%8A-%D8%AD%D8%B3%D9%86%D9%8A%D9%86" target="_blank">
|
||||||
|
|
||||||
|
<div class="block-images position-relative watchlist-first">
|
||||||
|
<div class="img-box">
|
||||||
|
<img src="https://imgsrv.rotana.net/elcinema_persons/1677253689?w=165&fit=max"
|
||||||
|
class="img-fluid" loading="lazy" alt="علي حسنين">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
||||||
|
<h6 class="iq-title">
|
||||||
|
علي حسنين
|
||||||
|
</h6>
|
||||||
|
<h6 class="iq-title">ممثل</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 6">
|
||||||
|
<a
|
||||||
|
href="https://rotana.net/ar/actor-details/987/%D9%85%D8%AD%D9%85%D8%AF-%D9%88%D9%81%D9%8A%D9%82" target="_blank">
|
||||||
|
|
||||||
|
<div class="block-images position-relative watchlist-first">
|
||||||
|
<div class="img-box">
|
||||||
|
<img src="https://imgsrv.rotana.net/elcinema_persons/1677278771?w=165&fit=max"
|
||||||
|
class="img-fluid" loading="lazy" alt="محمد وفيق">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
||||||
|
<h6 class="iq-title">
|
||||||
|
محمد وفيق
|
||||||
|
</h6>
|
||||||
|
<h6 class="iq-title">ممثل</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 7">
|
||||||
|
<a
|
||||||
|
href="https://rotana.net/ar/actor-details/1035/%D8%AD%D8%B3%D9%86-%D8%B9%D8%A8%D8%AF%D8%A7%D9%84%D9%81%D8%AA%D8%A7%D8%AD" target="_blank">
|
||||||
|
|
||||||
|
<div class="block-images position-relative watchlist-first">
|
||||||
|
<div class="img-box">
|
||||||
|
<img src="https://imgsrv.rotana.net/elcinema_persons/1677264953?w=165&fit=max"
|
||||||
|
class="img-fluid" loading="lazy" alt="حسن عبدالفتاح">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
||||||
|
<h6 class="iq-title">
|
||||||
|
حسن عبدالفتاح
|
||||||
|
</h6>
|
||||||
|
<h6 class="iq-title">ممثل</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
240
sites/rotana.net/__data__/program_en.html
Normal file
240
sites/rotana.net/__data__/program_en.html
Normal file
|
@ -0,0 +1,240 @@
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-6 col-md-12 col-sm-12 ">
|
||||||
|
<img src="https://imgsrv.rotana.net/spider_storage/1398X1000/1690882129.webp?w=450&fit=max"
|
||||||
|
loading="lazy" alt="Katkout">
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-12 col-sm-12">
|
||||||
|
<div class="iq-blog-detail">
|
||||||
|
<div class="trending-info">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12 col-12 mb-auto">
|
||||||
|
<div class="d-md-flex trending-box">
|
||||||
|
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
|
||||||
|
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
||||||
|
Katkout
|
||||||
|
</h5>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="p-0 list-inline d-flex flex-wrap align-items-center mb-3 mt-4 iq_tag-list">
|
||||||
|
<li class="text-primary text-lable mr-3">
|
||||||
|
<i class="fa fa-tags" aria-hidden="true"></i>
|
||||||
|
Genres
|
||||||
|
</li>
|
||||||
|
<li class="trending-list mr-3">
|
||||||
|
<a class="title"
|
||||||
|
href="#">Comedy , Family , Thriller
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="blog-button">
|
||||||
|
|
||||||
|
<button id="modal-open-button"
|
||||||
|
type="button" class="btn btn-primary button-link" data-toggle="modal"
|
||||||
|
|
||||||
|
data-target="#exampleModal"
|
||||||
|
onclick="throttle(getPlayer_epg, 1000, 'https://hiplayer.hibridcdn.net/l/rotana-cinemamasrdvr',1702168573,1702176316); showCatchUpStatus();"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<i class="ri-tv-line"></i>
|
||||||
|
|
||||||
|
Catch up
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
<span>
|
||||||
|
<p><strong></strong></p>
|
||||||
|
|
||||||
|
In a comic framework, the events of the film revolve around (Katkoot) Al-Saedi, whose aunt, the eldest of the Al-Saedi family, tries to force him to kill himself in order to ransom his family. A time...
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<span> Country
|
||||||
|
:
|
||||||
|
Egypt
|
||||||
|
</span>
|
||||||
|
<br>
|
||||||
|
<span> Release Year
|
||||||
|
:
|
||||||
|
2006
|
||||||
|
</span>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<span> Category
|
||||||
|
:
|
||||||
|
Movie
|
||||||
|
</span>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<span> Language
|
||||||
|
:
|
||||||
|
Arabic
|
||||||
|
</span>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 ">
|
||||||
|
<div class="iq-accordion-title">
|
||||||
|
|
||||||
|
<h5 class="big-title text-uppercase mt-0 fadeInDown animated" data-animation-in="fadeInDown"
|
||||||
|
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
|
||||||
|
<span>Cast</span>
|
||||||
|
</h5>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="">
|
||||||
|
|
||||||
|
<ul class=" row list-inline mb-0 iq-rtl-direction iq_genres-contents">
|
||||||
|
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 2">
|
||||||
|
<a
|
||||||
|
href="https://rotana.net/en/actor-details/2619/%D9%85%D8%AD%D9%85%D8%AF-%D8%B3%D8%B9%D8%AF" target="_blank">
|
||||||
|
|
||||||
|
<div class="block-images position-relative watchlist-first">
|
||||||
|
<div class="img-box">
|
||||||
|
<img src="https://imgsrv.rotana.net/elcinema_persons/1677278061?w=165&fit=max"
|
||||||
|
class="img-fluid" loading="lazy" alt="Mohamed Saad">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
||||||
|
<h6 class="iq-title">
|
||||||
|
Mohamed Saad
|
||||||
|
</h6>
|
||||||
|
<h6 class="iq-title">Actor</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 3">
|
||||||
|
<a
|
||||||
|
href="https://rotana.net/en/actor-details/714/%D8%AD%D8%B3%D9%86-%D8%AD%D8%B3%D9%86%D9%8A" target="_blank">
|
||||||
|
|
||||||
|
<div class="block-images position-relative watchlist-first">
|
||||||
|
<div class="img-box">
|
||||||
|
<img src="https://imgsrv.rotana.net/elcinema_persons/1677264896?w=165&fit=max"
|
||||||
|
class="img-fluid" loading="lazy" alt="Hassan Hosny">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
||||||
|
<h6 class="iq-title">
|
||||||
|
Hassan Hosny
|
||||||
|
</h6>
|
||||||
|
<h6 class="iq-title">Actor</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 4">
|
||||||
|
<a
|
||||||
|
href="https://rotana.net/en/actor-details/6148/%D9%87%D8%A8%D9%87-%D8%A7%D9%84%D8%B3%D9%8A%D8%B3%D9%8A" target="_blank">
|
||||||
|
|
||||||
|
<div class="block-images position-relative watchlist-first">
|
||||||
|
<div class="img-box">
|
||||||
|
<img src="https://imgsrv.rotana.net/elcinema_persons/1677266249?w=165&fit=max"
|
||||||
|
class="img-fluid" loading="lazy" alt="Heba El Sisi">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
||||||
|
<h6 class="iq-title">
|
||||||
|
Heba El Sisi
|
||||||
|
</h6>
|
||||||
|
<h6 class="iq-title">Actor</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 5">
|
||||||
|
<a
|
||||||
|
href="https://rotana.net/en/actor-details/2589/%D8%B9%D9%84%D9%8A-%D8%AD%D8%B3%D9%86%D9%8A%D9%86" target="_blank">
|
||||||
|
|
||||||
|
<div class="block-images position-relative watchlist-first">
|
||||||
|
<div class="img-box">
|
||||||
|
<img src="https://imgsrv.rotana.net/elcinema_persons/1677253689?w=165&fit=max"
|
||||||
|
class="img-fluid" loading="lazy" alt="Ali Hassanein">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
||||||
|
<h6 class="iq-title">
|
||||||
|
Ali Hassanein
|
||||||
|
</h6>
|
||||||
|
<h6 class="iq-title">Actor</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 6">
|
||||||
|
<a
|
||||||
|
href="https://rotana.net/en/actor-details/987/%D9%85%D8%AD%D9%85%D8%AF-%D9%88%D9%81%D9%8A%D9%82" target="_blank">
|
||||||
|
|
||||||
|
<div class="block-images position-relative watchlist-first">
|
||||||
|
<div class="img-box">
|
||||||
|
<img src="https://imgsrv.rotana.net/elcinema_persons/1677278771?w=165&fit=max"
|
||||||
|
class="img-fluid" loading="lazy" alt="Mohammad Wafik">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
||||||
|
<h6 class="iq-title">
|
||||||
|
Mohammad Wafik
|
||||||
|
</h6>
|
||||||
|
<h6 class="iq-title">Actor</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 7">
|
||||||
|
<a
|
||||||
|
href="https://rotana.net/en/actor-details/1035/%D8%AD%D8%B3%D9%86-%D8%B9%D8%A8%D8%AF%D8%A7%D9%84%D9%81%D8%AA%D8%A7%D8%AD" target="_blank">
|
||||||
|
|
||||||
|
<div class="block-images position-relative watchlist-first">
|
||||||
|
<div class="img-box">
|
||||||
|
<img src="https://imgsrv.rotana.net/elcinema_persons/1677264953?w=165&fit=max"
|
||||||
|
class="img-fluid" loading="lazy" alt="Hassan Abdulfattah">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
|
||||||
|
<h6 class="iq-title">
|
||||||
|
Hassan Abdulfattah
|
||||||
|
</h6>
|
||||||
|
<h6 class="iq-title">Actor</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
|
@ -1,8 +1,10 @@
|
||||||
|
const axios = require('axios')
|
||||||
const cheerio = require('cheerio')
|
const cheerio = require('cheerio')
|
||||||
const dayjs = require('dayjs')
|
const dayjs = require('dayjs')
|
||||||
const timezone = require('dayjs/plugin/timezone')
|
const timezone = require('dayjs/plugin/timezone')
|
||||||
const utc = require('dayjs/plugin/utc')
|
const utc = require('dayjs/plugin/utc')
|
||||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||||
|
const debug = require('debug')('site:rotana.net')
|
||||||
|
|
||||||
dayjs.extend(timezone)
|
dayjs.extend(timezone)
|
||||||
dayjs.extend(utc)
|
dayjs.extend(utc)
|
||||||
|
@ -11,80 +13,100 @@ dayjs.extend(customParseFormat)
|
||||||
const headers = {
|
const headers = {
|
||||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 OPR/104.0.0.0'
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 OPR/104.0.0.0'
|
||||||
}
|
}
|
||||||
|
const cookies = {}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
site: 'rotana.net',
|
site: 'rotana.net',
|
||||||
days: 2,
|
days: 2,
|
||||||
url({ channel }) {
|
url({ channel }) {
|
||||||
return `https://rotana.net/${channel.lang}/streams?channel=${channel.site_id}`
|
return `https://rotana.net/${channel.lang}/streams?channel=${channel.site_id}&tz=`
|
||||||
},
|
},
|
||||||
request: {
|
request: {
|
||||||
headers,
|
headers,
|
||||||
timeout: 15000
|
timeout: 15000
|
||||||
},
|
},
|
||||||
parser({ content, date }) {
|
async parser({ content, headers, channel, date }) {
|
||||||
const programs = []
|
const programs = []
|
||||||
|
if (!cookies[channel.lang]) {
|
||||||
|
cookies[channel.lang] = parseCookies(headers)
|
||||||
|
}
|
||||||
|
|
||||||
const items = parseItems(content, date)
|
const items = parseItems(content, date)
|
||||||
items.forEach(item => {
|
for (const item of items) {
|
||||||
const info = item.find('.iq-accordion-block > .iq-accordion-title .big-title span')
|
const program = await parseProgram(item, channel)
|
||||||
if (info.length) {
|
if (program) {
|
||||||
const details = item.find('.trending-info div > span')
|
programs.push(program)
|
||||||
const [ time, title ] = info.text().split('\n')
|
|
||||||
const [ _, duration, description ] = details.text().split('\n')
|
|
||||||
if (duration) {
|
|
||||||
const start = dayjs.tz(`${date.format('YYYY-MM-DD')} ${time.trim()}`, 'YYYY-MM-DD HH:mm', 'Asia/Riyadh')
|
|
||||||
const stop = addDuration(start, duration.trim())
|
|
||||||
|
|
||||||
programs.push({
|
|
||||||
title: title.trim(),
|
|
||||||
description: description.trim(),
|
|
||||||
start: start.toISOString(),
|
|
||||||
stop: stop.toISOString()
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
|
||||||
|
|
||||||
return programs
|
return programs
|
||||||
},
|
},
|
||||||
async channels({ lang = 'en' }) {
|
async channels({ lang = 'en' }) {
|
||||||
const axios = require('axios')
|
|
||||||
const options = {headers}
|
|
||||||
const result = await axios
|
const result = await axios
|
||||||
.get(`https://rotana.net/${lang}/streams`, options)
|
.get(`https://rotana.net/api/channels`)
|
||||||
|
.then(response => response.data)
|
||||||
|
.catch(console.error)
|
||||||
|
|
||||||
|
return result.data.map(item => {
|
||||||
|
return {
|
||||||
|
lang,
|
||||||
|
site_id: item.id,
|
||||||
|
name: item.name[lang]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function parseProgram(item, channel, options = {}) {
|
||||||
|
options = options || {}
|
||||||
|
const deep = options.deep !== undefined ? options.deep : true
|
||||||
|
const raw = options.raw !== undefined ? options.raw : false
|
||||||
|
const top = item.find('.iq-accordion-block')
|
||||||
|
const info = top.find('.iq-accordion-title .big-title span')
|
||||||
|
if (info.length) {
|
||||||
|
const [ time, title ] = info.text().split('\n')
|
||||||
|
const [ d, m, y ] = item._date.split('-')
|
||||||
|
const start = dayjs.tz(`${y}-${m}-${d} ${time.trim()}`, 'YYYY-MM-DD HH:mm', 'Asia/Riyadh')
|
||||||
|
let description, icon, stop
|
||||||
|
if (deep) {
|
||||||
|
const pid = top.attr('id').split('-')[1]
|
||||||
|
if (pid) {
|
||||||
|
const url = `https://rotana.net/${channel.lang}/streams?channel=${channel.site_id}&itemId=${pid}`
|
||||||
|
const params = {
|
||||||
|
headers: Object.assign({}, headers, { 'X-Requested-With': 'XMLHttpRequest' }),
|
||||||
|
Cookie: cookies[channel.lang]
|
||||||
|
}
|
||||||
|
debug(`fetching description ${url}`)
|
||||||
|
const result = await axios
|
||||||
|
.get(url, params)
|
||||||
.then(response => response.data)
|
.then(response => response.data)
|
||||||
.catch(console.error)
|
.catch(console.error)
|
||||||
|
|
||||||
const $ = cheerio.load(result)
|
const $ = cheerio.load(result)
|
||||||
const items = $('#channels-list a').toArray()
|
const details = $('.trending-info div > span')
|
||||||
const channels = items.map(item => {
|
if (details.length) {
|
||||||
const $item = $(item)
|
description = details.text().split('\n')[3].trim()
|
||||||
const data = $item.attr('href').match(/channel=([A-Za-z0-9]+)/)
|
}
|
||||||
|
const img = $('.row > div > img')
|
||||||
|
if (img.length) {
|
||||||
|
icon = img.attr('src')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (item._next) {
|
||||||
|
const next = await parseProgram(item._next, channel, { deep: false, raw: true })
|
||||||
|
if (next.start) {
|
||||||
|
stop = next.start
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
lang,
|
title: title?.trim(),
|
||||||
site_id: data[1],
|
description: description?.trim(),
|
||||||
name: $item.text().trim()
|
icon: icon,
|
||||||
}
|
start: raw ? start : start?.toISOString(),
|
||||||
})
|
stop: raw ? stop : stop?.toISOString()
|
||||||
|
|
||||||
return channels
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function addDuration(date, duration) {
|
|
||||||
const matches = duration.matchAll(/(\d+)(h|m|s|ms)/g)
|
|
||||||
while (true) {
|
|
||||||
const m = matches.next()
|
|
||||||
if (!m.value) {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
if (m.value[1] && m.value[2]) {
|
|
||||||
date = date.add(parseInt(m.value[1]), m.value[2])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return date
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseItems(content, date) {
|
function parseItems(content, date) {
|
||||||
|
@ -93,14 +115,35 @@ function parseItems(content, date) {
|
||||||
|
|
||||||
const expectedId = `item-${date.format('DD-MM-YYYY')}`
|
const expectedId = `item-${date.format('DD-MM-YYYY')}`
|
||||||
let lastId
|
let lastId
|
||||||
$('.hour > div').toArray().forEach(item => {
|
$('.hour > div').each((_, item) => {
|
||||||
const $item = $(item)
|
const $item = $(item)
|
||||||
if ($item.hasClass('bg')) {
|
if ($item.hasClass('bg')) {
|
||||||
lastId = $item.attr('id')
|
lastId = $item.attr('id')
|
||||||
} else if ($item.hasClass('iq-accordion') && lastId === expectedId) {
|
} else if ($item.hasClass('iq-accordion')) {
|
||||||
|
$item._date = lastId.substr(lastId.indexOf('-') + 1)
|
||||||
|
// is date match?
|
||||||
|
if (lastId === expectedId) {
|
||||||
|
// set next item
|
||||||
|
if (result.length) {
|
||||||
|
result[result.length - 1]._next = $item;
|
||||||
|
}
|
||||||
result.push($item)
|
result.push($item)
|
||||||
|
} else if (result.length && !result[result.length - 1]._next) {
|
||||||
|
// set next item
|
||||||
|
result[result.length - 1]._next = $item
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function parseCookies(headers) {
|
||||||
|
const cookies = []
|
||||||
|
if (headers && Array.isArray(headers['set-cookie'])) {
|
||||||
|
headers['set-cookie'].forEach(cookie => {
|
||||||
|
cookies.push(cookie.split('; ')[0])
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return cookies.length ? cookies.join('; ') : null
|
||||||
|
}
|
|
@ -1,4 +1,7 @@
|
||||||
const { parser, url, request } = require('./rotana.net.config.js')
|
const { parser, url, request } = require('./rotana.net.config.js')
|
||||||
|
const fs = require('fs')
|
||||||
|
const path = require('path')
|
||||||
|
const axios = require('axios')
|
||||||
const dayjs = require('dayjs')
|
const dayjs = require('dayjs')
|
||||||
const utc = require('dayjs/plugin/utc')
|
const utc = require('dayjs/plugin/utc')
|
||||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||||
|
@ -6,17 +9,30 @@ const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||||
dayjs.extend(customParseFormat)
|
dayjs.extend(customParseFormat)
|
||||||
dayjs.extend(utc)
|
dayjs.extend(utc)
|
||||||
|
|
||||||
const date = dayjs.utc('2023-11-11').startOf('d')
|
jest.mock('axios')
|
||||||
|
|
||||||
|
const date = dayjs.utc('2023-12-10').startOf('d')
|
||||||
const channel = {
|
const channel = {
|
||||||
lang: 'en',
|
lang: 'en',
|
||||||
site_id: '439',
|
site_id: '439',
|
||||||
xmltv_id: 'RotanaCinemaMasr.sa'
|
xmltv_id: 'RotanaCinemaMasr.sa'
|
||||||
}
|
}
|
||||||
const channelAr = {
|
const channelAr = Object.assign({}, channel, { lang: 'ar' })
|
||||||
lang: 'ar',
|
|
||||||
site_id: '439',
|
axios.get.mockImplementation((url, opts) => {
|
||||||
xmltv_id: 'RotanaCinemaMasr.sa'
|
if (url === 'https://rotana.net/en/streams?channel=439&itemId=239849') {
|
||||||
|
return Promise.resolve({
|
||||||
|
data: fs.readFileSync(path.resolve(__dirname, '__data__/program_en.html'))
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
if (url === 'https://rotana.net/ar/streams?channel=439&itemId=239849') {
|
||||||
|
return Promise.resolve({
|
||||||
|
data: fs.readFileSync(path.resolve(__dirname, '__data__/program_ar.html'))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return Promise.resolve({ data: '' })
|
||||||
|
})
|
||||||
|
|
||||||
it('can use defined user agent', () => {
|
it('can use defined user agent', () => {
|
||||||
const result = request.headers['User-Agent']
|
const result = request.headers['User-Agent']
|
||||||
|
@ -27,56 +43,48 @@ it('can use defined user agent', () => {
|
||||||
|
|
||||||
it('can generate valid english url', () => {
|
it('can generate valid english url', () => {
|
||||||
const result = url({ channel, date })
|
const result = url({ channel, date })
|
||||||
expect(result).toBe('https://rotana.net/en/streams?channel=439')
|
expect(result).toBe('https://rotana.net/en/streams?channel=439&tz=')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('can generate valid arabic url', () => {
|
it('can generate valid arabic url', () => {
|
||||||
const result = url({ channel: channelAr, date })
|
const result = url({ channel: channelAr, date })
|
||||||
expect(result).toBe('https://rotana.net/ar/streams?channel=439')
|
expect(result).toBe('https://rotana.net/ar/streams?channel=439&tz=')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('can parse english response', () => {
|
it('can parse english response', async () => {
|
||||||
const fs = require('fs')
|
const result = await parser({
|
||||||
const path = require('path')
|
|
||||||
|
|
||||||
const result = parser({
|
|
||||||
channel,
|
channel,
|
||||||
date,
|
date,
|
||||||
content: fs.readFileSync(path.join(__dirname, '/__data__/content_en.html'))
|
content: fs.readFileSync(path.join(__dirname, '/__data__/content_en.html'))
|
||||||
})
|
})
|
||||||
expect(result).toMatchObject([
|
expect(result[0]).toMatchObject({
|
||||||
{
|
start: '2023-12-09T21:36:00.000Z',
|
||||||
start: '2023-11-10T23:00:00.000Z',
|
stop: '2023-12-09T23:46:00.000Z',
|
||||||
stop: '2023-11-11T01:00:00.000Z',
|
title: 'Katkout',
|
||||||
title: 'Harim Karim',
|
|
||||||
description:
|
description:
|
||||||
'Karim and Jihan separate after a year of marriage due to her discovering his betrayal in her home. Karim tries to get his wife back, but she refuses. Karim calls his old colleague Maha to help him. Ho...'
|
'In a comic framework, the events of the film revolve around (Katkoot) Al-Saedi, whose aunt, the eldest of the Al-Saedi family, tries to force him to kill himself in order to ransom his family. A time...',
|
||||||
}
|
icon: 'https://imgsrv.rotana.net/spider_storage/1398X1000/1690882129.webp?w=450&fit=max'
|
||||||
])
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('can parse arabic response', () => {
|
it('can parse arabic response', async () => {
|
||||||
const fs = require('fs')
|
const result = await parser({
|
||||||
const path = require('path')
|
channel: channelAr,
|
||||||
|
|
||||||
const result = parser({
|
|
||||||
channelAr,
|
|
||||||
date,
|
date,
|
||||||
content: fs.readFileSync(path.join(__dirname, '/__data__/content_ar.html'))
|
content: fs.readFileSync(path.join(__dirname, '/__data__/content_ar.html'))
|
||||||
})
|
})
|
||||||
expect(result).toMatchObject([
|
expect(result[0]).toMatchObject({
|
||||||
{
|
start: '2023-12-09T21:36:00.000Z',
|
||||||
start: '2023-11-10T23:00:00.000Z',
|
stop: '2023-12-09T23:46:00.000Z',
|
||||||
stop: '2023-11-11T01:00:00.000Z',
|
title: 'كتكوت',
|
||||||
title: 'حريم كريم',
|
|
||||||
description:
|
description:
|
||||||
'كريم وجيهان ينفصلا بعد عام من الزواج بسبب اكتشافها لخيانته في منزلها، يحاول كريم استعادة زوجته، لكنها ترفض، فيتصل كريم بزميلته القديمة مها، لتساعده، لكن متاعب تحدث بين مها وزوجها، فتأتي لتعيش مع كريم،...'
|
'في إطار كوميدي تدور أحداث الفيلم، حول (كتكوت) الصعيدي الذي تحاول عمته كبيرة العائلة الصعيدية إجباره على تقديم نفسه للقتل ليفدي عائلته، ولكنه يهرب وتخطفه جهة أمنية لاكتشاف شبه كبير بينه وبين (يوسف خوري...',
|
||||||
}
|
icon: 'https://imgsrv.rotana.net/spider_storage/1398X1000/1690882129.webp?w=450&fit=max'
|
||||||
])
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('can handle empty guide', () => {
|
it('can handle empty guide', async () => {
|
||||||
const result = parser({
|
const result = await parser({
|
||||||
content: '<!DOCTYPE html><html><head></head><body></body></html>',
|
content: '<!DOCTYPE html><html><head></head><body></body></html>',
|
||||||
date,
|
date,
|
||||||
channel
|
channel
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<channels>
|
<channels>
|
||||||
|
<channel site="rotana.net" lang="ar" xmltv_id="" site_id="432">روتانا أتش دي</channel>
|
||||||
|
<channel site="rotana.net" lang="ar" xmltv_id="" site_id="433">روتانا سينما فرنسا</channel>
|
||||||
<channel site="rotana.net" lang="ar" xmltv_id="AlResalah.sa" site_id="446">الرساله</channel>
|
<channel site="rotana.net" lang="ar" xmltv_id="AlResalah.sa" site_id="446">الرساله</channel>
|
||||||
<channel site="rotana.net" lang="ar" xmltv_id="AlResalahInternational.sa" site_id="449">قناة رسالة الدولية</channel>
|
<channel site="rotana.net" lang="ar" xmltv_id="AlResalahInternational.sa" site_id="449">قناة رسالة الدولية</channel>
|
||||||
<channel site="rotana.net" lang="ar" xmltv_id="DahkwaBass.sa" site_id="447">ضحك وبس</channel>
|
<channel site="rotana.net" lang="ar" xmltv_id="DahkwaBass.sa" site_id="447">ضحك وبس</channel>
|
||||||
<channel site="rotana.net" lang="ar" xmltv_id="LBC.sa" site_id="434">إل بي سي</channel>
|
<channel site="rotana.net" lang="ar" xmltv_id="LBC.sa" site_id="434">إل بي سي</channel>
|
||||||
|
<channel site="rotana.net" lang="ar" xmltv_id="MPlusHD.sa" site_id="445">M+ HD</channel>
|
||||||
<channel site="rotana.net" lang="ar" xmltv_id="Romance.sa" site_id="450">رومانس</channel>
|
<channel site="rotana.net" lang="ar" xmltv_id="Romance.sa" site_id="450">رومانس</channel>
|
||||||
|
<channel site="rotana.net" lang="ar" xmltv_id="RotanaAflam.sa" site_id="440">روتانا أفلام</channel>
|
||||||
|
<channel site="rotana.net" lang="ar" xmltv_id="RotanaAmerica.sa" site_id="442">روتانا أمريكا</channel>
|
||||||
<channel site="rotana.net" lang="ar" xmltv_id="RotanaCinemaEgypt.eg" site_id="439">روتانا سينما مصر</channel>
|
<channel site="rotana.net" lang="ar" xmltv_id="RotanaCinemaEgypt.eg" site_id="439">روتانا سينما مصر</channel>
|
||||||
<channel site="rotana.net" lang="ar" xmltv_id="RotanaCinemaKSA.sa" site_id="431">روتانا سينما السعودية</channel>
|
<channel site="rotana.net" lang="ar" xmltv_id="RotanaCinemaKSA.sa" site_id="431">روتانا سينما السعودية</channel>
|
||||||
<channel site="rotana.net" lang="ar" xmltv_id="RotanaClassic.sa" site_id="438">روتانا كلاسيك</channel>
|
<channel site="rotana.net" lang="ar" xmltv_id="RotanaClassic.sa" site_id="438">روتانا كلاسيك</channel>
|
||||||
|
@ -12,5 +17,7 @@
|
||||||
<channel site="rotana.net" lang="ar" xmltv_id="RotanaComedy.sa" site_id="437">روتانا كوميدي</channel>
|
<channel site="rotana.net" lang="ar" xmltv_id="RotanaComedy.sa" site_id="437">روتانا كوميدي</channel>
|
||||||
<channel site="rotana.net" lang="ar" xmltv_id="RotanaDrama.sa" site_id="436">روتانا دراما</channel>
|
<channel site="rotana.net" lang="ar" xmltv_id="RotanaDrama.sa" site_id="436">روتانا دراما</channel>
|
||||||
<channel site="rotana.net" lang="ar" xmltv_id="RotanaKhalijia.sa" site_id="435">روتانا خليجية</channel>
|
<channel site="rotana.net" lang="ar" xmltv_id="RotanaKhalijia.sa" site_id="435">روتانا خليجية</channel>
|
||||||
|
<channel site="rotana.net" lang="ar" xmltv_id="RotanaKids.sa" site_id="441">روتانا كيدز</channel>
|
||||||
|
<channel site="rotana.net" lang="ar" xmltv_id="RotanaMusic.sa" site_id="444">روتانا موسيقي</channel>
|
||||||
<channel site="rotana.net" lang="ar" xmltv_id="SayedatAlshasha.sa" site_id="448">سيدة الشاشة</channel>
|
<channel site="rotana.net" lang="ar" xmltv_id="SayedatAlshasha.sa" site_id="448">سيدة الشاشة</channel>
|
||||||
</channels>
|
</channels>
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<channels>
|
<channels>
|
||||||
|
<channel site="rotana.net" lang="en" xmltv_id="" site_id="432">Rotana HD</channel>
|
||||||
|
<channel site="rotana.net" lang="en" xmltv_id="" site_id="433">Rotana Cinema France</channel>
|
||||||
<channel site="rotana.net" lang="en" xmltv_id="AlResalah.sa" site_id="446">Al Resalah</channel>
|
<channel site="rotana.net" lang="en" xmltv_id="AlResalah.sa" site_id="446">Al Resalah</channel>
|
||||||
<channel site="rotana.net" lang="en" xmltv_id="AlResalahInternational.sa" site_id="449">Al Resalah International</channel>
|
<channel site="rotana.net" lang="en" xmltv_id="AlResalahInternational.sa" site_id="449">Al Resalah International</channel>
|
||||||
<channel site="rotana.net" lang="en" xmltv_id="DahkwaBass.sa" site_id="447">Dahk wa Bass</channel>
|
<channel site="rotana.net" lang="en" xmltv_id="DahkwaBass.sa" site_id="447">Dahk wa Bass</channel>
|
||||||
<channel site="rotana.net" lang="en" xmltv_id="LBC.sa" site_id="434">LBC</channel>
|
<channel site="rotana.net" lang="en" xmltv_id="LBC.sa" site_id="434">LBC</channel>
|
||||||
|
<channel site="rotana.net" lang="en" xmltv_id="MPlusHD.sa" site_id="445">M+ HD</channel>
|
||||||
<channel site="rotana.net" lang="en" xmltv_id="Romance.sa" site_id="450">Romance</channel>
|
<channel site="rotana.net" lang="en" xmltv_id="Romance.sa" site_id="450">Romance</channel>
|
||||||
|
<channel site="rotana.net" lang="en" xmltv_id="RotanaAflam.sa" site_id="440">Rotana Aflam</channel>
|
||||||
|
<channel site="rotana.net" lang="en" xmltv_id="RotanaAmerica.sa" site_id="442">Rotana USA</channel>
|
||||||
<channel site="rotana.net" lang="en" xmltv_id="RotanaCinemaEgypt.eg" site_id="439">Rotana Cinema Masr</channel>
|
<channel site="rotana.net" lang="en" xmltv_id="RotanaCinemaEgypt.eg" site_id="439">Rotana Cinema Masr</channel>
|
||||||
<channel site="rotana.net" lang="en" xmltv_id="RotanaCinemaKSA.sa" site_id="431">Rotana Cinema KSA</channel>
|
<channel site="rotana.net" lang="en" xmltv_id="RotanaCinemaKSA.sa" site_id="431">Rotana Cinema KSA</channel>
|
||||||
<channel site="rotana.net" lang="en" xmltv_id="RotanaClassic.sa" site_id="438">Rotana Classic</channel>
|
<channel site="rotana.net" lang="en" xmltv_id="RotanaClassic.sa" site_id="438">Rotana Classic</channel>
|
||||||
|
@ -12,5 +17,7 @@
|
||||||
<channel site="rotana.net" lang="en" xmltv_id="RotanaComedy.sa" site_id="437">Rotana Comedy</channel>
|
<channel site="rotana.net" lang="en" xmltv_id="RotanaComedy.sa" site_id="437">Rotana Comedy</channel>
|
||||||
<channel site="rotana.net" lang="en" xmltv_id="RotanaDrama.sa" site_id="436">Rotana Drama</channel>
|
<channel site="rotana.net" lang="en" xmltv_id="RotanaDrama.sa" site_id="436">Rotana Drama</channel>
|
||||||
<channel site="rotana.net" lang="en" xmltv_id="RotanaKhalijia.sa" site_id="435">Rotana Khalijea HD</channel>
|
<channel site="rotana.net" lang="en" xmltv_id="RotanaKhalijia.sa" site_id="435">Rotana Khalijea HD</channel>
|
||||||
|
<channel site="rotana.net" lang="en" xmltv_id="RotanaKids.sa" site_id="441">Rotana Kids</channel>
|
||||||
|
<channel site="rotana.net" lang="en" xmltv_id="RotanaMusic.sa" site_id="444">Rotana Music</channel>
|
||||||
<channel site="rotana.net" lang="en" xmltv_id="SayedatAlshasha.sa" site_id="448">Sayedat Alshasha</channel>
|
<channel site="rotana.net" lang="en" xmltv_id="SayedatAlshasha.sa" site_id="448">Sayedat Alshasha</channel>
|
||||||
</channels>
|
</channels>
|
||||||
|
|
1
sites/tv.trueid.net/__data__/data.json
Normal file
1
sites/tv.trueid.net/__data__/data.json
Normal file
File diff suppressed because one or more lines are too long
|
@ -4,14 +4,32 @@ https://tv.trueid.net/
|
||||||
|
|
||||||
### Download the guide
|
### Download the guide
|
||||||
|
|
||||||
|
**NOTE:** This site only provides guides for today at current time, so it is necessary to get the guide at proper time (0:00 of Asia/Bangkok) to get the complete guides.
|
||||||
|
|
||||||
|
Thai:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm run grab -- --site=tv.trueid.net
|
npm run grab -- --site=tv.trueid.net --lang=th
|
||||||
|
```
|
||||||
|
|
||||||
|
English:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run grab -- --site=tv.trueid.net --lang=en
|
||||||
```
|
```
|
||||||
|
|
||||||
### Update channel list
|
### Update channel list
|
||||||
|
|
||||||
|
Thai:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm run channels:parse -- --config=./sites/tv.trueid.net/tv.trueid.net.config.js --output=./sites/tv.trueid.net/tv.trueid.net.channels.xml
|
npm run channels:parse -- --config=./sites/tv.trueid.net/tv.trueid.net.config.js --output=./sites/tv.trueid.net/tv.trueid.net_th.channels.xml --set=lang:th
|
||||||
|
```
|
||||||
|
|
||||||
|
English:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run channels:parse -- --config=./sites/tv.trueid.net/tv.trueid.net.config.js --output=./sites/tv.trueid.net/tv.trueid.net_en.channels.xml --set=lang:en
|
||||||
```
|
```
|
||||||
|
|
||||||
### Test
|
### Test
|
||||||
|
|
|
@ -1,25 +1,21 @@
|
||||||
const cheerio = require('cheerio')
|
|
||||||
const dayjs = require('dayjs')
|
const dayjs = require('dayjs')
|
||||||
const utc = require('dayjs/plugin/utc')
|
const utc = require('dayjs/plugin/utc')
|
||||||
|
|
||||||
dayjs.extend(utc)
|
dayjs.extend(utc)
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
delay: 5000,
|
delay: 1000,
|
||||||
site: 'tv.trueid.net',
|
site: 'tv.trueid.net',
|
||||||
days: 2,
|
days: 1,
|
||||||
url: function ({ channel, date }) {
|
url({ channel }) {
|
||||||
return `https://tv.trueid.net/tvguide/all/${channel.site_id}/${date.format('YYYY-MM-DD')}`
|
return `https://tv.trueid.net/_next/data/1380644e0f1fb6b14c82894a0c682d147e015c9d/th-${channel.lang}.json?channelSlug=${channel.site_id}&path=${channel.site_id}`
|
||||||
},
|
},
|
||||||
request: {
|
parser({ content, channel }) {
|
||||||
jar: null
|
const programs = []
|
||||||
},
|
parseItems(content, channel).forEach(item => {
|
||||||
parser: function ({ content, channel }) {
|
|
||||||
let programs = []
|
|
||||||
const items = parseItems(content, channel)
|
|
||||||
items.forEach(item => {
|
|
||||||
programs.push({
|
programs.push({
|
||||||
title: item.title,
|
title: item.title,
|
||||||
|
description: parseDescription(item, channel.lang),
|
||||||
icon: parseIcon(item),
|
icon: parseIcon(item),
|
||||||
start: parseStart(item),
|
start: parseStart(item),
|
||||||
stop: parseStop(item)
|
stop: parseStop(item)
|
||||||
|
@ -28,30 +24,25 @@ module.exports = {
|
||||||
|
|
||||||
return programs
|
return programs
|
||||||
},
|
},
|
||||||
async channels({ token }) {
|
async channels({ token, lang = en }) {
|
||||||
const axios = require('axios')
|
const axios = require('axios')
|
||||||
|
const ACCESS_TOKEN = token ? token :
|
||||||
const ACCESS_TOKEN =
|
|
||||||
'MTM4MDY0NGUwZjFmYjZiMTRjODI4OTRhMGM2ODJkMTQ3ZTAxNWM5ZDoxZmI2YjE0YzgyODk0YTBjNjgyZDE0N2UwMTVjOWQ='
|
'MTM4MDY0NGUwZjFmYjZiMTRjODI4OTRhMGM2ODJkMTQ3ZTAxNWM5ZDoxZmI2YjE0YzgyODk0YTBjNjgyZDE0N2UwMTVjOWQ='
|
||||||
|
|
||||||
const data = await axios
|
const data = await axios
|
||||||
.get(`https://tv.trueid.net/api/channel/getChannelListByAllCate`, {
|
.get(`https://tv.trueid.net/api/channel/getChannelListByAllCate?lang=${lang}&country=th`, {
|
||||||
params: {
|
|
||||||
lang: 'en',
|
|
||||||
country: 'th'
|
|
||||||
},
|
|
||||||
headers: {
|
headers: {
|
||||||
authorization: `Basic ${ACCESS_TOKEN}`
|
authorization: `Basic ${ACCESS_TOKEN}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.then(r => r.data)
|
.then(r => r.data)
|
||||||
.catch(console.log)
|
.catch(console.error)
|
||||||
|
|
||||||
return data.data.channelsList
|
return data.data.channelsList
|
||||||
.find(i => i.catSlug === 'TrueID : All')
|
.find(i => i.catSlug === 'TrueID : All')
|
||||||
.channels.map(item => {
|
.channels.map(item => {
|
||||||
return {
|
return {
|
||||||
lang: 'th',
|
lang,
|
||||||
site_id: item.slug,
|
site_id: item.slug,
|
||||||
name: item.title
|
name: item.title
|
||||||
}
|
}
|
||||||
|
@ -59,37 +50,24 @@ module.exports = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function parseDescription(item, lang) {
|
||||||
|
const description = item.info?.[`synopsis_${lang}`]
|
||||||
|
return description && description !== '.' ? description : null;
|
||||||
|
}
|
||||||
|
|
||||||
function parseIcon(item) {
|
function parseIcon(item) {
|
||||||
return item.detail ? item.detail.thumb : null
|
return item.info?.image || null
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseStart(item) {
|
function parseStart(item) {
|
||||||
return item.detail ? dayjs.utc(item.detail.start_date) : null
|
return item.start_date ? dayjs.utc(item.start_date) : null
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseStop(item) {
|
function parseStop(item) {
|
||||||
return item.detail ? dayjs.utc(item.detail.end_date) : null
|
return item.end_date ? dayjs.utc(item.end_date) : null
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseContent(content, channel) {
|
function parseItems(content) {
|
||||||
const $ = cheerio.load(content)
|
const data = content ? JSON.parse(content) : null;
|
||||||
const nextData = $('#__NEXT_DATA__').html()
|
return data?.pageProps?.epgList || []
|
||||||
const data = JSON.parse(nextData)
|
|
||||||
if (
|
|
||||||
!data ||
|
|
||||||
!data.props ||
|
|
||||||
!data.props.pageProps ||
|
|
||||||
!data.props.pageProps.listEPG ||
|
|
||||||
!Array.isArray(data.props.pageProps.listEPG.data)
|
|
||||||
)
|
|
||||||
return null
|
|
||||||
|
|
||||||
return data.props.pageProps.listEPG.data.find(ch => ch.slug === channel.site_id)
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseItems(content, channel) {
|
|
||||||
const data = parseContent(content, channel)
|
|
||||||
if (!data || !Array.isArray(data.programList)) return []
|
|
||||||
|
|
||||||
return data.programList
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,38 +1,57 @@
|
||||||
const { parser, url } = require('./tv.trueid.net.config.js')
|
const { parser, url } = require('./tv.trueid.net.config.js')
|
||||||
|
const fs = require('fs')
|
||||||
|
const path = require('path')
|
||||||
const dayjs = require('dayjs')
|
const dayjs = require('dayjs')
|
||||||
const utc = require('dayjs/plugin/utc')
|
const utc = require('dayjs/plugin/utc')
|
||||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||||
|
|
||||||
dayjs.extend(customParseFormat)
|
dayjs.extend(customParseFormat)
|
||||||
dayjs.extend(utc)
|
dayjs.extend(utc)
|
||||||
|
|
||||||
const date = dayjs.utc('2021-10-28', 'YYYY-MM-DD').startOf('d')
|
const date = dayjs.utc('2023-12-11').startOf('d')
|
||||||
const channel = {
|
const channel = {
|
||||||
site_id: 'tv-nfl-nba',
|
lang: 'en',
|
||||||
xmltv_id: 'NFLNBATV.us',
|
site_id: 'true-movie-hits',
|
||||||
name: 'NFL & NBA TV'
|
xmltv_id: 'TrueMovieHits.th'
|
||||||
}
|
}
|
||||||
const content =
|
const channelTh = Object.assign({}, channel, { lang: 'th' })
|
||||||
'<!DOCTYPE html><html lang="th"><head></head><body><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"lang":"th","listEPG":{"status":200,"data":[{"cmsId":"eXlvvZ4EA5aY","channelCode":"t513","logo":"https://cms.dmpcdn.com/livetv/2021/09/28/2c9c41c0-203b-11ec-9346-6f50de6452df_webp_original.png","title":"NFL \\u0026 NBA TV","slug":"tv-nfl-nba","url":"https://tv.trueid.net/live/tv-nfl-nba","programList":[{"title_id":"710569","title":"NBA 2021/22","displayTime":"02:00 - 04:00","time":120,"channel_code":"t513","detail":{"title_id":"710569","title":"NBA 2021/22","display_date":"Fri","start_date":"2021-10-28T19:00:00.000Z","end_date":"2021-10-28T21:00:00.000Z","thumb":"https://epgthumb.dmpcdn.com/thumbnail_large/t513/20211029/20211029_020000.jpg","ep_no":"43","ep_name":"043:MIAMI VS BROOKLYN 28 OCT"},"no":3,"status":true}]}]},"category_name":"all","nowDate":"2021-10-29","metaTitle":"ผังรายการทีวีช่องทีวีทั้งหมด วันที่ 29/10/2021"},"lang":"th","currentUrl":"https://tv.trueid.net/tvguide/all\\u0026is_gcp=false"}}</script></body></html>'
|
const data = fs.readFileSync(path.resolve(__dirname, '__data__/data.json'))
|
||||||
|
|
||||||
it('can generate valid url', () => {
|
it('can generate valid url', () => {
|
||||||
const result = url({ channel, date })
|
const result = url({ channel, date })
|
||||||
expect(result).toBe('https://tv.trueid.net/tvguide/all/tv-nfl-nba/2021-10-28')
|
expect(result).toBe('https://tv.trueid.net/_next/data/1380644e0f1fb6b14c82894a0c682d147e015c9d/th-en.json?channelSlug=true-movie-hits&path=true-movie-hits')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('can parse response', () => {
|
it('can parse English response', () => {
|
||||||
const result = parser({ date, channel, content }).map(p => {
|
const result = parser({ date, channel, content: data }).map(p => {
|
||||||
p.start = p.start.toJSON()
|
p.start = p.start.toJSON()
|
||||||
p.stop = p.stop.toJSON()
|
p.stop = p.stop.toJSON()
|
||||||
return p
|
return p
|
||||||
})
|
})
|
||||||
expect(result).toMatchObject([
|
expect(result[0]).toMatchObject({
|
||||||
{
|
start: '2023-12-11T19:05:00.000Z',
|
||||||
start: '2021-10-28T19:00:00.000Z',
|
stop: '2023-12-11T20:55:00.000Z',
|
||||||
stop: '2021-10-28T21:00:00.000Z',
|
title: 'The Last Witch Hunter',
|
||||||
title: 'NBA 2021/22',
|
description:
|
||||||
icon: 'https://epgthumb.dmpcdn.com/thumbnail_large/t513/20211029/20211029_020000.jpg'
|
'A young man is all that stands between humanity and the most horrifying witches in history.',
|
||||||
}
|
icon: 'https://bms.dmpcdn.com/uploads/pic/381f853da5f4a310bf248357fed21a57.jpg'
|
||||||
])
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('can parse Thai response', () => {
|
||||||
|
const result = parser({ date, channel: channelTh, content: data }).map(p => {
|
||||||
|
p.start = p.start.toJSON()
|
||||||
|
p.stop = p.stop.toJSON()
|
||||||
|
return p
|
||||||
|
})
|
||||||
|
expect(result[0]).toMatchObject({
|
||||||
|
start: '2023-12-11T19:05:00.000Z',
|
||||||
|
stop: '2023-12-11T20:55:00.000Z',
|
||||||
|
title: 'The Last Witch Hunter',
|
||||||
|
description:
|
||||||
|
'หนุ่มนักล่าแม่มดถูกสาปให้เป็นอมตะจนกระทั่งราชินีแม่มดได้ฟื้นคืนชีพขึ้นมาจึงมีเพียงเขาคนเดียวเท่านั้นที่จะสามารถกอบกู้มวลมนุษยชาติได้',
|
||||||
|
icon: 'https://bms.dmpcdn.com/uploads/pic/381f853da5f4a310bf248357fed21a57.jpg'
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('can handle empty guide', () => {
|
it('can handle empty guide', () => {
|
||||||
|
|
136
sites/tv.trueid.net/tv.trueid.net_en.channels.xml
Normal file
136
sites/tv.trueid.net/tv.trueid.net_en.channels.xml
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<channels>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="altv">ALTV</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="arirang-tv">Arirang TV</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="arsenal">Arsenal</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="aston-villa">Aston Villa</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="ATTV">@TV</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="bein-sports-6">beIN SPORTS 6</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="bein-sports-hd3">beIN SPORTS 3</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="beinsports-4">beIN SPORTS 4</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="beinsports-5">beIN SPORTS 5</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="boomerang-hd">Boomerang</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="bournemouth">A.F.C. Bournemouth</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="brentford">Brentford</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="brighton-and-hove-albion">Brighton & Hove Albion</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="burnley">Burnley</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="cartoonclub">Cartoon Club</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="chelsea">Chelsea</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="crystal-palace">Crystal Palace</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dharmatv">Dhamma TV</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-1">DLTV 1</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-2">DLTV 2</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-3">DLTV 3</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-4">DLTV 4</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-5">DLTV 5</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-6">DLTV 6</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-7">DLTV 7</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-8">DLTV 8</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-9">DLTV 9</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-10">DLTV 10</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-11">DLTV 11</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-12">DLTV 12</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-13">DLTV 13</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-14">DLTV 14</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dltv-15">DLTV 15</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="dw-english">DW English</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="etv">ETV</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="Event1">Event 1</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="Event2">Event 2</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="Event3">Event 3</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="Event4">Event 4</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="Event5">Event 5</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="everton">Everton</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="fulham">Fulham</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="golf-channel">Golf Channel Thailand</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="golfchannel-thhdplus">Golf Channel Thailand HD+</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="liverpool">Liverpool</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="luton-town">Luton Town</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="manchester-city">Manchester City</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="manchester-united">Manchester United</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="Mangorn">Mangorn</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="MediaTV">Media TV</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="newcastle-united">Newcastle United</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="nottingham-forest">Nottingham Forest</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="rama-channel">Rama Channel</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="realitychannel-hd">Reality</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="sheffield-united">Sheffield United</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="spotv1-hd">SPOTV 1</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="super-entertain">Super Bunteung</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="t-sports-7-sd">T Sports 7</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="test">ช่องทดสอบการออกอากาศ</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="test2">ช่องทดสอบออกอากาศที่2</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="test3">ช่องทดสอบออกอากาศที่ 3</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="tnn16">TNN 16</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="tnn16-hd">TNN 16 HD</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="tottenham-hotspur">Tottenham Hotspur</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="tptv">TPTV</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="true-asian-more">True Asian More</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="true-ball-thai-1">True Ball Thai 1</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="true-ball-thai-2">True Ball Thai 2</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="true-ball-thai-3">True Ball Thai 3</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="true-explore-wild">True Explore Wild</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="true-music-channel-hd">True Music</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="true-select">True Select</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="true-select-hd">True Shopping</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="true-spark">True Spark Play</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="true-tennis-hd">True Tennis</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="trueid-live">TrueID Live</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="trueid-sports">TrueID Sports</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="trueid-sports02">TrueID Sports 2</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="trueid-sports03">TrueID Sports 3</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="trueplookpanya">True Plook Panya</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="truepremierfootballhd6">True Premier Football 6</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="truepremierfootballhd7">True Premier Football 7</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="truepremierfootballhd8">True Premier Football 8</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="truesport-hd">True Sports 1</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="truesport-hd-3">True Sports 3</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="truesport-hd-4">True Sports 4</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="tv-nfl-nba">NFL & NBA TV</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="ufc">UFC</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="voicetv-2023">VOICE TV</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="west-ham-united">West Ham United</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="white-channel-hd">White Channel</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="wolves">Wolves</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="zee-anmol-sd">Zee Anmol</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="" site_id="zing">Zing</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="AmarinTV.th" site_id="amarintv-hd">Amarin TV</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="beINSports1.th" site_id="bein-sports-hd1">beIN SPORTS 1</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="beINSports2.th" site_id="bein-sports-hd2">beIN SPORTS 2</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="Channel3.th" site_id="ch3-hd">Channel 3</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="Channel7.th" site_id="ch7-hd">Channel 7HD</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="Channel8.th" site_id="ch8">Channel 8</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="CrimePlusInvestigationAsia.sg" site_id="crime-investigation">Crime + Investigation</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="GMM25.th" site_id="gmm25">GMM 25</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="JKN18.th" site_id="jkn18">JKN 18</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="MCOTHD.th" site_id="9mcot-hd">9 MCOT</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="MONO29.th" site_id="mono29">MONO 29</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="NationTV.th" site_id="nationtv">Nation TV</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="NBT2HD.th" site_id="nbt">NBT</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="One31.th" site_id="one-hd">One31</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="PPTV.th" site_id="pptv-hd">PPTV</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="SPOTV2.kr" site_id="spotv2-hd">SPOTV 2</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="ThaiPBS.th" site_id="thaipbs">Thai PBS</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="ThairathTV.th" site_id="thairathtv-hd">Thairath TV</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TNN2.th" site_id="tnn-2">TNN 2</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="True4U.th" site_id="true4u">True4U</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TrueExploreLife.th" site_id="true-explore-life">True Explore Life</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TrueExploreSci.th" site_id="true-explore-3">True Explore Sci</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TrueFilm1.th" site_id="true-film-hd">True Film 1</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TrueFilm2.th" site_id="true-film-hd-2">True Film 2</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TrueFilmAsia.th" site_id="film-asia-hd">True Film Asia</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TrueMovieHits.th" site_id="true-movie-hits">True Movie Hits</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TruePremierFootball1.th" site_id="truepremierfootballhd1">True Premier Football 1</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TruePremierFootball2.th" site_id="truepremierfootballhd2">True Premier Football 2</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TruePremierFootball3.th" site_id="truepremierfootballhd3">True Premier Football 3</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TruePremierFootball4.th" site_id="truepremierfootballhd4">True Premier Football 4</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TruePremierFootball5.th" site_id="truepremierfootballhd5">True Premier Football 5</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TrueSeries.th" site_id="true-series">True Series</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TrueSports2.th" site_id="truesport-hd-2">True Sports 2</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TrueSports5.th" site_id="truesport-5">True Sports 5</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TrueSports7.th" site_id="truesport-7">True Sports 7</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TrueThaiFilm.th" site_id="thai-film">True Thai Film</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TrueXZyte.th" site_id="true-x-zyte-hd">True X-Zyte</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="TV5HD.th" site_id="ch5">TV5 HD</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="en" xmltv_id="WorkpointTV.th" site_id="workpointtv">WorkPoint TV</channel>
|
||||||
|
</channels>
|
|
@ -1,23 +1,23 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<channels>
|
<channels>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="altv">ALTV</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="altv">เอแอลทีวี</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="arirang-tv">Arirang TV</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="arirang-tv">Arirang TV</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="arsenal">Arsenal</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="arsenal">อาร์เซน่อล</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="aston-villa">Aston Villa</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="aston-villa">แอสตันวิลล่า</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="ATTV">@TV</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="ATTV">แอททีวี</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="bein-sports-6">beIN SPORTS 6</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="bein-sports-6">บีอินสปอตส์ 6</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="bein-sports-hd3">beIN SPORTS 3</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="bein-sports-hd3">บีอินสปอตส์ 3</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="beinsports-4">beIN SPORTS 4</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="beinsports-4">บีอินสปอตส์ 4</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="beinsports-5">beIN SPORTS 5</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="beinsports-5">บีอินสปอตส์ 5</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="boomerang-hd">Boomerang</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="boomerang-hd">บูมเมอแรง</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="bournemouth">A.F.C. Bournemouth</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="bournemouth">บอร์นมัธ</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="brentford">Brentford</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="brentford">เบรนท์ฟอร์ด</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="brighton-and-hove-albion">Brighton & Hove Albion</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="brighton-and-hove-albion">ไบร์ทตัน</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="burnley">Burnley</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="burnley">เบิร์นลีย์</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="cartoonclub">Cartoon Club</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="cartoonclub">การ์ตูน คลับ</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="chelsea">Chelsea</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="chelsea">เชลซี</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="crystal-palace">Crystal Palace</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="crystal-palace">คริสตัลพาเลซ</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dharmatv">Dhamma TV</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dharmatv">ธรรมะทีวี</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dltv-1">DLTV 1</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dltv-1">DLTV 1</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dltv-2">DLTV 2</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dltv-2">DLTV 2</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dltv-3">DLTV 3</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dltv-3">DLTV 3</channel>
|
||||||
|
@ -33,37 +33,38 @@
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dltv-13">DLTV 13</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dltv-13">DLTV 13</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dltv-14">DLTV 14</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dltv-14">DLTV 14</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dltv-15">DLTV 15</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dltv-15">DLTV 15</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dw-english">DW English</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="dw-english">ดี ดับเบิ้ลยู อิงลิช</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="etv">ETV</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="etv">ETV</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="Event1">Event 1</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="Event1">Event 1</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="Event2">Event 2</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="Event2">Event 2</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="Event3">Event 3</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="Event3">Event 3</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="Event4">Event 4</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="Event4">Event 4</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="Event5">Event 5</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="Event5">Event 5</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="everton">Everton</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="everton">เอเวอร์ตัน</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="fulham">Fulham</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="fulham">ฟูแล่ม</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="golf-channel">Golf Channel Thailand</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="golf-channel">Golf Channel Thailand HD</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="golfchannel-thhdplus">Golf Channel Thailand HD+</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="golfchannel-thhdplus">Golf Channel Thailand HD Plus</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="liverpool">Liverpool</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="liverpool">ลิเวอร์พูล</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="luton-town">Luton Town</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="luton-town">ลูตัน ทาวน์</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="manchester-city">Manchester City</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="manchester-city">แมนซิตี้</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="manchester-united">Manchester United</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="manchester-united">แมนยู</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="Mangorn">Mangorn</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="Mangorn">มังกร</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="MediaTV">Media TV</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="MediaTV">มีเดีย ทีวี</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="newcastle-united">Newcastle United</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="newcastle-united">นิวคาสเซิล</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="nottingham-forest">Nottingham Forest</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="nottingham-forest">ฟอร์เรสต์</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="rama-channel">Rama Channel</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="rama-channel">Rama Channel</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="realitychannel-hd">Reality</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="realitychannel-hd">เรียลลิตี้</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="sheffield-united">Sheffield United</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="sheffield-united">เชฟฟิลด์ ยูไนเต็ด</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="spotv1-hd">SPOTV 1</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="spotv1-hd">SPOTV 1</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="super-entertain">Super Bunteung</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="super-entertain">ซุปเปอร์ บันเทิง</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="t-sports-7-sd">T Sports 7</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="t-sports-7-sd">สถานีโทรทัศน์เพื่อการท่องเที่ยวและกีฬา</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="test">ช่องทดสอบการออกอากาศ</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="test">ทดสอบการออกอากาศ</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="test2">ช่องทดสอบออกอากาศที่2</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="test2">ช่องทดสอบออกอากาศที่2</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="tnn16">TNN 16</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="test3">ช่องทดสอบออกอากาศที่ 3</channel>
|
||||||
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="tnn16">ทีเอ็นเอ็น 16</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="tnn16-hd">TNN 16 HD</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="tnn16-hd">TNN 16 HD</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="tottenham-hotspur">Tottenham Hotspur</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="tottenham-hotspur">สเปอร์</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="tptv">TPTV</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="tptv">ทีพีทีวี</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="true-asian-more">True Asian More</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="true-asian-more">True Asian More</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="true-ball-thai-1">True Ball Thai 1</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="true-ball-thai-1">True Ball Thai 1</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="true-ball-thai-2">True Ball Thai 2</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="true-ball-thai-2">True Ball Thai 2</channel>
|
||||||
|
@ -74,62 +75,62 @@
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="true-select-hd">True Shopping</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="true-select-hd">True Shopping</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="true-spark">True Spark Play</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="true-spark">True Spark Play</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="true-tennis-hd">True Tennis</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="true-tennis-hd">True Tennis</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="trueid-live">TrueID Live</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="trueid-live">ทรูไอดี ไลฟ์</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="trueid-sports">TrueID Sports</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="trueid-sports">ทรูไอดี สปอร์ต</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="trueid-sports02">TrueID Sports 2</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="trueid-sports02">ทรูไอดี สปอร์ต 2</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="trueid-sports03">TrueID Sports 3</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="trueid-sports03">ทรูไอดี สปอร์ต 3</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="trueplookpanya">True Plook Panya</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="trueplookpanya">ทรู ปลูกปัญญา</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="truepremierfootballhd6">True Premier Football 6</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="truepremierfootballhd6">ทรู พรีเมียร์ ฟุตบอล 6</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="truepremierfootballhd7">True Premier Football 7</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="truepremierfootballhd7">ทรู พรีเมียร์ ฟุตบอล 7</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="truepremierfootballhd8">True Premier Football 8</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="truepremierfootballhd8">ทรู พรีเมียร์ ฟุตบอล 8</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="truesport-hd">True Sports 1</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="truesport-hd">ทรูสปอร์ต 1</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="truesport-hd-3">True Sports 3</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="truesport-hd-3">ทรูสปอร์ต 3</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="truesport-hd-4">True Sports 4</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="truesport-hd-4">ทรูสปอร์ต 4</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="tv-nfl-nba">NFL & NBA TV</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="tv-nfl-nba">เอ็นเอฟแอล แอนด์ เอ็นบีเอ ทีวี</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="ufc">UFC</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="ufc">ยูเอฟซี</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="voicetv-2023">VOICE TV</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="voicetv-2023">วอยซ์ ทีวี</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="west-ham-united">West Ham United</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="west-ham-united">เวสต์แฮม</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="white-channel-hd">White Channel</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="white-channel-hd">ไวท์แชนแนล</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="wolves">Wolves</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="wolves">วูลฟ์</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="zee-anmol-sd">Zee Anmol</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="zee-anmol-sd">Zee Anmol</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="zing">Zing</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="" site_id="zing">Zing</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="AmarinTV.th" site_id="amarintv-hd">Amarin TV</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="AmarinTV.th" site_id="amarintv-hd">อมรินทร์</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="beINSports1.th" site_id="bein-sports-hd1">beIN SPORTS 1</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="beINSports1.th" site_id="bein-sports-hd1">บีอินสปอตส์ 1</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="beINSports2.th" site_id="bein-sports-hd2">beIN SPORTS 2</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="beINSports2.th" site_id="bein-sports-hd2">บีอินสปอตส์ 2</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="Channel3.th" site_id="ch3-hd">Channel 3</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="Channel3.th" site_id="ch3-hd">ช่อง 3 HD</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="Channel7.th" site_id="ch7-hd">Channel 7HD</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="Channel7.th" site_id="ch7-hd">ช่อง 7HD</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="Channel8.th" site_id="ch8">Channel 8</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="Channel8.th" site_id="ch8">ช่อง 8</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="CrimePlusInvestigationAsia.sg" site_id="crime-investigation">Crime + Investigation</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="CrimePlusInvestigationAsia.sg" site_id="crime-investigation">ไคร์ม แอนด์ อินเวสทิเกชั่น</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="GMM25.th" site_id="gmm25">GMM 25</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="GMM25.th" site_id="gmm25">จีเอ็มเอ็ม 25</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="JKN18.th" site_id="jkn18">JKN 18</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="JKN18.th" site_id="jkn18">เจเคเอ็น 18</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="MCOTHD.th" site_id="9mcot-hd">9 MCOT</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="MCOTHD.th" site_id="9mcot-hd">9 เอ็มคอต HD</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="MONO29.th" site_id="mono29">MONO 29</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="MONO29.th" site_id="mono29">โมโน 29</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="NationTV.th" site_id="nationtv">Nation TV</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="NationTV.th" site_id="nationtv">เนชั่น ทีวี</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="NBT2HD.th" site_id="nbt">NBT</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="NBT2HD.th" site_id="nbt">เอ็นบีที</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="One31.th" site_id="one-hd">One31</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="One31.th" site_id="one-hd">วัน HD</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="PPTV.th" site_id="pptv-hd">PPTV</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="PPTV.th" site_id="pptv-hd">พีพีทีวี</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="SPOTV2.kr" site_id="spotv2-hd">SPOTV 2</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="SPOTV2.kr" site_id="spotv2-hd">SPOTV 2</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="ThaiPBS.th" site_id="thaipbs">Thai PBS</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="ThaiPBS.th" site_id="thaipbs">ไทยพีบีเอส</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="ThairathTV.th" site_id="thairathtv-hd">Thairath TV</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="ThairathTV.th" site_id="thairathtv-hd">ไทยรัฐ ทีวี HD</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TNN2.th" site_id="tnn-2">TNN 2</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TNN2.th" site_id="tnn-2">TNN 2</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="True4U.th" site_id="true4u">True4U</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="True4U.th" site_id="true4u">ทรูโฟร์ยู</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueExploreLife.th" site_id="true-explore-life">True Explore Life</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueExploreLife.th" site_id="true-explore-life">True Explore Life</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueExploreSci.th" site_id="true-explore-3">True Explore Sci</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueExploreSci.th" site_id="true-explore-3">True Explore Sci</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueFilm1.th" site_id="true-film-hd">True Film 1</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueFilm1.th" site_id="true-film-hd">True Film 1</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueFilm2.th" site_id="true-film-hd-2">True Film 2</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueFilm2.th" site_id="true-film-hd-2">True Film 2</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueFilmAsia.th" site_id="film-asia-hd">True Film Asia</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueFilmAsia.th" site_id="film-asia-hd">True Film Asia</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueMovieHits.th" site_id="true-movie-hits">True Movie Hits</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueMovieHits.th" site_id="true-movie-hits">True Movie Hits</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TruePremierFootball1.th" site_id="truepremierfootballhd1">True Premier Football 1</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TruePremierFootball1.th" site_id="truepremierfootballhd1">ทรู พรีเมียร์ ฟุตบอล 1</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TruePremierFootball2.th" site_id="truepremierfootballhd2">True Premier Football 2</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TruePremierFootball2.th" site_id="truepremierfootballhd2">ทรู พรีเมียร์ ฟุตบอล 2</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TruePremierFootball3.th" site_id="truepremierfootballhd3">True Premier Football 3</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TruePremierFootball3.th" site_id="truepremierfootballhd3">ทรู พรีเมียร์ ฟุตบอล 3</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TruePremierFootball4.th" site_id="truepremierfootballhd4">True Premier Football 4</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TruePremierFootball4.th" site_id="truepremierfootballhd4">ทรู พรีเมียร์ ฟุตบอล 4</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TruePremierFootball5.th" site_id="truepremierfootballhd5">True Premier Football 5</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TruePremierFootball5.th" site_id="truepremierfootballhd5">ทรู พรีเมียร์ ฟุตบอล 5</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueSeries.th" site_id="true-series">True Series</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueSeries.th" site_id="true-series">True Series</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueSports2.th" site_id="truesport-hd-2">True Sports 2</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueSports2.th" site_id="truesport-hd-2">ทรูสปอร์ต 2</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueSports5.th" site_id="truesport-5">True Sports 5</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueSports5.th" site_id="truesport-5">ทรูสปอร์ต 5</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueSports7.th" site_id="truesport-7">True Sports 7</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueSports7.th" site_id="truesport-7">ทรูสปอร์ต 7</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueThaiFilm.th" site_id="thai-film">True Thai Film</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueThaiFilm.th" site_id="thai-film">True Thai Film</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueXZyte.th" site_id="true-x-zyte-hd">True X-Zyte</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TrueXZyte.th" site_id="true-x-zyte-hd">True X-Zyte</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="TV5HD.th" site_id="ch5">TV5 HD</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="TV5HD.th" site_id="ch5">ช่อง 5</channel>
|
||||||
<channel site="tv.trueid.net" lang="th" xmltv_id="WorkpointTV.th" site_id="workpointtv">WorkPoint TV</channel>
|
<channel site="tv.trueid.net" lang="th" xmltv_id="WorkpointTV.th" site_id="workpointtv">เวิร์คพอยท์ ทีวี</channel>
|
||||||
</channels>
|
</channels>
|
Loading…
Add table
Add a link
Reference in a new issue