Merge branch 'master' into LaneSh4d0w-patch-2
This commit is contained in:
@@ -6,12 +6,9 @@ http://amtv1.livestreamingcdn.com/am2abr/index.m3u8
|
|||||||
http://ott-cdn.ucom.am/s10/index.m3u8
|
http://ott-cdn.ucom.am/s10/index.m3u8
|
||||||
#EXTINF:-1 tvg-id="5TV.am" tvg-name="5TV" tvg-country="AM" tvg-language="Armenian" tvg-logo="https://i.imgur.com/yigw9dr.png" group-title="",5TV (480p)
|
#EXTINF:-1 tvg-id="5TV.am" tvg-name="5TV" tvg-country="AM" tvg-language="Armenian" tvg-logo="https://i.imgur.com/yigw9dr.png" group-title="",5TV (480p)
|
||||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
|
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
|
||||||
http://ott-cdn.ucom.am/s6/04.m3u8
|
http://ott-cdn.ucom.am/s6/index.m3u8
|
||||||
#EXTINF:-1 tvg-id="Amga.am" tvg-name="Amga" tvg-country="AM" tvg-language="Armenian" tvg-logo="https://i.imgur.com/3vQVwUV.jpg" group-title="",Amga (720p) [Not 24/7]
|
#EXTINF:-1 tvg-id="Amga.am" tvg-name="Amga" tvg-country="AM" tvg-language="Armenian" tvg-logo="https://i.imgur.com/3vQVwUV.jpg" group-title="",Amga (720p) [Not 24/7]
|
||||||
https://streamer1.connectto.com/AMGA_WEB_1202/playlist.m3u8
|
https://streamer1.connectto.com/AMGA_WEB_1202/playlist.m3u8
|
||||||
#EXTINF:-1 tvg-id="AraratTV.am" tvg-name="Ararat TV" tvg-country="AM" tvg-language="Armenian" tvg-logo="https://i.imgur.com/nCdGhjB.png" group-title="",Ararat TV (480p)
|
|
||||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
|
|
||||||
http://ott-cdn.ucom.am/s6/index.m3u8
|
|
||||||
#EXTINF:-1 tvg-id="Armenia2.am" tvg-name="Armenia 2" tvg-country="AM" tvg-language="Armenian" tvg-logo="https://i.imgur.com/XwbLfqd.png" group-title="",Armenia 2 (480p)
|
#EXTINF:-1 tvg-id="Armenia2.am" tvg-name="Armenia 2" tvg-country="AM" tvg-language="Armenian" tvg-logo="https://i.imgur.com/XwbLfqd.png" group-title="",Armenia 2 (480p)
|
||||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
|
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
|
||||||
http://ott-cdn.ucom.am/s22/index.m3u8
|
http://ott-cdn.ucom.am/s22/index.m3u8
|
||||||
|
@@ -275,8 +275,6 @@ http://lb.streaming.sk/fashiontv/stream/playlist.m3u8
|
|||||||
https://fash2043.cloudycdn.services/slive/ftv_ftv_pg13_gmt_ess_43126_default_1262_hls.smil/playlist.m3u8
|
https://fash2043.cloudycdn.services/slive/ftv_ftv_pg13_gmt_ess_43126_default_1262_hls.smil/playlist.m3u8
|
||||||
#EXTINF:-1 tvg-id="France2.fr" tvg-name="France 2" tvg-country="FR" tvg-language="French" tvg-logo="" group-title="",France 2 (720p)
|
#EXTINF:-1 tvg-id="France2.fr" tvg-name="France 2" tvg-country="FR" tvg-language="French" tvg-logo="" group-title="",France 2 (720p)
|
||||||
http://edge9.iptvnetwork.net/live/france2/playlist.m3u8
|
http://edge9.iptvnetwork.net/live/france2/playlist.m3u8
|
||||||
#EXTINF:-1 tvg-id="France24.fr" tvg-name="France 24" tvg-country="FR" tvg-language="" tvg-logo="" group-title="",France 24 (576p)
|
|
||||||
http://f24hls-i.akamaihd.net/hls/live/221193/F24_EN_LO_HLS/master_old_900.m3u8
|
|
||||||
#EXTINF:-1 tvg-id="France24Arabic.fr" tvg-name="France 24 Arabic" tvg-country="ARAB" tvg-language="Arabic" tvg-logo="https://i.imgur.com/61MSiq9.png" group-title="News",France 24 Arabic (1080p)
|
#EXTINF:-1 tvg-id="France24Arabic.fr" tvg-name="France 24 Arabic" tvg-country="ARAB" tvg-language="Arabic" tvg-logo="https://i.imgur.com/61MSiq9.png" group-title="News",France 24 Arabic (1080p)
|
||||||
https://static.france24.com/live/F24_AR_HI_HLS/live_tv.m3u8
|
https://static.france24.com/live/F24_AR_HI_HLS/live_tv.m3u8
|
||||||
#EXTINF:-1 tvg-id="France24Arabic.fr" tvg-name="France 24 Arabic" tvg-country="ARAB" tvg-language="Arabic" tvg-logo="https://i.imgur.com/61MSiq9.png" group-title="News",France 24 Arabic (576p)
|
#EXTINF:-1 tvg-id="France24Arabic.fr" tvg-name="France 24 Arabic" tvg-country="ARAB" tvg-language="Arabic" tvg-logo="https://i.imgur.com/61MSiq9.png" group-title="News",France 24 Arabic (576p)
|
||||||
|
@@ -42,12 +42,10 @@ https://www.rthk.hk/feeds/dtt/rthktv32_https.m3u8
|
|||||||
http://61.238.6.49:8000/bysid/1
|
http://61.238.6.49:8000/bysid/1
|
||||||
#EXTINF:-1 tvg-id="YaoCaiCaiJingTai.hk" tvg-name="耀才財經台" tvg-country="HK" tvg-language="Chinese;Yue Chinese" tvg-logo="https://i.imgur.com/xliVoIt.jpg?1" group-title="Shop",耀才財經台 (576p)
|
#EXTINF:-1 tvg-id="YaoCaiCaiJingTai.hk" tvg-name="耀才財經台" tvg-country="HK" tvg-language="Chinese;Yue Chinese" tvg-logo="https://i.imgur.com/xliVoIt.jpg?1" group-title="Shop",耀才財經台 (576p)
|
||||||
http://202.69.67.66:443/webcast/bshdlive-pc/playlist.m3u8
|
http://202.69.67.66:443/webcast/bshdlive-pc/playlist.m3u8
|
||||||
#EXTINF:-1 tvg-id="XiangGangKaiDianShiHKSTVHKS.hk" tvg-name="香港开电视 / HKSTV-HKS" tvg-country="HK" tvg-language="" tvg-logo="" group-title="",香港开电视 / HKSTV-HKS (720p)
|
#EXTINF:-1 tvg-id="XiangGangKaiDianShiHKSTVHKS.hk" tvg-name="香港开电视 / HKSTV-HKS" tvg-country="HK" tvg-language="Chinese;Yue Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/e/ed/HK_open_tv_logo.jpg" group-title="",香港开电视 / HKSTV-HKS (720p)
|
||||||
http://media.fantv.hk/m3u8/archive/channel2.m3u8
|
http://media.fantv.hk/m3u8/archive/channel2.m3u8
|
||||||
#EXTINF:-1 tvg-id="XiangGangWeiShi.hk" tvg-name="香港衛視" tvg-country="HK" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://i.imgur.com/wnQPn2d.jpg" group-title="",香港衛視 [Offline]
|
#EXTINF:-1 tvg-id="XiangGangWeiShi.hk" tvg-name="香港衛視" tvg-country="HK" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://i.imgur.com/wnQPn2d.jpg" group-title="",香港衛視 [Offline]
|
||||||
http://zhibo.hkstv.tv/livestream/mutfysrq/playlist.m3u8
|
http://zhibo.hkstv.tv/livestream/mutfysrq/playlist.m3u8
|
||||||
#EXTINF:-1 tvg-id="XiangGangKaiDianShi.hk" tvg-name="香港開電視" tvg-country="HK" tvg-language="Chinese;Yue Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/e/ed/HK_open_tv_logo.jpg" group-title="General",香港開電視 (720p)
|
|
||||||
http://media.fantv.hk/m3u8/archive/channel2_stream1.m3u8
|
|
||||||
#EXTINF:-1 tvg-id="FengHuangWeiShiZhongWenTai.hk" tvg-name="鳳凰衛視中文台" tvg-country="HK" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://pbs.twimg.com/profile_images/1246604721462239232/QCKNvVux_400x400.jpg" group-title="",鳳凰衛視中文台
|
#EXTINF:-1 tvg-id="FengHuangWeiShiZhongWenTai.hk" tvg-name="鳳凰衛視中文台" tvg-country="HK" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://pbs.twimg.com/profile_images/1246604721462239232/QCKNvVux_400x400.jpg" group-title="",鳳凰衛視中文台
|
||||||
http://221.179.217.70/PLTV/88888888/224/3221225942/1.m3u8
|
http://221.179.217.70/PLTV/88888888/224/3221225942/1.m3u8
|
||||||
#EXTINF:-1 tvg-id="FengHuangZiXun.hk" tvg-name="鳳凰資訊" tvg-country="HK" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/1/16/Phoenix_InfoNews.svg/1200px-Phoenix_InfoNews.svg.png" group-title="News",鳳凰衛視資訊台HD
|
#EXTINF:-1 tvg-id="FengHuangZiXun.hk" tvg-name="鳳凰資訊" tvg-country="HK" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/1/16/Phoenix_InfoNews.svg/1200px-Phoenix_InfoNews.svg.png" group-title="News",鳳凰衛視資訊台HD
|
||||||
|
@@ -5,7 +5,7 @@ https://meridelive01-lh.akamaihd.net/i/tvparma_1@356964/master.m3u8
|
|||||||
https://live3-mediaset-it.akamaized.net/Content/hls_h0_clr_vos/live/channel(lb)/index.m3u8
|
https://live3-mediaset-it.akamaized.net/Content/hls_h0_clr_vos/live/channel(lb)/index.m3u8
|
||||||
#EXTINF:-1 tvg-id="51RadioTV.it" tvg-name="51 Radio TV" tvg-country="IT" tvg-language="Italian" tvg-logo="http://i65.tinypic.com/wmf409.jpg" group-title="",51 Radio TV (480p)
|
#EXTINF:-1 tvg-id="51RadioTV.it" tvg-name="51 Radio TV" tvg-country="IT" tvg-language="Italian" tvg-logo="http://i65.tinypic.com/wmf409.jpg" group-title="",51 Radio TV (480p)
|
||||||
http://wms.shared.streamshow.it/canale51/canale51/playlist.m3u8
|
http://wms.shared.streamshow.it/canale51/canale51/playlist.m3u8
|
||||||
#EXTINF:-1 tvg-id="A2itv.it" tvg-name="A2itv" tvg-country="IT" tvg-language="English,French" tvg-logo="" group-title="",A2itv (1080p)
|
#EXTINF:-1 tvg-id="A2itv.it" tvg-name="A2itv" tvg-country="IT" tvg-language="English;French" tvg-logo="" group-title="",A2itv (1080p)
|
||||||
https://stream.sen-gt.com/A2itv/myStream/playlist.m3u8
|
https://stream.sen-gt.com/A2itv/myStream/playlist.m3u8
|
||||||
#EXTINF:-1 tvg-id="ABChannel.it" tvg-name="AB Channel" tvg-country="IT" tvg-language="" tvg-logo="https://i.imgur.com/y5564NI.png" group-title="",AB Channel (768p)
|
#EXTINF:-1 tvg-id="ABChannel.it" tvg-name="AB Channel" tvg-country="IT" tvg-language="" tvg-logo="https://i.imgur.com/y5564NI.png" group-title="",AB Channel (768p)
|
||||||
https://tsw.streamingwebtv24.it:1936/abchanneltv/abchanneltv/playlist.m3u8
|
https://tsw.streamingwebtv24.it:1936/abchanneltv/abchanneltv/playlist.m3u8
|
||||||
|
@@ -47,8 +47,6 @@ https://nhkwlive-ojp.akamaized.net/hls/live/2003459/nhkwlive-ojp-en/index_4M.m3u
|
|||||||
https://nhkworld.webcdn.stream.ne.jp/www11/nhkworld-tv/zh/725580/livecom_zh.m3u8
|
https://nhkworld.webcdn.stream.ne.jp/www11/nhkworld-tv/zh/725580/livecom_zh.m3u8
|
||||||
#EXTINF:-1 tvg-id="NipponTV.jp" tvg-name="Nippon TV" tvg-country="JP" tvg-language="Japanese" tvg-logo="" group-title="",Nippon TV (540p)
|
#EXTINF:-1 tvg-id="NipponTV.jp" tvg-name="Nippon TV" tvg-country="JP" tvg-language="Japanese" tvg-logo="" group-title="",Nippon TV (540p)
|
||||||
https://ntv1.mov3.co/hls/ntv.m3u8
|
https://ntv1.mov3.co/hls/ntv.m3u8
|
||||||
#EXTINF:-1 tvg-id="NipponTVNews24.jp" tvg-name="Nippon TV News 24" tvg-country="JP" tvg-language="Japanese" tvg-logo="" group-title="News",Nippon TV News 24 (480p)
|
|
||||||
https://n24-cdn-live.ntv.co.jp/ch01/high.m3u8
|
|
||||||
#EXTINF:-1 tvg-id="NTVNews24.jp" tvg-name="NTV News24" tvg-country="JP" tvg-language="Japanese" tvg-logo="https://i.imgur.com/Ya4yHpC.jpg" group-title="News",NTV News24 (480p)
|
#EXTINF:-1 tvg-id="NTVNews24.jp" tvg-name="NTV News24" tvg-country="JP" tvg-language="Japanese" tvg-logo="https://i.imgur.com/Ya4yHpC.jpg" group-title="News",NTV News24 (480p)
|
||||||
https://www.news24.jp/livestream/index.m3u8
|
https://www.news24.jp/livestream/index.m3u8
|
||||||
#EXTINF:-1 tvg-id="ShopChannel.jp" tvg-name="Shop Channel" tvg-country="JP" tvg-language="Japanese" tvg-logo="https://i.imgur.com/3K36JEA.jpg" group-title="Shop",Shop Channel (720p)
|
#EXTINF:-1 tvg-id="ShopChannel.jp" tvg-name="Shop Channel" tvg-country="JP" tvg-language="Japanese" tvg-logo="https://i.imgur.com/3K36JEA.jpg" group-title="Shop",Shop Channel (720p)
|
||||||
|
@@ -6,6 +6,10 @@
|
|||||||
"attribute-quotes": true,
|
"attribute-quotes": true,
|
||||||
"require-info": true,
|
"require-info": true,
|
||||||
"no-trailing-spaces": true,
|
"no-trailing-spaces": true,
|
||||||
"no-whitespace-before-title": true
|
"no-whitespace-before-title": true,
|
||||||
|
"no-multi-spaces": true,
|
||||||
|
"no-extra-comma": true,
|
||||||
|
"space-before-paren": true,
|
||||||
|
"no-dash": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
14
package-lock.json
generated
14
package-lock.json
generated
@@ -10,7 +10,7 @@
|
|||||||
"commander": "^7.0.0",
|
"commander": "^7.0.0",
|
||||||
"iptv-checker": "^0.20.2",
|
"iptv-checker": "^0.20.2",
|
||||||
"iptv-playlist-parser": "^0.5.4",
|
"iptv-playlist-parser": "^0.5.4",
|
||||||
"m3u-linter": "^0.1.3",
|
"m3u-linter": "^0.2.1",
|
||||||
"markdown-include": "^0.4.3",
|
"markdown-include": "^0.4.3",
|
||||||
"normalize-url": "^6.1.0",
|
"normalize-url": "^6.1.0",
|
||||||
"pre-push": "^0.1.1",
|
"pre-push": "^0.1.1",
|
||||||
@@ -2817,9 +2817,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/m3u-linter": {
|
"node_modules/m3u-linter": {
|
||||||
"version": "0.1.3",
|
"version": "0.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/m3u-linter/-/m3u-linter-0.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/m3u-linter/-/m3u-linter-0.2.1.tgz",
|
||||||
"integrity": "sha512-UcOCA12gkZGs8gBE3HpBnPwZyVswan4VWBb4kTbxHZ84hBRVa00WreZSUDCgaPVmo52HyxZAI1FLuvOIRIAfZQ==",
|
"integrity": "sha512-hSRnnJD/tom5bF0picznFMuUfbvUH7iPZfQ+3DhZ41Rk3N2LTMWzRlA1sCRWPT9dvyWuvYnhAIrxfv+fbsaIVQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chalk": "^4.1.1",
|
"chalk": "^4.1.1",
|
||||||
"commander": "^7.2.0",
|
"commander": "^7.2.0",
|
||||||
@@ -5946,9 +5946,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"m3u-linter": {
|
"m3u-linter": {
|
||||||
"version": "0.1.3",
|
"version": "0.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/m3u-linter/-/m3u-linter-0.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/m3u-linter/-/m3u-linter-0.2.1.tgz",
|
||||||
"integrity": "sha512-UcOCA12gkZGs8gBE3HpBnPwZyVswan4VWBb4kTbxHZ84hBRVa00WreZSUDCgaPVmo52HyxZAI1FLuvOIRIAfZQ==",
|
"integrity": "sha512-hSRnnJD/tom5bF0picznFMuUfbvUH7iPZfQ+3DhZ41Rk3N2LTMWzRlA1sCRWPT9dvyWuvYnhAIrxfv+fbsaIVQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"chalk": "^4.1.1",
|
"chalk": "^4.1.1",
|
||||||
"commander": "^7.2.0",
|
"commander": "^7.2.0",
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
"commander": "^7.0.0",
|
"commander": "^7.0.0",
|
||||||
"iptv-checker": "^0.20.2",
|
"iptv-checker": "^0.20.2",
|
||||||
"iptv-playlist-parser": "^0.5.4",
|
"iptv-playlist-parser": "^0.5.4",
|
||||||
"m3u-linter": "^0.1.3",
|
"m3u-linter": "^0.2.1",
|
||||||
"markdown-include": "^0.4.3",
|
"markdown-include": "^0.4.3",
|
||||||
"normalize-url": "^6.1.0",
|
"normalize-url": "^6.1.0",
|
||||||
"pre-push": "^0.1.1",
|
"pre-push": "^0.1.1",
|
||||||
|
@@ -14,6 +14,7 @@ program
|
|||||||
.option('-r, --resolution', 'Detect stream resolution')
|
.option('-r, --resolution', 'Detect stream resolution')
|
||||||
.option('-c, --country <country>', 'Comma-separated list of country codes', '')
|
.option('-c, --country <country>', 'Comma-separated list of country codes', '')
|
||||||
.option('-e, --exclude <exclude>', 'Comma-separated list of country codes to be excluded', '')
|
.option('-e, --exclude <exclude>', 'Comma-separated list of country codes to be excluded', '')
|
||||||
|
.option('--delay <delay>', 'Set delay for each request', 0)
|
||||||
.option('--timeout <timeout>', 'Set timeout for each request', 5000)
|
.option('--timeout <timeout>', 'Set timeout for each request', 5000)
|
||||||
.parse(process.argv)
|
.parse(process.argv)
|
||||||
|
|
||||||
@@ -61,7 +62,7 @@ async function updatePlaylist(playlist) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (const channel of playlist.channels) {
|
for (const channel of playlist.channels) {
|
||||||
addMissingData(channel)
|
addMissingData(channel, playlist)
|
||||||
updateGroupTitle(channel)
|
updateGroupTitle(channel)
|
||||||
normalizeUrl(channel)
|
normalizeUrl(channel)
|
||||||
|
|
||||||
@@ -90,6 +91,8 @@ async function updatePlaylist(playlist) {
|
|||||||
.catch(err => {
|
.catch(err => {
|
||||||
if (config.debug) log.print(` ERR: ${channel.url} (${err.message})\n`)
|
if (config.debug) log.print(` ERR: ${channel.url} (${err.message})\n`)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
await utils.sleep(config.delay)
|
||||||
}
|
}
|
||||||
if (!config.debug) bar.tick()
|
if (!config.debug) bar.tick()
|
||||||
}
|
}
|
||||||
@@ -122,7 +125,8 @@ function updateStatus(channel, status) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function addMissingData(channel) {
|
function addMissingData(channel, playlist) {
|
||||||
|
const code = playlist.country.code
|
||||||
// tvg-name
|
// tvg-name
|
||||||
if (!channel.tvg.name && channel.name) {
|
if (!channel.tvg.name && channel.name) {
|
||||||
channel.tvg.name = channel.name.replace(/\"/gi, '')
|
channel.tvg.name = channel.name.replace(/\"/gi, '')
|
||||||
|
@@ -211,10 +211,10 @@ db.playlists = {
|
|||||||
return this.list
|
return this.list
|
||||||
},
|
},
|
||||||
only(list = []) {
|
only(list = []) {
|
||||||
return this.list.filter(playlist => list.includes(playlist.name))
|
return this.list.filter(playlist => list.includes(playlist.filename))
|
||||||
},
|
},
|
||||||
except(list = []) {
|
except(list = []) {
|
||||||
return this.list.filter(playlist => !list.includes(playlist.name))
|
return this.list.filter(playlist => !list.includes(playlist.filename))
|
||||||
},
|
},
|
||||||
sortBy(fields) {
|
sortBy(fields) {
|
||||||
this.list = utils.sortBy(this.list, fields)
|
this.list = utils.sortBy(this.list, fields)
|
||||||
|
@@ -5,10 +5,6 @@ const fs = require('fs')
|
|||||||
const rootPath = path.resolve(__dirname) + '/../../'
|
const rootPath = path.resolve(__dirname) + '/../../'
|
||||||
const file = {}
|
const file = {}
|
||||||
|
|
||||||
file.getBasename = function (filename) {
|
|
||||||
return path.basename(filename, path.extname(filename))
|
|
||||||
}
|
|
||||||
|
|
||||||
file.getFilename = function (filename) {
|
file.getFilename = function (filename) {
|
||||||
return path.parse(filename).name
|
return path.parse(filename).name
|
||||||
}
|
}
|
||||||
|
@@ -15,10 +15,13 @@ parser.parseIndex = function () {
|
|||||||
parser.parsePlaylist = async function (url) {
|
parser.parsePlaylist = async function (url) {
|
||||||
const content = file.read(url)
|
const content = file.read(url)
|
||||||
const result = playlistParser.parse(content)
|
const result = playlistParser.parse(content)
|
||||||
const name = file.getFilename(url)
|
const filename = file.getFilename(url)
|
||||||
const country = utils.code2name(name)
|
const country = {
|
||||||
|
code: filename,
|
||||||
|
name: utils.code2name(filename)
|
||||||
|
}
|
||||||
|
|
||||||
return new Playlist({ header: result.header, items: result.items, url, country, name })
|
return new Playlist({ header: result.header, items: result.items, url, filename, country })
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = parser
|
module.exports = parser
|
||||||
|
@@ -90,4 +90,10 @@ utils.filterPlaylists = function (arr, include = '', exclude = '') {
|
|||||||
return arr
|
return arr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
utils.sleep = function (ms) {
|
||||||
|
return function (x) {
|
||||||
|
return new Promise(resolve => setTimeout(() => resolve(x), ms))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = utils
|
module.exports = utils
|
||||||
|
Reference in New Issue
Block a user