Merge pull request #6 from iptv-org/master

merge
This commit is contained in:
Link4K 2020-04-11 17:27:31 +01:00 committed by GitHub
commit f6fc40b3ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 63 additions and 74 deletions

View File

@ -17,8 +17,6 @@ http://c2.manasat.com:1935/kmusic/kmusic3/FluxusTV.m3u8
http://195.22.11.11:1935/ktv/ktv1/FluxusTV.m3u8
#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Portuguese" tvg-logo="https://i.imgur.com/M5i4hfh.png" group-title="",Kuriakos TV
http://195.22.11.11:1935/ktv/ktv1/TeamBlue.m3u8
#EXTINF:-1 tvg-id="RTP 1 PT" tvg-name="RTP 1 PT" tvg-language="Portuguese" tvg-logo="https://i.imgur.com/Rdt24TC.png" group-title="",RTP 1
http://210.210.155.35/qwr9ew/s/s38/index.m3u8
#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Portuguese" tvg-logo="https://i.imgur.com/jYIf7Mz.png" group-title="",Sobrenatural TV
http://213.13.26.11:1935/live/sobrenaturaltv/livestream.m3u8
#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Portuguese" tvg-logo="https://i.imgur.com/VgzVZto.png" group-title="",Sobrenatural TV
@ -31,3 +29,33 @@ https://streamer-b02.videos.sapo.pt/live/santuario.stream/chunklist.m3u8
http://streamspub.manasat.com:1935/tvar/tvmanaar2/playlist.m3u8
#EXTINF:-1 tvg-id="TVI Reality PT" tvg-name="TVI Reality PT" tvg-language="Portuguese" tvg-logo="https://i.imgur.com/yM3G8nv.jpg" group-title="",TVI Reality
http://video-auth8.iol.pt:80/live_tvi_direct/live_tvi_direct-3/playlist.m3u8
#EXTINF:-1 tvg-id="ARTV PT" tvg-name="ARTV PT" tvg-language="Portuguese" tvg-logo="http://www.canal.parlamento.pt/images/ARTV_Logo.png" tvg-country="PT" group-title="Legislative",ARTV | Canal Parlamento
https://5e4fc274d9d46.streamlock.net/livenlin4/2liveartvpub/playlist.m3u8
#EXTINF:-1 tvg-id="RTP 1 PT" tvg-name="RTP 1 PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/5-563718101410.png" tvg-country="PT" group-title="General",RTP1 [not 24/7]
#EXTVLCOPT:http-user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
https://streaming-live.rtp.pt/liverepeater/smil:rtp1.smil/playlist.m3u8
#EXTINF:-1 tvg-id="RTP 2 PT" tvg-name="RTP 2 PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/3-363718101410.png" tvg-country="PT" group-title="General",RTP2 [not 24/7]
#EXTVLCOPT:http-user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
https://streaming-live.rtp.pt/liverepeater/smil:rtp2.smil/playlist.m3u8
#EXTINF:-1 tvg-id="RTP 3 PT" tvg-name="RTP 3 PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/64-393818101410.png" tvg-country="PT" group-title="News",RTP3 [not 24/7]
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64)
https://streaming-live.rtp.pt/livetvhlsDVR/rtpndvr.smil/playlist.m3u8
#EXTINF:-1 tvg-id="RTP Internacional PT" tvg-name="RTP Internacional PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/120-344318101410.png" tvg-country="PT" group-title="General",RTP Internacional [not 24/7]
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64)
https://streaming-live.rtp.pt/liverepeater/smil:rtpi.smil/playlist.m3u8
#EXTINF:-1 tvg-id="RTP Internacional PT" tvg-name="RTP Internacional PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/120-344318101410.png" tvg-country="PT" group-title="General",RTP Internacional (Backup)
http://210.210.155.35/qwr9ew/s/s38/index.m3u8
#EXTINF:-1 tvg-id="RTP Memoria PT" tvg-name="RTP Memoria PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/80-584819141705.png" tvg-country="PT" group-title="",RTP Memória [not 24/7]
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64)
https://streaming-live.rtp.pt/liverepeater/smil:rtpmem.smil/playlist.m3u8
#EXTINF:-1 tvg-id="RTP Madeira PT" tvg-name="RTP Madeira" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/107-443519141305.png" tvg-country="PT" group-title="General",RTP Madeira [not 24/7]
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64)
https://streaming-live.rtp.pt/liverepeater/smil:rtpmadeira.smil/playlist.m3u8
#EXTINF:-1 tvg-id="RTP Acores PT" tvg-name="RTP Acores PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/106-563419141305.png" tvg-country="PT" group-title="General",RTP Açores [not 24/7]
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64)
https://streaming-live.rtp.pt/liverepeater/smil:rtpacores.smil/playlist.m3u8
#EXTINF:-1 tvg-id="RTP Africa PT" tvg-name="RTP Africa PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/27-363219141305.png" tvg-country="PT" group-title="General",RTP África [not 24/7]
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64)
https://streaming-live.rtp.pt/liverepeater/smil:rtpafrica.smil/playlist.m3u8
#EXTINF:-1 tvg-id="Porto Canal PT" tvg-name="Porto Canal PT" tvg-language="Portuguese" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/b/ba/Logo_Porto_Canal.jpg" tvg-country="PT" group-title="",Porto Canal
https://streamer-b02.videos.sapo.pt/live/portocanal/playlist.m3u8

58
package-lock.json generated
View File

@ -3,16 +3,6 @@
"requires": true,
"lockfileVersion": 1,
"dependencies": {
"@babel/runtime-corejs2": {
"version": "7.6.3",
"resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.6.3.tgz",
"integrity": "sha512-nuA2o+rgX2+PrNTZ063ehncVcg7sn+tU71BB81SaWRVUbGwCOlb0+yQA1e0QqmzOfRSYOxfvf8cosYqFbJEiwQ==",
"dev": true,
"requires": {
"core-js": "^2.6.5",
"regenerator-runtime": "^0.13.2"
}
},
"async": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/async/-/async-3.1.0.tgz",
@ -29,12 +19,6 @@
"is-buffer": "^2.0.2"
}
},
"core-js": {
"version": "2.6.10",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz",
"integrity": "sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==",
"dev": true
},
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
@ -44,15 +28,6 @@
"ms": "2.0.0"
}
},
"decamelize": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-3.2.0.tgz",
"integrity": "sha512-4TgkVUsmmu7oCSyGBm5FvfMoACuoh9EOidm7V5/J2X2djAwwt57qb3F2KMP2ITqODTCSwb+YRV+0Zqrv18k/hw==",
"dev": true,
"requires": {
"xregexp": "^4.2.4"
}
},
"epg-parser": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/epg-parser/-/epg-parser-0.1.1.tgz",
@ -88,14 +63,10 @@
}
},
"iptv-playlist-parser": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/iptv-playlist-parser/-/iptv-playlist-parser-0.3.0.tgz",
"integrity": "sha512-FA9B+8Lh+0KtWWXDaxzFf1DY3QJI+mGCZP/E51XoJcfahnajyyqdfI1ClpQquFHok2CLNqnfbeW6rzJN9TCREg==",
"dev": true,
"requires": {
"decamelize": "^3.2.0",
"m3u8-file-parser": "^0.2.2"
}
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/iptv-playlist-parser/-/iptv-playlist-parser-0.4.0.tgz",
"integrity": "sha512-zgNM3chjwgd3bBQsujhdbospyYHky/zURdRSx5uVSkWK5Md6YssrIrVp98WMjJVx5dTlP81C8bdbPGYEyEIfOA==",
"dev": true
},
"is-buffer": {
"version": "2.0.3",
@ -115,12 +86,6 @@
"integrity": "sha1-AMMs5IFSpJphRFC5uiYyq1igo2Q=",
"dev": true
},
"m3u8-file-parser": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/m3u8-file-parser/-/m3u8-file-parser-0.2.2.tgz",
"integrity": "sha512-OW2m2wcVh4g55MKpe5jxp4AOkpUVQEuaXEF8YTnIP1eAPmLtmuzfk+QcHqA+raqK3zdkz/nHjNvoCKn0k6UgzA==",
"dev": true
},
"markdown-include": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/markdown-include/-/markdown-include-0.4.3.tgz",
@ -142,12 +107,6 @@
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
"dev": true
},
"regenerator-runtime": {
"version": "0.13.3",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
"integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
"dev": true
},
"sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
@ -171,15 +130,6 @@
"requires": {
"sax": "^1.2.4"
}
},
"xregexp": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.2.4.tgz",
"integrity": "sha512-sO0bYdYeJAJBcJA8g7MJJX7UrOZIfJPd8U2SC7B2Dd/J24U0aQNoGp33shCaBSWeb0rD5rh6VBUIXOkGal1TZA==",
"dev": true,
"requires": {
"@babel/runtime-corejs2": "^7.2.0"
}
}
}
}

View File

@ -15,7 +15,7 @@
"epg-parser": "^0.1.1",
"escape-string-regexp": "^2.0.0",
"fluent-ffmpeg": "^2.1.2",
"iptv-playlist-parser": "^0.3.0",
"iptv-playlist-parser": "^0.4.0",
"langs": "^2.0.0",
"markdown-include": "^0.4.3"
}

View File

@ -175,15 +175,7 @@ helper.generateTable = function (data, options) {
}
helper.createChannel = function (data) {
return new Channel({
id: data.tvg.id,
name: data.tvg.name,
language: data.tvg.language,
logo: data.tvg.logo,
group: data.group.title,
url: data.url,
title: data.name
})
return new Channel(data)
}
helper.writeToLog = function (country, msg, url) {
@ -230,13 +222,15 @@ class Playlist {
class Channel {
constructor(data) {
this.id = data.id
this.name = data.name
this.language = this._filterLanguage(data.language)
this.logo = data.logo
this.group = this._filterGroup(data.group)
this.id = data.tvg.id
this.name = data.tvg.name
this.language = this._filterLanguage(data.tvg.language)
this.logo = data.tvg.logo
this.group = this._filterGroup(data.group.title)
this.url = data.url
this.title = data.title
this.title = data.name.trim()
this.userAgent = data.http['user-agent']
this.referrer = data.http['referrer']
}
_filterGroup(groupTitle) {
@ -297,13 +291,30 @@ class Channel {
toString() {
const country = this.countryCode.toUpperCase()
const epg = this.id && this.epg ? this.epg : ''
const info = `-1 tvg-id="${this.id}" tvg-name="${this.name}" tvg-language="${this.language}" tvg-logo="${this.logo}" tvg-country="${country}" tvg-url="${epg}" group-title="${this.group}",${this.title}`
let info = `-1 tvg-id="${this.id}" tvg-name="${this.name}" tvg-language="${this.language}" tvg-logo="${this.logo}" tvg-country="${country}" tvg-url="${epg}" group-title="${this.group}",${this.title}`
if (this.referrer) {
info += `\n#EXTVLCOPT:http-referrer=${this.referrer}`
}
if (this.userAgent) {
info += `\n#EXTVLCOPT:http-user-agent=${this.userAgent}`
}
return '#EXTINF:' + info + '\n' + this.url + '\n'
}
toShortString() {
const info = `-1 tvg-id="${this.id}" tvg-name="${this.name}" tvg-language="${this.language}" tvg-logo="${this.logo}" group-title="${this.group}",${this.title}`
let info = `-1 tvg-id="${this.id}" tvg-name="${this.name}" tvg-language="${this.language}" tvg-logo="${this.logo}" group-title="${this.group}",${this.title}`
if (this.referrer) {
info += `\n#EXTVLCOPT:http-referrer=${this.referrer}`
}
if (this.userAgent) {
info += `\n#EXTVLCOPT:http-user-agent=${this.userAgent}`
}
return '#EXTINF:' + info + '\n' + this.url + '\n'
}