mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-10 09:00:07 -04:00
Merge pull request #42 from iptv-org/add-mncvision-id
Add guide from mncvision.id
This commit is contained in:
commit
e8796dbb23
6 changed files with 226 additions and 11 deletions
2
.github/workflows/auto-update.yml
vendored
2
.github/workflows/auto-update.yml
vendored
|
@ -34,7 +34,7 @@ jobs:
|
||||||
tvtv.ca,
|
tvtv.ca,
|
||||||
tvtv.us,
|
tvtv.us,
|
||||||
tv.lv,
|
tv.lv,
|
||||||
vidio.com,
|
mncvision.id,
|
||||||
tvguide.com,
|
tvguide.com,
|
||||||
tvprofil.com
|
tvprofil.com
|
||||||
]
|
]
|
||||||
|
|
|
@ -35,8 +35,8 @@ To load a program guide, all you need to do is copy the link to one of the guide
|
||||||
<tr><td align="left" nowrap>🇬🇷 Greece</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/cosmote.gr.guide.xml</code></td></tr>
|
<tr><td align="left" nowrap>🇬🇷 Greece</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/cosmote.gr.guide.xml</code></td></tr>
|
||||||
<tr><td align="left" nowrap>🇬🇹 Guatemala</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/mi.tv.guide.xml</code></td></tr>
|
<tr><td align="left" nowrap>🇬🇹 Guatemala</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/mi.tv.guide.xml</code></td></tr>
|
||||||
<tr><td align="left" nowrap>🇭🇳 Honduras</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/mi.tv.guide.xml</code></td></tr>
|
<tr><td align="left" nowrap>🇭🇳 Honduras</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/mi.tv.guide.xml</code></td></tr>
|
||||||
|
<tr><td align="left" nowrap>🇮🇩 Indonesia</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/mncvision.id.guide.xml</code></td></tr>
|
||||||
<tr><td align="left" nowrap>🇭🇺 Hungary</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml</code></td></tr>
|
<tr><td align="left" nowrap>🇭🇺 Hungary</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml</code></td></tr>
|
||||||
<tr><td align="left" nowrap>🇮🇩 Indonesia</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/vidio.com.guide.xml</code></td></tr>
|
|
||||||
<tr><td align="left" nowrap>🇮🇹 Italy</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/guidatv.sky.it.guide.xml</code></td></tr>
|
<tr><td align="left" nowrap>🇮🇹 Italy</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/guidatv.sky.it.guide.xml</code></td></tr>
|
||||||
<tr><td align="left" nowrap>🇮🇪 Ireland</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/ontvtonight.com.guide.xml</code></td></tr>
|
<tr><td align="left" nowrap>🇮🇪 Ireland</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/ontvtonight.com.guide.xml</code></td></tr>
|
||||||
<tr><td align="left" nowrap>🇰🇿 Kazakhstan</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tv.yandex.ru.guide.xml</code></td></tr>
|
<tr><td align="left" nowrap>🇰🇿 Kazakhstan</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tv.yandex.ru.guide.xml</code></td></tr>
|
||||||
|
|
42
package-lock.json
generated
42
package-lock.json
generated
|
@ -6,6 +6,7 @@
|
||||||
"": {
|
"": {
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"form-data": "^4.0.0",
|
||||||
"cheerio": "^1.0.0-rc.10",
|
"cheerio": "^1.0.0-rc.10",
|
||||||
"dayjs": "^1.10.4",
|
"dayjs": "^1.10.4",
|
||||||
"epg-grabber": "^0.6.6",
|
"epg-grabber": "^0.6.6",
|
||||||
|
@ -374,6 +375,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/domhandler": {
|
"node_modules/domhandler": {
|
||||||
|
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz",
|
||||||
"integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==",
|
"integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==",
|
||||||
|
@ -537,16 +539,16 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/form-data": {
|
"node_modules/form-data": {
|
||||||
"version": "2.3.3",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"asynckit": "^0.4.0",
|
"asynckit": "^0.4.0",
|
||||||
"combined-stream": "^1.0.6",
|
"combined-stream": "^1.0.8",
|
||||||
"mime-types": "^2.1.12"
|
"mime-types": "^2.1.12"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.12"
|
"node": ">= 6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/fs.realpath": {
|
"node_modules/fs.realpath": {
|
||||||
|
@ -1028,6 +1030,18 @@
|
||||||
"node": ">=0.8"
|
"node": ">=0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/request/node_modules/form-data": {
|
||||||
|
"version": "2.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||||
|
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"asynckit": "^0.4.0",
|
||||||
|
"combined-stream": "^1.0.6",
|
||||||
|
"mime-types": "^2.1.12"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.12"
|
||||||
|
}
|
||||||
"node_modules/request/node_modules/tough-cookie": {
|
"node_modules/request/node_modules/tough-cookie": {
|
||||||
"version": "2.5.0",
|
"version": "2.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
|
||||||
|
@ -1698,12 +1712,12 @@
|
||||||
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
|
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
|
||||||
},
|
},
|
||||||
"form-data": {
|
"form-data": {
|
||||||
"version": "2.3.3",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"asynckit": "^0.4.0",
|
"asynckit": "^0.4.0",
|
||||||
"combined-stream": "^1.0.6",
|
"combined-stream": "^1.0.8",
|
||||||
"mime-types": "^2.1.12"
|
"mime-types": "^2.1.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -2067,6 +2081,16 @@
|
||||||
"uuid": "^3.3.2"
|
"uuid": "^3.3.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"form-data": {
|
||||||
|
"version": "2.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||||
|
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||||
|
"requires": {
|
||||||
|
"asynckit": "^0.4.0",
|
||||||
|
"combined-stream": "^1.0.6",
|
||||||
|
"mime-types": "^2.1.12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"tough-cookie": {
|
"tough-cookie": {
|
||||||
"version": "2.5.0",
|
"version": "2.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
"dayjs": "^1.10.4",
|
"dayjs": "^1.10.4",
|
||||||
"epg-grabber": "^0.6.6",
|
"epg-grabber": "^0.6.6",
|
||||||
"epg-parser": "^0.1.3",
|
"epg-parser": "^0.1.3",
|
||||||
|
"form-data": "^4.0.0",
|
||||||
"glob": "^7.1.6",
|
"glob": "^7.1.6",
|
||||||
"html-to-text": "^7.0.0",
|
"html-to-text": "^7.0.0",
|
||||||
"iconv-lite": "^0.4.24",
|
"iconv-lite": "^0.4.24",
|
||||||
|
|
109
sites/mncvision.id.channels.xml
Executable file
109
sites/mncvision.id.channels.xml
Executable file
|
@ -0,0 +1,109 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<site site="mncvision.id">
|
||||||
|
<channels>
|
||||||
|
<channel site_id="350" xmltv_id="ABCAustraliaAsia.au">ABC Australia Asia</channel>
|
||||||
|
<channel site_id="331" xmltv_id="AlJazeeraEnglish.qa">Al Jazeera English</channel>
|
||||||
|
<channel site_id="93" xmltv_id="AlQuranAlKareemTV.sa">Al Quran Al Kareem TV</channel>
|
||||||
|
<channel site_id="203" xmltv_id="AnimalPlanetSoutheastAsia.us">Animal Planet Southeast Asia</channel>
|
||||||
|
<channel site_id="157" xmltv_id="AnimaxAsia.jp">Animax Asia</channel>
|
||||||
|
<channel site_id="115" xmltv_id="ANTV.id">ANTV</channel>
|
||||||
|
<channel site_id="351" xmltv_id="ArirangWorld.kr">Arirang World</channel>
|
||||||
|
<channel site_id="240" xmltv_id="AsianFoodNetwork.sg">Asian Food Network</channel>
|
||||||
|
<channel site_id="154" xmltv_id="AXNEastAsia.us">AXN East Asia</channel>
|
||||||
|
<channel site_id="40" xmltv_id="BabyTVAsia.uk">BabyTV Asia</channel>
|
||||||
|
<channel site_id="200" xmltv_id="BBCEarthAsia.uk">BBC Earth Asia</channel>
|
||||||
|
<channel site_id="332" xmltv_id="BBCWorldNewsAsiaPacific.uk">BBC World News Asia Pacific</channel>
|
||||||
|
<channel site_id="305" xmltv_id="beINSports1Indonesia.qa">beIN Sports 1 Indonesia</channel>
|
||||||
|
<channel site_id="306" xmltv_id="beINSports2Indonesia.qa">beIN Sports 2 Indonesia</channel>
|
||||||
|
<channel site_id="103" xmltv_id="BeritaSatuNewsChannel.id">Berita Satu News Channel</channel>
|
||||||
|
<channel site_id="112" xmltv_id="Besmart.id">Besmart</channel>
|
||||||
|
<channel site_id="338" xmltv_id="BloombergTVAsia.us">Bloomberg TV Asia</channel>
|
||||||
|
<channel site_id="39" xmltv_id="BoomerangSouthEastAsia.us">Boomerang South East Asia</channel>
|
||||||
|
<channel site_id="47" xmltv_id="CartoonNetworkAsia.us">Cartoon Network Asia</channel>
|
||||||
|
<channel site_id="41" xmltv_id="CBeebiesAsia.uk">CBeebies Asia</channel>
|
||||||
|
<channel site_id="22" xmltv_id="CelestialClassicMovies.hk">Celestial Classic Movies</channel>
|
||||||
|
<channel site_id="20" xmltv_id="CelestialMoviesIndonesia.hk">Celestial Movies Indonesia</channel>
|
||||||
|
<channel site_id="353" xmltv_id="CGTN.cn">CGTN</channel>
|
||||||
|
<channel site_id="205" xmltv_id="CGTNDocumentary.cn">CGTN Documentary</channel>
|
||||||
|
<channel site_id="272" xmltv_id="ChannelVInternational.hk">Channel V International</channel>
|
||||||
|
<channel site_id="8" xmltv_id="CinemaxAsia.us">Cinemax Asia</channel>
|
||||||
|
<channel site_id="330" xmltv_id="CNA.sg">CNA</channel>
|
||||||
|
<channel site_id="337" xmltv_id="CNBCAsiaPacific.us">CNBC Asia-Pacific</channel>
|
||||||
|
<channel site_id="333" xmltv_id="CNNInternationalAsiaPacific.us">CNN International Asia Pacific</channel>
|
||||||
|
<channel site_id="207" xmltv_id="CrimePlusInvestigationAsia.us">Crime + Investigation Asia</channel>
|
||||||
|
<channel site_id="201" xmltv_id="DiscoveryChannelSoutheastAsia.us">Discovery Channel Southeast Asia</channel>
|
||||||
|
<channel site_id="45" xmltv_id="DisneyChannelIndonesia.us">Disney Channel Indonesia</channel>
|
||||||
|
<channel site_id="43" xmltv_id="DisneyJuniorAsia.us">Disney Junior Asia</channel>
|
||||||
|
<channel site_id="357" xmltv_id="DWEnglish.de">DW English</channel>
|
||||||
|
<channel site_id="86" xmltv_id="Ent.id">Ent</channel>
|
||||||
|
<channel site_id="304" xmltv_id="FightSports.us">Fight Sports</channel>
|
||||||
|
<channel site_id="150" xmltv_id="FMN.id">FMN</channel>
|
||||||
|
<channel site_id="16" xmltv_id="FoxActionMovies.us">Fox Action Movies</channel>
|
||||||
|
<channel site_id="152" xmltv_id="FoxCrimeAsia.us">Fox Crime Asia</channel>
|
||||||
|
<channel site_id="15" xmltv_id="FoxFamilyMovies.us">Fox Family Movies</channel>
|
||||||
|
<channel site_id="153" xmltv_id="FoxIndonesia.us">Fox Indonesia</channel>
|
||||||
|
<channel site_id="156" xmltv_id="FoxLifeIndonesia.us">Fox Life Indonesia</channel>
|
||||||
|
<channel site_id="14" xmltv_id="FoxMoviesIndonesia.us">Fox Movies Indonesia</channel>
|
||||||
|
<channel site_id="335" xmltv_id="FoxNewsChannel.us">Fox News Channel</channel>
|
||||||
|
<channel site_id="302" xmltv_id="FoxSports2Asia.us">Fox Sports 2 Asia</channel>
|
||||||
|
<channel site_id="303" xmltv_id="FoxSports3Asia.us">Fox Sports 3 Asia</channel>
|
||||||
|
<channel site_id="301" xmltv_id="FoxSportsAsia.us">Fox Sports Asia</channel>
|
||||||
|
<channel site_id="352" xmltv_id="France24English.fr">France 24 English</channel>
|
||||||
|
<channel site_id="81" xmltv_id="GTV.id">GTV</channel>
|
||||||
|
<channel site_id="7" xmltv_id="HBOAsia.us">HBO Asia</channel>
|
||||||
|
<channel site_id="9" xmltv_id="HBOFamilyAsia.us">HBO Family Asia</channel>
|
||||||
|
<channel site_id="10" xmltv_id="HBOHits.us">HBO Hits</channel>
|
||||||
|
<channel site_id="6" xmltv_id="HBOSignatureAsia.us">HBO Signature Asia</channel>
|
||||||
|
<channel site_id="245" xmltv_id="HGTVAsia.us">HGTV Asia</channel>
|
||||||
|
<channel site_id="206" xmltv_id="HistoryAsia.us">History Asia</channel>
|
||||||
|
<channel site_id="160" xmltv_id="Hits.sg">Hits</channel>
|
||||||
|
<channel site_id="11" xmltv_id="HitsMovies.sg">Hits Movies</channel>
|
||||||
|
<channel site_id="100" xmltv_id="IDXChannel.id">IDX Channel</channel>
|
||||||
|
<channel site_id="78" xmltv_id="Indosiar.id">Indosiar</channel>
|
||||||
|
<channel site_id="83" xmltv_id="iNews.id">iNews</channel>
|
||||||
|
<channel site_id="113" xmltv_id="JakTV.id">Jak TV</channel>
|
||||||
|
<channel site_id="46" xmltv_id="KidsTV.id">Kids TV</channel>
|
||||||
|
<channel site_id="161" xmltv_id="Kix.hk">Kix</channel>
|
||||||
|
<channel site_id="106" xmltv_id="KompasTV.id">Kompas TV</channel>
|
||||||
|
<channel site_id="91" xmltv_id="Life.id">Life</channel>
|
||||||
|
<channel site_id="90" xmltv_id="LifestyleFashion.id">Lifestyle & Fashion</channel>
|
||||||
|
<channel site_id="167" xmltv_id="LifetimeAsia.us">Lifetime Asia</channel>
|
||||||
|
<channel site_id="107" xmltv_id="MetroTV.id">Metro TV</channel>
|
||||||
|
<channel site_id="38" xmltv_id="MiaoMi.hk">Miao Mi</channel>
|
||||||
|
<channel site_id="84" xmltv_id="MNCNews.id">MNC News</channel>
|
||||||
|
<channel site_id="102" xmltv_id="MNCSports.id">MNC Sports</channel>
|
||||||
|
<channel site_id="82" xmltv_id="MNCTV.id">MNCTV</channel>
|
||||||
|
<channel site_id="88" xmltv_id="MShopSignature.id">MShop Signature</channel>
|
||||||
|
<channel site_id="79" xmltv_id="MShopSuperSale.id">MShop Super Sale!</channel>
|
||||||
|
<channel site_id="111" xmltv_id="MusicTV.id">Music TV</channel>
|
||||||
|
<channel site_id="92" xmltv_id="MuslimTV.id">Muslim TV</channel>
|
||||||
|
<channel site_id="247" xmltv_id="NatGeoPeopleAsia.us">Nat Geo People Asia</channel>
|
||||||
|
<channel site_id="202" xmltv_id="NationalGeographicAsia.us">National Geographic Asia</channel>
|
||||||
|
<channel site_id="204" xmltv_id="NationalGeographicWildAsia.us">National Geographic Wild Asia</channel>
|
||||||
|
<channel site_id="116" xmltv_id="NET.id">NET.</channel>
|
||||||
|
<channel site_id="355" xmltv_id="NHKWorldJapan.jp">NHK World Japan</channel>
|
||||||
|
<channel site_id="354" xmltv_id="NHKWorldPremium.jp">NHK World Premium</channel>
|
||||||
|
<channel site_id="37" xmltv_id="NickJrAsia.us">Nick Jr Asia</channel>
|
||||||
|
<channel site_id="49" xmltv_id="NickelodeonSouthEastAsia.us">Nickelodeon South East Asia</channel>
|
||||||
|
<channel site_id="95" xmltv_id="OKTV.id">OK TV</channel>
|
||||||
|
<channel site_id="164" xmltv_id="One.in">One</channel>
|
||||||
|
<channel site_id="80" xmltv_id="RCTI.id">RCTI</channel>
|
||||||
|
<channel site_id="89" xmltv_id="SCTV.id">SCTV</channel>
|
||||||
|
<channel site_id="336" xmltv_id="SEAToday.id">SEA Today</channel>
|
||||||
|
<channel site_id="101" xmltv_id="SoccerChannel.id">Soccer Channel</channel>
|
||||||
|
<channel site_id="24" xmltv_id="StarChineseMoviesLegend.hk">Star Chinese Movies Legend</channel>
|
||||||
|
<channel site_id="18" xmltv_id="StarChineseMoviesSouthEastAsia.hk">Star Chinese Movies South East Asia</channel>
|
||||||
|
<channel site_id="105" xmltv_id="TawafTV.id">Tawaf TV</channel>
|
||||||
|
<channel site_id="19" xmltv_id="Thrill.hk">Thrill</channel>
|
||||||
|
<channel site_id="248" xmltv_id="TLCSoutheastAsia.us">TLC Southeast Asia</channel>
|
||||||
|
<channel site_id="110" xmltv_id="Trans7.id">Trans 7</channel>
|
||||||
|
<channel site_id="87" xmltv_id="TransTV.id">Trans TV</channel>
|
||||||
|
<channel site_id="25" xmltv_id="tvNMoviesIndonesia.kr">tvN Movies Indonesia</channel>
|
||||||
|
<channel site_id="158" xmltv_id="tvNPremiumIndonesia.kr">tvN Premium Indonesia</channel>
|
||||||
|
<channel site_id="97" xmltv_id="tvOne.id">tvOne</channel>
|
||||||
|
<channel site_id="118" xmltv_id="TVRINasional.id">TVRI Nasional</channel>
|
||||||
|
<channel site_id="94" xmltv_id="VisionPrime.id">Vision Prime</channel>
|
||||||
|
<channel site_id="163" xmltv_id="WarnerTVSoutheastAsia.us">Warner TV Southeast Asia</channel>
|
||||||
|
<channel site_id="23" xmltv_id="ZeeBioskop.in">Zee Bioskop</channel>
|
||||||
|
</channels>
|
||||||
|
</site>
|
81
sites/mncvision.id.config.js
Normal file
81
sites/mncvision.id.config.js
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
const FormData = require('form-data')
|
||||||
|
const jsdom = require('jsdom')
|
||||||
|
const { JSDOM } = jsdom
|
||||||
|
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 = {
|
||||||
|
lang: 'en',
|
||||||
|
site: 'mncvision.id',
|
||||||
|
channels: 'mncvision.id.channels.xml',
|
||||||
|
output: '.gh-pages/guides/mncvision.id.guide.xml',
|
||||||
|
request: {
|
||||||
|
method: 'POST',
|
||||||
|
data: function ({ channel, date }) {
|
||||||
|
const formData = new FormData()
|
||||||
|
formData.setBoundary('X-EPG-BOUNDARY')
|
||||||
|
formData.append('search_model', 'channel')
|
||||||
|
formData.append('af0rmelement', 'aformelement')
|
||||||
|
formData.append('fdate', date.format('YYYY-MM-DD'))
|
||||||
|
formData.append('fchannel', channel.site_id)
|
||||||
|
formData.append('submit', 'Search')
|
||||||
|
|
||||||
|
return formData
|
||||||
|
},
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'multipart/form-data; boundary=X-EPG-BOUNDARY'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
logo({ channel }) {
|
||||||
|
return `https://www.mncvision.id/userfiles/image/channel/channel_${channel.site_id}.png`
|
||||||
|
},
|
||||||
|
url({ channel }) {
|
||||||
|
return `https://www.mncvision.id/schedule/table`
|
||||||
|
},
|
||||||
|
parser({ content, date }) {
|
||||||
|
const programs = []
|
||||||
|
const items = parseItems(content)
|
||||||
|
items.forEach(item => {
|
||||||
|
const title = parseTitle(item)
|
||||||
|
const start = parseStart(item, date)
|
||||||
|
const duration = parseDuration(item)
|
||||||
|
const stop = start.add(duration, 'm')
|
||||||
|
|
||||||
|
programs.push({ title, start, stop })
|
||||||
|
})
|
||||||
|
|
||||||
|
return programs
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseDuration(item) {
|
||||||
|
let duration = (item.querySelector('td:nth-child(3)') || { textContent: '' }).textContent
|
||||||
|
const match = duration.match(/(\d{2}):(\d{2})/)
|
||||||
|
const hours = parseInt(match[1])
|
||||||
|
const minutes = parseInt(match[2])
|
||||||
|
|
||||||
|
return hours * 60 + minutes
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseStart(item, date) {
|
||||||
|
let time = (item.querySelector('td:nth-child(1)') || { textContent: '' }).textContent
|
||||||
|
time = `${date.format('DD/MM/YYYY')} ${time}`
|
||||||
|
|
||||||
|
return dayjs.tz(time, 'DD/MM/YYYY HH:mm', 'Asia/Jakarta')
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseTitle(item) {
|
||||||
|
return (item.querySelector('td:nth-child(2) > a') || { textContent: '' }).textContent
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseItems(content) {
|
||||||
|
const dom = new JSDOM(content)
|
||||||
|
|
||||||
|
return dom.window.document.querySelectorAll('tr[valign="top"]')
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue