mirror of
https://github.com/iptv-org/iptv-org.github.io.git
synced 2025-05-14 02:50:07 -04:00
Update src/
This commit is contained in:
parent
e411cec545
commit
2a893a827b
33 changed files with 416 additions and 186 deletions
|
@ -272,6 +272,10 @@ export class Channel {
|
|||
return broadcastArea.uniqBy((broadcastArea: BroadcastArea) => broadcastArea.code)
|
||||
}
|
||||
|
||||
getFeedNames(): Collection {
|
||||
return this.getFeeds().map((feed: Feed) => feed.name)
|
||||
}
|
||||
|
||||
getSearchable(): ChannelSearchable {
|
||||
return {
|
||||
id: this.id,
|
||||
|
@ -308,7 +312,8 @@ export class Channel {
|
|||
_broadcastLocationNames: this.getBroadcastLocationNames().all(),
|
||||
_countryName: this.getCountryName(),
|
||||
_guideSiteNames: this.getGuideSiteNames().all(),
|
||||
_streamUrls: this.getStreamUrls().all()
|
||||
_streamUrls: this.getStreamUrls().all(),
|
||||
_feedNames: this.getFeedNames().all()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -86,6 +86,10 @@ export class Feed {
|
|||
return this
|
||||
}
|
||||
|
||||
getStreamId(): string {
|
||||
return `${this.channelId}@${this.id}`
|
||||
}
|
||||
|
||||
getUUID(): string {
|
||||
return this.channelId + this.id
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import type { JsonDataViewerField } from '~/types/jsonDataViewerField'
|
||||
import type { StreamData, StreamSerializedData } from '~/types/stream'
|
||||
import type { HTMLPreviewField } from '~/types/htmlPreviewField'
|
||||
import type { Dictionary } from '@freearhey/core/browser'
|
||||
import { Link } from 'iptv-playlist-generator'
|
||||
import type { Category } from './category'
|
||||
import type { Channel } from './channel'
|
||||
import type { Feed } from './feed'
|
||||
import type { Category } from './category'
|
||||
|
||||
export class Stream {
|
||||
channelId?: string
|
||||
|
@ -54,31 +54,6 @@ export class Stream {
|
|||
return `${this.channelId}@${this.feedId}`
|
||||
}
|
||||
|
||||
toJSON() {
|
||||
return {
|
||||
channel: this.channelId,
|
||||
feed: this.feedId,
|
||||
url: this.url,
|
||||
referrer: this.referrer,
|
||||
user_agent: this.userAgent,
|
||||
quality: this.quality
|
||||
}
|
||||
}
|
||||
|
||||
getFieldset(): JsonDataViewerField[] {
|
||||
let fieldset = []
|
||||
|
||||
const data = this.toJSON()
|
||||
for (let key in data) {
|
||||
fieldset.push({
|
||||
name: key,
|
||||
value: data[key]
|
||||
})
|
||||
}
|
||||
|
||||
return fieldset
|
||||
}
|
||||
|
||||
getQuality(): string {
|
||||
if (!this.quality) return ''
|
||||
|
||||
|
@ -89,7 +64,7 @@ export class Stream {
|
|||
return parseInt(this.getQuality().replace(/p|i/, ''))
|
||||
}
|
||||
|
||||
getTitle(): string {
|
||||
getDisplayName(): string {
|
||||
if (!this.channel) return ''
|
||||
if (!this.feed) return this.channel.name
|
||||
|
||||
|
@ -101,7 +76,7 @@ export class Stream {
|
|||
|
||||
const link = new Link(this.url)
|
||||
|
||||
link.title = this.getTitle()
|
||||
link.title = this.getDisplayName()
|
||||
link.attrs = {
|
||||
'tvg-id': this.getId(),
|
||||
'tvg-logo': this.channel.logoUrl,
|
||||
|
@ -125,6 +100,21 @@ export class Stream {
|
|||
return link
|
||||
}
|
||||
|
||||
getFieldset(): HTMLPreviewField[] {
|
||||
return [
|
||||
{ name: 'url', type: 'string', value: this.url, title: this.url },
|
||||
this.referrer
|
||||
? { name: 'referrer', type: 'string', value: this.referrer, title: this.referrer }
|
||||
: null,
|
||||
this.userAgent
|
||||
? { name: 'user_agent', type: 'string', value: this.userAgent, title: this.userAgent }
|
||||
: null,
|
||||
this.quality
|
||||
? { name: 'quality', type: 'string', value: this.quality, title: this.quality }
|
||||
: null
|
||||
]
|
||||
}
|
||||
|
||||
serialize(): StreamSerializedData {
|
||||
return {
|
||||
channelId: this.channelId,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue