mirror of
https://github.com/iptv-org/iptv
synced 2026-09-06 03:50:47 -04:00
fix: correct Live 24/7 handling and label regressions
- stream.updateWithIssue: 'Live 24/7: Yes' meant the stream IS 24/7, but it was assigned straight to isNot247, inverting the label. A 'No' answer was also ignored because the guard skipped falsy values. - dataSet.getBoolean: an unanswered dropdown is stored as '' by parseIssueBody, which getBoolean read as false. Treat it as undefined so 'no answer' means 'leave unchanged' instead of 'Not 24/7'. - update.addStream: has() is true for an unanswered field, so it produced isNot247 = true for issues that left the dropdown blank. - generate: sortBy got five orders for four iteratees. - 2_streams_edit.yml: restore the '~' reset option dropped from the quality dropdown when the Label field was removed. - stream.getLabels: use const to satisfy prefer-const.
This commit is contained in:
@@ -59,6 +59,7 @@ body:
|
|||||||
- 480p
|
- 480p
|
||||||
- 480i
|
- 480i
|
||||||
- 360p
|
- 360p
|
||||||
|
- '~'
|
||||||
|
|
||||||
- type: input
|
- type: input
|
||||||
id: http_user_agent
|
id: http_user_agent
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ async function main() {
|
|||||||
(stream: Stream) => (stream.isNot247 ? -1 : 0),
|
(stream: Stream) => (stream.isNot247 ? -1 : 0),
|
||||||
(stream: Stream) => stream.getVerticalResolution()
|
(stream: Stream) => stream.getVerticalResolution()
|
||||||
],
|
],
|
||||||
['asc', 'desc', 'desc', 'desc', 'asc']
|
['asc', 'desc', 'desc', 'desc']
|
||||||
)
|
)
|
||||||
|
|
||||||
logger.info('filtering streams...')
|
logger.info('filtering streams...')
|
||||||
|
|||||||
@@ -264,8 +264,11 @@ async function addStream(issue: Issue) {
|
|||||||
label: null
|
label: null
|
||||||
})
|
})
|
||||||
|
|
||||||
stream.isNot247 = data.has('live_247') ? !data.getBoolean('live_247') : false
|
const live247 = data.getBoolean('live_247')
|
||||||
stream.isGeoBlocked = data.has('geo_blocked') ? data.getBoolean('geo_blocked') : false
|
const geoBlocked = data.getBoolean('geo_blocked')
|
||||||
|
|
||||||
|
stream.isNot247 = live247 === undefined ? false : !live247
|
||||||
|
stream.isGeoBlocked = geoBlocked === true
|
||||||
|
|
||||||
stream.updateTitle().updateFilepath()
|
stream.updateTitle().updateFilepath()
|
||||||
|
|
||||||
|
|||||||
@@ -23,9 +23,11 @@ export class DataSet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getBoolean(key: string): boolean | undefined {
|
getBoolean(key: string): boolean | undefined {
|
||||||
if (this.missing(key)) return undefined
|
const value = this._data.get(key)
|
||||||
|
|
||||||
return this._data.get(key) === 'TRUE' ? true : false
|
if (value === undefined || value === '') return undefined
|
||||||
|
|
||||||
|
return value === 'TRUE'
|
||||||
}
|
}
|
||||||
|
|
||||||
getString(key: string): string | undefined {
|
getString(key: string): string | undefined {
|
||||||
|
|||||||
@@ -53,8 +53,8 @@ export class Stream extends sdk.Models.Stream {
|
|||||||
const live247 = dataSet.getBoolean('live_247')
|
const live247 = dataSet.getBoolean('live_247')
|
||||||
const geoBlocked = dataSet.getBoolean('geo_blocked')
|
const geoBlocked = dataSet.getBoolean('geo_blocked')
|
||||||
|
|
||||||
if (live247) this.isNot247 = live247
|
if (live247 !== undefined) this.isNot247 = !live247
|
||||||
if (geoBlocked) this.isGeoBlocked = geoBlocked
|
if (geoBlocked !== undefined) this.isGeoBlocked = geoBlocked
|
||||||
|
|
||||||
const quality = dataSet.isDeleted('quality') ? '' : dataSet.getString('quality')
|
const quality = dataSet.isDeleted('quality') ? '' : dataSet.getString('quality')
|
||||||
const httpUserAgent = dataSet.isDeleted('http_user_agent')
|
const httpUserAgent = dataSet.isDeleted('http_user_agent')
|
||||||
@@ -435,7 +435,7 @@ export class Stream extends sdk.Models.Stream {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getLabels(): string[] {
|
getLabels(): string[] {
|
||||||
let labels: string[] = []
|
const labels: string[] = []
|
||||||
if (this.isNot247 === true) {
|
if (this.isNot247 === true) {
|
||||||
labels.push('Not 24/7')
|
labels.push('Not 24/7')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#EXTM3U
|
#EXTM3U
|
||||||
#EXTINF:-1 tvg-id="BBCAmerica.us@East",BBC America East (720p) [Not 24/7]
|
#EXTINF:-1 tvg-id="BBCAmerica.us@East",BBC America East (720p)
|
||||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 Edge/12.246
|
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 Edge/12.246
|
||||||
https://servilive.com:3126/live/tele2000live.m3u8
|
https://servilive.com:3126/live/tele2000live.m3u8
|
||||||
|
|||||||
Reference in New Issue
Block a user