From b6b252149899b8fb4c4f1cc18d5544ec0bc64bfd Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Fri, 17 Jan 2025 20:16:25 +0300
Subject: [PATCH 01/19] Fix linter issues
---
sites/rikstv.no/readme.md | 42 +++----
sites/rikstv.no/rikstv.no.channels.xml | 166 ++++++++++++-------------
sites/rikstv.no/rikstv.no.config.js | 148 +++++++++++-----------
sites/rikstv.no/rikstv.no.test.js | 138 ++++++++++----------
4 files changed, 252 insertions(+), 242 deletions(-)
diff --git a/sites/rikstv.no/readme.md b/sites/rikstv.no/readme.md
index 31eb0b38..463a3282 100644
--- a/sites/rikstv.no/readme.md
+++ b/sites/rikstv.no/readme.md
@@ -1,21 +1,21 @@
-# rikstv.no
-
-https://play.rikstv.no/tv-guide
-
-### Download the guide
-
-```sh
-npm run grab --- --site=rikstv.no
-```
-
-### Update channel list
-
-```sh
-npm run channels:parse --- --config=./sites/rikstv.no/rikstv.no.config.js --output=./sites/rikstv.no/rikstv.no.channels.xml
-```
-
-### Test
-
-```sh
-npm test --- rikstv.no
-```
+# rikstv.no
+
+https://play.rikstv.no/tv-guide
+
+### Download the guide
+
+```sh
+npm run grab --- --site=rikstv.no
+```
+
+### Update channel list
+
+```sh
+npm run channels:parse --- --config=./sites/rikstv.no/rikstv.no.config.js --output=./sites/rikstv.no/rikstv.no.channels.xml
+```
+
+### Test
+
+```sh
+npm test --- rikstv.no
+```
diff --git a/sites/rikstv.no/rikstv.no.channels.xml b/sites/rikstv.no/rikstv.no.channels.xml
index 96aebc97..8e9e46c9 100644
--- a/sites/rikstv.no/rikstv.no.channels.xml
+++ b/sites/rikstv.no/rikstv.no.channels.xml
@@ -1,83 +1,83 @@
-
-
- BBC News
- Discovery
- TLC
- Disney Channel
- Eurosport 1
- FEM
- Frikanalen
- REX
- National Geographic
- NRK Super/3
- NRK1
- NRK1 Tegnspråk
- NRK2
- SVT1
- TV 2 Livsstil
- TV 2 Direkte
- TV 2 Nyheter
- TV 2 Zebra
- TV3
- TVNorge
- TV3+
- Visjon Norge
- VOX
- Animal Planet
- BBC Nordic
- TV6
- History Channel
- Eurosport Norge
- Nick Jr.
- Nickelodeon
- TV 2 Danmark
- DR2
- DR1
- SVT2
- TV4
- CNN
- Discovery Science
- Investigation Discovery
- Norway Live
- V Sport +
- V Sport 1
- V Sport 2
- V Sport 3
- Hits
- Stars
- SF-kanalen
- TV 2 Sport 1
- TV 2 Sport 2
- Sky News
- CNBC
- Deutsche Welle
- France 24
- NRK1 Sørlandet
- NRK1 Nordland
- NRK1 Midtnytt
- NRK1 Vestfold og Telemark
- NRK1 Vestlandsrevyen
- NRK1 Nordnytt
- NRK1 Innlandet
- MTV00s
- TV Nord
- Travel Channel
- Food Network
- Euronews
- Auto Motor og Sport TV
- Rikstoto Direkte
- TV Øst
- NRK1 Rogaland
- NRK1 Møre og Romsdal
- NRK1 Lydtekst
- NRK2 Lydtekst
- NRK3 Super Lydtekst
- Heim TV
- V sport golf
- NRK1 Underteksting
- NRK2 Underteksting
- Naturkanal1
- V Film Action
- V Film Premiere
- V Series
-
+
+
+ BBC News
+ Discovery
+ TLC
+ Disney Channel
+ Eurosport 1
+ FEM
+ Frikanalen
+ REX
+ National Geographic
+ NRK Super/3
+ NRK1
+ NRK1 Tegnspråk
+ NRK2
+ SVT1
+ TV 2 Livsstil
+ TV 2 Direkte
+ TV 2 Nyheter
+ TV 2 Zebra
+ TV3
+ TVNorge
+ TV3+
+ Visjon Norge
+ VOX
+ Animal Planet
+ BBC Nordic
+ TV6
+ History Channel
+ Eurosport Norge
+ Nick Jr.
+ Nickelodeon
+ TV 2 Danmark
+ DR2
+ DR1
+ SVT2
+ TV4
+ CNN
+ Discovery Science
+ Investigation Discovery
+ Norway Live
+ V Sport +
+ V Sport 1
+ V Sport 2
+ V Sport 3
+ Hits
+ Stars
+ SF-kanalen
+ TV 2 Sport 1
+ TV 2 Sport 2
+ Sky News
+ CNBC
+ Deutsche Welle
+ France 24
+ NRK1 Sørlandet
+ NRK1 Nordland
+ NRK1 Midtnytt
+ NRK1 Vestfold og Telemark
+ NRK1 Vestlandsrevyen
+ NRK1 Nordnytt
+ NRK1 Innlandet
+ MTV00s
+ TV Nord
+ Travel Channel
+ Food Network
+ Euronews
+ Auto Motor og Sport TV
+ Rikstoto Direkte
+ TV Øst
+ NRK1 Rogaland
+ NRK1 Møre og Romsdal
+ NRK1 Lydtekst
+ NRK2 Lydtekst
+ NRK3 Super Lydtekst
+ Heim TV
+ V sport golf
+ NRK1 Underteksting
+ NRK2 Underteksting
+ Naturkanal1
+ V Film Action
+ V Film Premiere
+ V Series
+
diff --git a/sites/rikstv.no/rikstv.no.config.js b/sites/rikstv.no/rikstv.no.config.js
index 29c64be7..b897473b 100644
--- a/sites/rikstv.no/rikstv.no.config.js
+++ b/sites/rikstv.no/rikstv.no.config.js
@@ -1,72 +1,76 @@
-const dayjs = require('dayjs')
-const utc = require('dayjs/plugin/utc')
-const axios = require('axios')
-
-dayjs.extend(utc)
-
-module.exports = {
- site: 'rikstv.no',
- days: 3,
- request: {
- cache: {
- ttl: 60 * 60 * 1000 // 1 hour
- }
- },
- url({ channel, date }) {
- return `https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format('YYYY-MM-DD')}`
- },
- parser: function ({ content }) {
- let data
- try {
- data = JSON.parse(content)
- } catch (error) {
- console.error('Error parsing JSON:', error)
- return []
- }
-
- const programs = []
-
- if (data && Array.isArray(data)) {
- data.forEach(item => {
- if (!item) return
- //const start = dayjs.utc(item.broadcastedTime)
- //const stop = dayjs.utc(item.broadcastedTimeEnd)
-
- programs.push({
- title: item.seriesName,
- sub_title: item.name,
- description: item.description || item.synopsis,
- season: item.season || null,
- episode: item.episode || null,
- category: item.genres,
- actors: item.actors,
- directors: item.director || item.directors,
- icon: item.imagePackUri,
- start: item.broadcastedTime,
- stop: item.broadcastedTimeEnd
- })
- })
- }
-
- return programs
- },
- async channels() {
- try {
- const response = await axios.get('https://play.rikstv.no/api/content-search/1/channel?includePrograms=false')
- if (!response.data || !Array.isArray(response.data)) {
- console.error('Error: No channels data found')
- return []
- }
- return response.data.map(item => {
- return {
- lang: 'no',
- site_id: item.channelId,
- name: item.serviceName
- }
- })
- } catch (error) {
- console.error('Error fetching channels:', error)
- return []
- }
- }
-}
+const dayjs = require('dayjs')
+const utc = require('dayjs/plugin/utc')
+const axios = require('axios')
+
+dayjs.extend(utc)
+
+module.exports = {
+ site: 'rikstv.no',
+ days: 3,
+ request: {
+ cache: {
+ ttl: 60 * 60 * 1000 // 1 hour
+ }
+ },
+ url({ channel, date }) {
+ return `https://play.rikstv.no/api/content-search/1/channel/${
+ channel.site_id
+ }/epg/${date.format('YYYY-MM-DD')}`
+ },
+ parser: function ({ content }) {
+ let data
+ try {
+ data = JSON.parse(content)
+ } catch (error) {
+ console.error('Error parsing JSON:', error)
+ return []
+ }
+
+ const programs = []
+
+ if (data && Array.isArray(data)) {
+ data.forEach(item => {
+ if (!item) return
+ //const start = dayjs.utc(item.broadcastedTime)
+ //const stop = dayjs.utc(item.broadcastedTimeEnd)
+
+ programs.push({
+ title: item.seriesName,
+ sub_title: item.name,
+ description: item.description || item.synopsis,
+ season: item.season || null,
+ episode: item.episode || null,
+ category: item.genres,
+ actors: item.actors,
+ directors: item.director || item.directors,
+ icon: item.imagePackUri,
+ start: item.broadcastedTime,
+ stop: item.broadcastedTimeEnd
+ })
+ })
+ }
+
+ return programs
+ },
+ async channels() {
+ try {
+ const response = await axios.get(
+ 'https://play.rikstv.no/api/content-search/1/channel?includePrograms=false'
+ )
+ if (!response.data || !Array.isArray(response.data)) {
+ console.error('Error: No channels data found')
+ return []
+ }
+ return response.data.map(item => {
+ return {
+ lang: 'no',
+ site_id: item.channelId,
+ name: item.serviceName
+ }
+ })
+ } catch (error) {
+ console.error('Error fetching channels:', error)
+ return []
+ }
+ }
+}
diff --git a/sites/rikstv.no/rikstv.no.test.js b/sites/rikstv.no/rikstv.no.test.js
index b37143e2..ce0f0959 100644
--- a/sites/rikstv.no/rikstv.no.test.js
+++ b/sites/rikstv.no/rikstv.no.test.js
@@ -1,66 +1,72 @@
-const { parser, url } = require('./rikstv.no.config.js')
-const dayjs = require('dayjs')
-const utc = require('dayjs/plugin/utc')
-const customParseFormat = require('dayjs/plugin/customParseFormat')
-
-dayjs.extend(customParseFormat)
-dayjs.extend(utc)
-
-const date = dayjs.utc('2025-01-14', 'YYYY-MM-DD').startOf('d')
-const channel = {
- site_id: '47',
- xmltv_id: 'NRK1.no'
-}
-
-describe('rikstv.no Module Tests', () => {
- it('can generate valid url', () => {
- expect(url({ date, channel })).toBe(`https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format('YYYY-MM-DD')}`)
- })
-
- it('can parse response', () => {
- const content = JSON.stringify([
- {
- seriesName: 'Vakre og ville Oman',
- name: 'Vakre og ville Oman',
- description: 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
- season: 1,
- episode: 1,
- genres: ['Dokumentar', 'Fakta', 'Natur'],
- actors: ['Gergana Muskalla'],
- director: 'Stefania Muller',
- imagePackUri: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
- broadcastedTime: '2025-01-13T23:00:00Z',
- broadcastedTimeEnd: '2025-01-13T23:55:00Z'
- }
- ])
-
- const result = parser({ content }).map(p => {
- p.start = dayjs(p.start).toISOString()
- p.stop = dayjs(p.stop).toISOString()
- return p
- })
-
- expect(result).toMatchObject([
- {
- title: 'Vakre og ville Oman',
- sub_title: 'Vakre og ville Oman',
- description: 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
- season: 1,
- episode: 1,
- category: ['Dokumentar', 'Fakta', 'Natur'],
- actors: ['Gergana Muskalla'],
- directors: 'Stefania Muller',
- icon: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
- start: '2025-01-13T23:00:00.000Z',
- stop: '2025-01-13T23:55:00.000Z'
- }
- ])
- })
-
- it('can handle empty guide', () => {
- const result = parser({
- content: '[]'
- })
- expect(result).toMatchObject([])
- })
-})
+const { parser, url } = require('./rikstv.no.config.js')
+const dayjs = require('dayjs')
+const utc = require('dayjs/plugin/utc')
+const customParseFormat = require('dayjs/plugin/customParseFormat')
+
+dayjs.extend(customParseFormat)
+dayjs.extend(utc)
+
+const date = dayjs.utc('2025-01-14', 'YYYY-MM-DD').startOf('d')
+const channel = {
+ site_id: '47',
+ xmltv_id: 'NRK1.no'
+}
+
+describe('rikstv.no Module Tests', () => {
+ it('can generate valid url', () => {
+ expect(url({ date, channel })).toBe(
+ `https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format(
+ 'YYYY-MM-DD'
+ )}`
+ )
+ })
+
+ it('can parse response', () => {
+ const content = JSON.stringify([
+ {
+ seriesName: 'Vakre og ville Oman',
+ name: 'Vakre og ville Oman',
+ description:
+ 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
+ season: 1,
+ episode: 1,
+ genres: ['Dokumentar', 'Fakta', 'Natur'],
+ actors: ['Gergana Muskalla'],
+ director: 'Stefania Muller',
+ imagePackUri: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
+ broadcastedTime: '2025-01-13T23:00:00Z',
+ broadcastedTimeEnd: '2025-01-13T23:55:00Z'
+ }
+ ])
+
+ const result = parser({ content }).map(p => {
+ p.start = dayjs(p.start).toISOString()
+ p.stop = dayjs(p.stop).toISOString()
+ return p
+ })
+
+ expect(result).toMatchObject([
+ {
+ title: 'Vakre og ville Oman',
+ sub_title: 'Vakre og ville Oman',
+ description:
+ 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
+ season: 1,
+ episode: 1,
+ category: ['Dokumentar', 'Fakta', 'Natur'],
+ actors: ['Gergana Muskalla'],
+ directors: 'Stefania Muller',
+ icon: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
+ start: '2025-01-13T23:00:00.000Z',
+ stop: '2025-01-13T23:55:00.000Z'
+ }
+ ])
+ })
+
+ it('can handle empty guide', () => {
+ const result = parser({
+ content: '[]'
+ })
+ expect(result).toMatchObject([])
+ })
+})
From e27ac9ee193bc4b378fbe57fdfbbfb4d9322f062 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Fri, 17 Jan 2025 20:20:00 +0300
Subject: [PATCH 02/19] Update tvprofil.com.test.js
---
sites/tvprofil.com/tvprofil.com.test.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sites/tvprofil.com/tvprofil.com.test.js b/sites/tvprofil.com/tvprofil.com.test.js
index ea71bef9..c73753d6 100644
--- a/sites/tvprofil.com/tvprofil.com.test.js
+++ b/sites/tvprofil.com/tvprofil.com.test.js
@@ -7,7 +7,7 @@ const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(customParseFormat)
dayjs.extend(utc)
-const date = dayjs.utc('2023-01-12', 'YYYY-MM-DD').startOf('d')
+const date = dayjs.utc('2025-01-19', 'YYYY-MM-DD').startOf('d')
const channel = {
site_id: 'bg/tv-programa#24kitchen-bg',
xmltv_id: '24KitchenBulgaria.bg'
@@ -15,7 +15,7 @@ const channel = {
it('can generate valid url', () => {
expect(url({ channel, date })).toBe(
- 'https://tvprofil.com/bg/tv-programa/program/?datum=2023-01-12&kanal=24kitchen-bg&callback=cb&b51=818933'
+ 'https://tvprofil.com/bg/tv-programa/program/?datum=2025-01-19&kanal=24kitchen-bg&callback=cb&b52=824084'
)
})
From 01acf6d6d48bbc475a270d6d05f4980e7e4ea2e3 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Fri, 17 Jan 2025 20:59:57 +0300
Subject: [PATCH 03/19] Fix linter issues
---
sites/rikstv.no/readme.md | 42 +++----
sites/rikstv.no/rikstv.no.channels.xml | 166 ++++++++++++-------------
sites/rikstv.no/rikstv.no.config.js | 148 +++++++++++-----------
sites/rikstv.no/rikstv.no.test.js | 138 ++++++++++----------
4 files changed, 252 insertions(+), 242 deletions(-)
diff --git a/sites/rikstv.no/readme.md b/sites/rikstv.no/readme.md
index 31eb0b38..463a3282 100644
--- a/sites/rikstv.no/readme.md
+++ b/sites/rikstv.no/readme.md
@@ -1,21 +1,21 @@
-# rikstv.no
-
-https://play.rikstv.no/tv-guide
-
-### Download the guide
-
-```sh
-npm run grab --- --site=rikstv.no
-```
-
-### Update channel list
-
-```sh
-npm run channels:parse --- --config=./sites/rikstv.no/rikstv.no.config.js --output=./sites/rikstv.no/rikstv.no.channels.xml
-```
-
-### Test
-
-```sh
-npm test --- rikstv.no
-```
+# rikstv.no
+
+https://play.rikstv.no/tv-guide
+
+### Download the guide
+
+```sh
+npm run grab --- --site=rikstv.no
+```
+
+### Update channel list
+
+```sh
+npm run channels:parse --- --config=./sites/rikstv.no/rikstv.no.config.js --output=./sites/rikstv.no/rikstv.no.channels.xml
+```
+
+### Test
+
+```sh
+npm test --- rikstv.no
+```
diff --git a/sites/rikstv.no/rikstv.no.channels.xml b/sites/rikstv.no/rikstv.no.channels.xml
index 96aebc97..8e9e46c9 100644
--- a/sites/rikstv.no/rikstv.no.channels.xml
+++ b/sites/rikstv.no/rikstv.no.channels.xml
@@ -1,83 +1,83 @@
-
-
- BBC News
- Discovery
- TLC
- Disney Channel
- Eurosport 1
- FEM
- Frikanalen
- REX
- National Geographic
- NRK Super/3
- NRK1
- NRK1 Tegnspråk
- NRK2
- SVT1
- TV 2 Livsstil
- TV 2 Direkte
- TV 2 Nyheter
- TV 2 Zebra
- TV3
- TVNorge
- TV3+
- Visjon Norge
- VOX
- Animal Planet
- BBC Nordic
- TV6
- History Channel
- Eurosport Norge
- Nick Jr.
- Nickelodeon
- TV 2 Danmark
- DR2
- DR1
- SVT2
- TV4
- CNN
- Discovery Science
- Investigation Discovery
- Norway Live
- V Sport +
- V Sport 1
- V Sport 2
- V Sport 3
- Hits
- Stars
- SF-kanalen
- TV 2 Sport 1
- TV 2 Sport 2
- Sky News
- CNBC
- Deutsche Welle
- France 24
- NRK1 Sørlandet
- NRK1 Nordland
- NRK1 Midtnytt
- NRK1 Vestfold og Telemark
- NRK1 Vestlandsrevyen
- NRK1 Nordnytt
- NRK1 Innlandet
- MTV00s
- TV Nord
- Travel Channel
- Food Network
- Euronews
- Auto Motor og Sport TV
- Rikstoto Direkte
- TV Øst
- NRK1 Rogaland
- NRK1 Møre og Romsdal
- NRK1 Lydtekst
- NRK2 Lydtekst
- NRK3 Super Lydtekst
- Heim TV
- V sport golf
- NRK1 Underteksting
- NRK2 Underteksting
- Naturkanal1
- V Film Action
- V Film Premiere
- V Series
-
+
+
+ BBC News
+ Discovery
+ TLC
+ Disney Channel
+ Eurosport 1
+ FEM
+ Frikanalen
+ REX
+ National Geographic
+ NRK Super/3
+ NRK1
+ NRK1 Tegnspråk
+ NRK2
+ SVT1
+ TV 2 Livsstil
+ TV 2 Direkte
+ TV 2 Nyheter
+ TV 2 Zebra
+ TV3
+ TVNorge
+ TV3+
+ Visjon Norge
+ VOX
+ Animal Planet
+ BBC Nordic
+ TV6
+ History Channel
+ Eurosport Norge
+ Nick Jr.
+ Nickelodeon
+ TV 2 Danmark
+ DR2
+ DR1
+ SVT2
+ TV4
+ CNN
+ Discovery Science
+ Investigation Discovery
+ Norway Live
+ V Sport +
+ V Sport 1
+ V Sport 2
+ V Sport 3
+ Hits
+ Stars
+ SF-kanalen
+ TV 2 Sport 1
+ TV 2 Sport 2
+ Sky News
+ CNBC
+ Deutsche Welle
+ France 24
+ NRK1 Sørlandet
+ NRK1 Nordland
+ NRK1 Midtnytt
+ NRK1 Vestfold og Telemark
+ NRK1 Vestlandsrevyen
+ NRK1 Nordnytt
+ NRK1 Innlandet
+ MTV00s
+ TV Nord
+ Travel Channel
+ Food Network
+ Euronews
+ Auto Motor og Sport TV
+ Rikstoto Direkte
+ TV Øst
+ NRK1 Rogaland
+ NRK1 Møre og Romsdal
+ NRK1 Lydtekst
+ NRK2 Lydtekst
+ NRK3 Super Lydtekst
+ Heim TV
+ V sport golf
+ NRK1 Underteksting
+ NRK2 Underteksting
+ Naturkanal1
+ V Film Action
+ V Film Premiere
+ V Series
+
diff --git a/sites/rikstv.no/rikstv.no.config.js b/sites/rikstv.no/rikstv.no.config.js
index 29c64be7..b897473b 100644
--- a/sites/rikstv.no/rikstv.no.config.js
+++ b/sites/rikstv.no/rikstv.no.config.js
@@ -1,72 +1,76 @@
-const dayjs = require('dayjs')
-const utc = require('dayjs/plugin/utc')
-const axios = require('axios')
-
-dayjs.extend(utc)
-
-module.exports = {
- site: 'rikstv.no',
- days: 3,
- request: {
- cache: {
- ttl: 60 * 60 * 1000 // 1 hour
- }
- },
- url({ channel, date }) {
- return `https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format('YYYY-MM-DD')}`
- },
- parser: function ({ content }) {
- let data
- try {
- data = JSON.parse(content)
- } catch (error) {
- console.error('Error parsing JSON:', error)
- return []
- }
-
- const programs = []
-
- if (data && Array.isArray(data)) {
- data.forEach(item => {
- if (!item) return
- //const start = dayjs.utc(item.broadcastedTime)
- //const stop = dayjs.utc(item.broadcastedTimeEnd)
-
- programs.push({
- title: item.seriesName,
- sub_title: item.name,
- description: item.description || item.synopsis,
- season: item.season || null,
- episode: item.episode || null,
- category: item.genres,
- actors: item.actors,
- directors: item.director || item.directors,
- icon: item.imagePackUri,
- start: item.broadcastedTime,
- stop: item.broadcastedTimeEnd
- })
- })
- }
-
- return programs
- },
- async channels() {
- try {
- const response = await axios.get('https://play.rikstv.no/api/content-search/1/channel?includePrograms=false')
- if (!response.data || !Array.isArray(response.data)) {
- console.error('Error: No channels data found')
- return []
- }
- return response.data.map(item => {
- return {
- lang: 'no',
- site_id: item.channelId,
- name: item.serviceName
- }
- })
- } catch (error) {
- console.error('Error fetching channels:', error)
- return []
- }
- }
-}
+const dayjs = require('dayjs')
+const utc = require('dayjs/plugin/utc')
+const axios = require('axios')
+
+dayjs.extend(utc)
+
+module.exports = {
+ site: 'rikstv.no',
+ days: 3,
+ request: {
+ cache: {
+ ttl: 60 * 60 * 1000 // 1 hour
+ }
+ },
+ url({ channel, date }) {
+ return `https://play.rikstv.no/api/content-search/1/channel/${
+ channel.site_id
+ }/epg/${date.format('YYYY-MM-DD')}`
+ },
+ parser: function ({ content }) {
+ let data
+ try {
+ data = JSON.parse(content)
+ } catch (error) {
+ console.error('Error parsing JSON:', error)
+ return []
+ }
+
+ const programs = []
+
+ if (data && Array.isArray(data)) {
+ data.forEach(item => {
+ if (!item) return
+ //const start = dayjs.utc(item.broadcastedTime)
+ //const stop = dayjs.utc(item.broadcastedTimeEnd)
+
+ programs.push({
+ title: item.seriesName,
+ sub_title: item.name,
+ description: item.description || item.synopsis,
+ season: item.season || null,
+ episode: item.episode || null,
+ category: item.genres,
+ actors: item.actors,
+ directors: item.director || item.directors,
+ icon: item.imagePackUri,
+ start: item.broadcastedTime,
+ stop: item.broadcastedTimeEnd
+ })
+ })
+ }
+
+ return programs
+ },
+ async channels() {
+ try {
+ const response = await axios.get(
+ 'https://play.rikstv.no/api/content-search/1/channel?includePrograms=false'
+ )
+ if (!response.data || !Array.isArray(response.data)) {
+ console.error('Error: No channels data found')
+ return []
+ }
+ return response.data.map(item => {
+ return {
+ lang: 'no',
+ site_id: item.channelId,
+ name: item.serviceName
+ }
+ })
+ } catch (error) {
+ console.error('Error fetching channels:', error)
+ return []
+ }
+ }
+}
diff --git a/sites/rikstv.no/rikstv.no.test.js b/sites/rikstv.no/rikstv.no.test.js
index b37143e2..ce0f0959 100644
--- a/sites/rikstv.no/rikstv.no.test.js
+++ b/sites/rikstv.no/rikstv.no.test.js
@@ -1,66 +1,72 @@
-const { parser, url } = require('./rikstv.no.config.js')
-const dayjs = require('dayjs')
-const utc = require('dayjs/plugin/utc')
-const customParseFormat = require('dayjs/plugin/customParseFormat')
-
-dayjs.extend(customParseFormat)
-dayjs.extend(utc)
-
-const date = dayjs.utc('2025-01-14', 'YYYY-MM-DD').startOf('d')
-const channel = {
- site_id: '47',
- xmltv_id: 'NRK1.no'
-}
-
-describe('rikstv.no Module Tests', () => {
- it('can generate valid url', () => {
- expect(url({ date, channel })).toBe(`https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format('YYYY-MM-DD')}`)
- })
-
- it('can parse response', () => {
- const content = JSON.stringify([
- {
- seriesName: 'Vakre og ville Oman',
- name: 'Vakre og ville Oman',
- description: 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
- season: 1,
- episode: 1,
- genres: ['Dokumentar', 'Fakta', 'Natur'],
- actors: ['Gergana Muskalla'],
- director: 'Stefania Muller',
- imagePackUri: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
- broadcastedTime: '2025-01-13T23:00:00Z',
- broadcastedTimeEnd: '2025-01-13T23:55:00Z'
- }
- ])
-
- const result = parser({ content }).map(p => {
- p.start = dayjs(p.start).toISOString()
- p.stop = dayjs(p.stop).toISOString()
- return p
- })
-
- expect(result).toMatchObject([
- {
- title: 'Vakre og ville Oman',
- sub_title: 'Vakre og ville Oman',
- description: 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
- season: 1,
- episode: 1,
- category: ['Dokumentar', 'Fakta', 'Natur'],
- actors: ['Gergana Muskalla'],
- directors: 'Stefania Muller',
- icon: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
- start: '2025-01-13T23:00:00.000Z',
- stop: '2025-01-13T23:55:00.000Z'
- }
- ])
- })
-
- it('can handle empty guide', () => {
- const result = parser({
- content: '[]'
- })
- expect(result).toMatchObject([])
- })
-})
+const { parser, url } = require('./rikstv.no.config.js')
+const dayjs = require('dayjs')
+const utc = require('dayjs/plugin/utc')
+const customParseFormat = require('dayjs/plugin/customParseFormat')
+
+dayjs.extend(customParseFormat)
+dayjs.extend(utc)
+
+const date = dayjs.utc('2025-01-14', 'YYYY-MM-DD').startOf('d')
+const channel = {
+ site_id: '47',
+ xmltv_id: 'NRK1.no'
+}
+
+describe('rikstv.no Module Tests', () => {
+ it('can generate valid url', () => {
+ expect(url({ date, channel })).toBe(
+ `https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format(
+ 'YYYY-MM-DD'
+ )}`
+ )
+ })
+
+ it('can parse response', () => {
+ const content = JSON.stringify([
+ {
+ seriesName: 'Vakre og ville Oman',
+ name: 'Vakre og ville Oman',
+ description:
+ 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
+ season: 1,
+ episode: 1,
+ genres: ['Dokumentar', 'Fakta', 'Natur'],
+ actors: ['Gergana Muskalla'],
+ director: 'Stefania Muller',
+ imagePackUri: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
+ broadcastedTime: '2025-01-13T23:00:00Z',
+ broadcastedTimeEnd: '2025-01-13T23:55:00Z'
+ }
+ ])
+
+ const result = parser({ content }).map(p => {
+ p.start = dayjs(p.start).toISOString()
+ p.stop = dayjs(p.stop).toISOString()
+ return p
+ })
+
+ expect(result).toMatchObject([
+ {
+ title: 'Vakre og ville Oman',
+ sub_title: 'Vakre og ville Oman',
+ description:
+ 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
+ season: 1,
+ episode: 1,
+ category: ['Dokumentar', 'Fakta', 'Natur'],
+ actors: ['Gergana Muskalla'],
+ directors: 'Stefania Muller',
+ icon: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
+ start: '2025-01-13T23:00:00.000Z',
+ stop: '2025-01-13T23:55:00.000Z'
+ }
+ ])
+ })
+
+ it('can handle empty guide', () => {
+ const result = parser({
+ content: '[]'
+ })
+ expect(result).toMatchObject([])
+ })
+})
From 0a69951b5938954359fb48be7002bb004fdf29d5 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Fri, 17 Jan 2025 21:00:23 +0300
Subject: [PATCH 04/19] Delete content.json
---
sites/flixed.io/__data__/content.json | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 sites/flixed.io/__data__/content.json
diff --git a/sites/flixed.io/__data__/content.json b/sites/flixed.io/__data__/content.json
deleted file mode 100644
index ab9c0981..00000000
--- a/sites/flixed.io/__data__/content.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"startTime":"2023-01-19T05:00Z","endTime":"2023-01-19T06:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH039995140000","rootId":"20628892","seriesId":"20628892","subType":"Sports non-event","title":"The Greg Peterson Experience","releaseYear":2021,"releaseDate":"2021-09-12","origAirDate":"2021-09-12","titleLang":"en","descriptionLang":"en","entityType":"Show","longDescription":"A different kind of sports betting.","shortDescription":"A different kind of sports betting.","preferredImage":{"width":"270","height":"360","uri":"assets/p20628892_b_v13_aa.jpg?w=270&h=360","category":"Banner-L2","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T06:00Z","endTime":"2023-01-19T07:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH039995140000","rootId":"20628892","seriesId":"20628892","subType":"Sports non-event","title":"The Greg Peterson Experience","releaseYear":2021,"releaseDate":"2021-09-12","origAirDate":"2021-09-12","titleLang":"en","descriptionLang":"en","entityType":"Show","longDescription":"A different kind of sports betting.","shortDescription":"A different kind of sports betting.","preferredImage":{"width":"270","height":"360","uri":"assets/p20628892_b_v13_aa.jpg?w=270&h=360","category":"Banner-L2","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T07:00Z","endTime":"2023-01-19T08:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH039995140000","rootId":"20628892","seriesId":"20628892","subType":"Sports non-event","title":"The Greg Peterson Experience","releaseYear":2021,"releaseDate":"2021-09-12","origAirDate":"2021-09-12","titleLang":"en","descriptionLang":"en","entityType":"Show","longDescription":"A different kind of sports betting.","shortDescription":"A different kind of sports betting.","preferredImage":{"width":"270","height":"360","uri":"assets/p20628892_b_v13_aa.jpg?w=270&h=360","category":"Banner-L2","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T08:00Z","endTime":"2023-01-19T09:00Z","duration":60,"qualifiers":["HD 720p"],"program":{"tmsId":"SH036281310000","rootId":"18846865","seriesId":"18846865","subType":"Series","title":"VSiN Overnight","releaseYear":2020,"releaseDate":"2020-09-21","origAirDate":"2020-09-21","titleLang":"en","descriptionLang":"en","entityType":"Show","genres":["Entertainment"],"longDescription":"VSiN's best shows and highlights.","shortDescription":"VSiN's best shows and highlights.","preferredImage":{"width":"270","height":"360","uri":"assets/p18846865_b_v13_aa.jpg?w=270&h=360","category":"Banner-L2","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T09:00Z","endTime":"2023-01-19T10:00Z","duration":60,"qualifiers":["HD 720p"],"program":{"tmsId":"SH039995140000","rootId":"20628892","seriesId":"20628892","subType":"Sports non-event","title":"The Greg Peterson Experience","releaseYear":2021,"releaseDate":"2021-09-12","origAirDate":"2021-09-12","titleLang":"en","descriptionLang":"en","entityType":"Show","longDescription":"A different kind of sports betting.","shortDescription":"A different kind of sports betting.","preferredImage":{"width":"270","height":"360","uri":"assets/p20628892_b_v13_aa.jpg?w=270&h=360","category":"Banner-L2","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T10:00Z","endTime":"2023-01-19T11:00Z","duration":60,"qualifiers":["HD 720p"],"program":{"tmsId":"SH039995140000","rootId":"20628892","seriesId":"20628892","subType":"Sports non-event","title":"The Greg Peterson Experience","releaseYear":2021,"releaseDate":"2021-09-12","origAirDate":"2021-09-12","titleLang":"en","descriptionLang":"en","entityType":"Show","longDescription":"A different kind of sports betting.","shortDescription":"A different kind of sports betting.","preferredImage":{"width":"270","height":"360","uri":"assets/p20628892_b_v13_aa.jpg?w=270&h=360","category":"Banner-L2","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T11:00Z","endTime":"2023-01-19T12:00Z","duration":60,"qualifiers":["HD 720p"],"program":{"tmsId":"SH039995140000","rootId":"20628892","seriesId":"20628892","subType":"Sports non-event","title":"The Greg Peterson Experience","releaseYear":2021,"releaseDate":"2021-09-12","origAirDate":"2021-09-12","titleLang":"en","descriptionLang":"en","entityType":"Show","longDescription":"A different kind of sports betting.","shortDescription":"A different kind of sports betting.","preferredImage":{"width":"270","height":"360","uri":"assets/p20628892_b_v13_aa.jpg?w=270&h=360","category":"Banner-L2","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T12:00Z","endTime":"2023-01-19T13:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH029950270000","rootId":"15656477","seriesId":"15656477","subType":"Series","title":"Follow the Money","releaseYear":2018,"releaseDate":"2018-06-20","origAirDate":"2018-06-20","titleLang":"en","descriptionLang":"en","entityType":"Show","genres":["Sports talk"],"longDescription":"Mitch Moss and Paul Howard share their knowledge of pop culture, sports, and gambling.","shortDescription":"Mitch Moss and Paul Howard share their knowledge of pop culture, sports, and gambling.","preferredImage":{"width":"270","height":"360","uri":"assets/p15656477_b_v10_aa.jpg?w=270&h=360","category":"Banner-L1","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T13:00Z","endTime":"2023-01-19T14:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH029950270000","rootId":"15656477","seriesId":"15656477","subType":"Series","title":"Follow the Money","releaseYear":2018,"releaseDate":"2018-06-20","origAirDate":"2018-06-20","titleLang":"en","descriptionLang":"en","entityType":"Show","genres":["Sports talk"],"longDescription":"Mitch Moss and Paul Howard share their knowledge of pop culture, sports, and gambling.","shortDescription":"Mitch Moss and Paul Howard share their knowledge of pop culture, sports, and gambling.","preferredImage":{"width":"270","height":"360","uri":"assets/p15656477_b_v10_aa.jpg?w=270&h=360","category":"Banner-L1","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T14:00Z","endTime":"2023-01-19T15:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH029950270000","rootId":"15656477","seriesId":"15656477","subType":"Series","title":"Follow the Money","releaseYear":2018,"releaseDate":"2018-06-20","origAirDate":"2018-06-20","titleLang":"en","descriptionLang":"en","entityType":"Show","genres":["Sports talk"],"longDescription":"Mitch Moss and Paul Howard share their knowledge of pop culture, sports, and gambling.","shortDescription":"Mitch Moss and Paul Howard share their knowledge of pop culture, sports, and gambling.","preferredImage":{"width":"270","height":"360","uri":"assets/p15656477_b_v10_aa.jpg?w=270&h=360","category":"Banner-L1","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T15:00Z","endTime":"2023-01-19T16:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH029950250000","rootId":"15656466","seriesId":"15656466","subType":"Series","title":"A Numbers Game","releaseYear":2018,"releaseDate":"2018-06-20","origAirDate":"2018-06-20","titleLang":"en","descriptionLang":"en","entityType":"Show","genres":["Sports talk"],"longDescription":"Gill Alexander takes an analytical look at sports wagering.","shortDescription":"Gill Alexander takes an analytical look at sports wagering.","preferredImage":{"width":"270","height":"360","uri":"assets/p15656466_b_v10_aa.jpg?w=270&h=360","category":"Banner-L1","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T16:00Z","endTime":"2023-01-19T17:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH029950250000","rootId":"15656466","seriesId":"15656466","subType":"Series","title":"A Numbers Game","releaseYear":2018,"releaseDate":"2018-06-20","origAirDate":"2018-06-20","titleLang":"en","descriptionLang":"en","entityType":"Show","genres":["Sports talk"],"longDescription":"Gill Alexander takes an analytical look at sports wagering.","shortDescription":"Gill Alexander takes an analytical look at sports wagering.","preferredImage":{"width":"270","height":"360","uri":"assets/p15656466_b_v10_aa.jpg?w=270&h=360","category":"Banner-L1","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T17:00Z","endTime":"2023-01-19T18:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH032763390000","rootId":"17172564","seriesId":"17172564","sportsId":"111","subType":"Sports non-event","title":"The Lombardi Line","releaseYear":2019,"releaseDate":"2019-08-24","origAirDate":"2019-08-02","titleLang":"en","descriptionLang":"en","entityType":"Show","genres":["Football"],"longDescription":"Former NFL executive and current analyst Mike Lombardi breaks down the week's action on the field and in the sportsbook.","shortDescription":"Mike Lombardi breaks down the week's action on the field and in the sportsbook.","preferredImage":{"width":"270","height":"360","uri":"assets/p17172564_b_v13_aa.jpg?w=270&h=360","category":"Banner-L2","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T18:00Z","endTime":"2023-01-19T19:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH032763390000","rootId":"17172564","seriesId":"17172564","sportsId":"111","subType":"Sports non-event","title":"The Lombardi Line","releaseYear":2019,"releaseDate":"2019-08-24","origAirDate":"2019-08-02","titleLang":"en","descriptionLang":"en","entityType":"Show","genres":["Football"],"longDescription":"Former NFL executive and current analyst Mike Lombardi breaks down the week's action on the field and in the sportsbook.","shortDescription":"Mike Lombardi breaks down the week's action on the field and in the sportsbook.","preferredImage":{"width":"270","height":"360","uri":"assets/p17172564_b_v13_aa.jpg?w=270&h=360","category":"Banner-L2","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T19:00Z","endTime":"2023-01-19T20:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH044348230000","rootId":"22835950","seriesId":"22835950","subType":"Series","title":"VSiN Big Bets","releaseYear":2022,"releaseDate":"2022-08-30","origAirDate":"2022-08-30","titleLang":"en","entityType":"Show","preferredImage":{"width":"270","height":"360","uri":"assets/p22835950_st_v9_aa.jpg?w=270&h=360","category":"Staple","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T20:00Z","endTime":"2023-01-19T21:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH044348230000","rootId":"22835950","seriesId":"22835950","subType":"Series","title":"VSiN Big Bets","releaseYear":2022,"releaseDate":"2022-08-30","origAirDate":"2022-08-30","titleLang":"en","entityType":"Show","preferredImage":{"width":"270","height":"360","uri":"assets/p22835950_st_v9_aa.jpg?w=270&h=360","category":"Staple","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T21:00Z","endTime":"2023-01-19T22:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH044348240000","rootId":"22835959","seriesId":"22835959","subType":"Sports non-event","title":"VSiN Final Countdown","releaseYear":2022,"releaseDate":"2022-08-30","origAirDate":"2022-08-30","titleLang":"en","entityType":"Show","preferredImage":{"width":"270","height":"360","uri":"assets/p22835959_b_v9_aa.jpg?w=270&h=360","category":"Banner-L1","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T22:00Z","endTime":"2023-01-19T23:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH044348240000","rootId":"22835959","seriesId":"22835959","subType":"Sports non-event","title":"VSiN Final Countdown","releaseYear":2022,"releaseDate":"2022-08-30","origAirDate":"2022-08-30","titleLang":"en","entityType":"Show","preferredImage":{"width":"270","height":"360","uri":"assets/p22835959_b_v9_aa.jpg?w=270&h=360","category":"Banner-L1","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-19T23:00Z","endTime":"2023-01-20T00:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH044348280000","rootId":"22835967","seriesId":"22835967","subType":"Series","title":"VSiN Prime Time","releaseYear":2022,"releaseDate":"2022-08-30","origAirDate":"2022-08-30","titleLang":"en","entityType":"Show","genres":["Entertainment"],"preferredImage":{"width":"270","height":"360","uri":"assets/p22835967_b_v9_aa.jpg?w=270&h=360","category":"Banner-L1","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-20T00:00Z","endTime":"2023-01-20T01:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH044348280000","rootId":"22835967","seriesId":"22835967","subType":"Series","title":"VSiN Prime Time","releaseYear":2022,"releaseDate":"2022-08-30","origAirDate":"2022-08-30","titleLang":"en","entityType":"Show","genres":["Entertainment"],"preferredImage":{"width":"270","height":"360","uri":"assets/p22835967_b_v9_aa.jpg?w=270&h=360","category":"Banner-L1","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-20T01:00Z","endTime":"2023-01-20T02:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH044348280000","rootId":"22835967","seriesId":"22835967","subType":"Series","title":"VSiN Prime Time","releaseYear":2022,"releaseDate":"2022-08-30","origAirDate":"2022-08-30","titleLang":"en","entityType":"Show","genres":["Entertainment"],"preferredImage":{"width":"270","height":"360","uri":"assets/p22835967_b_v9_aa.jpg?w=270&h=360","category":"Banner-L1","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-20T02:00Z","endTime":"2023-01-20T03:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH044348270000","rootId":"22835962","seriesId":"22835962","subType":"Series","title":"VSiN Live Bet Tonight","releaseYear":2022,"releaseDate":"2022-08-30","origAirDate":"2022-08-30","titleLang":"en","entityType":"Show","preferredImage":{"width":"270","height":"360","uri":"assets/p22835962_b_v9_aa.jpg?w=270&h=360","category":"Banner-L1","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-20T03:00Z","endTime":"2023-01-20T04:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH044348270000","rootId":"22835962","seriesId":"22835962","subType":"Series","title":"VSiN Live Bet Tonight","releaseYear":2022,"releaseDate":"2022-08-30","origAirDate":"2022-08-30","titleLang":"en","entityType":"Show","preferredImage":{"width":"270","height":"360","uri":"assets/p22835962_b_v9_aa.jpg?w=270&h=360","category":"Banner-L1","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-20T04:00Z","endTime":"2023-01-20T05:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH044348270000","rootId":"22835962","seriesId":"22835962","subType":"Series","title":"VSiN Live Bet Tonight","releaseYear":2022,"releaseDate":"2022-08-30","origAirDate":"2022-08-30","titleLang":"en","entityType":"Show","preferredImage":{"width":"270","height":"360","uri":"assets/p22835962_b_v9_aa.jpg?w=270&h=360","category":"Banner-L1","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}},{"startTime":"2023-01-20T05:00Z","endTime":"2023-01-20T06:00Z","duration":60,"qualifiers":["HD 720p","Live","New"],"program":{"tmsId":"SH039995140000","rootId":"20628892","seriesId":"20628892","subType":"Sports non-event","title":"The Greg Peterson Experience","releaseYear":2021,"releaseDate":"2021-09-12","origAirDate":"2021-09-12","titleLang":"en","descriptionLang":"en","entityType":"Show","longDescription":"A different kind of sports betting.","shortDescription":"A different kind of sports betting.","preferredImage":{"width":"270","height":"360","uri":"assets/p20628892_b_v13_aa.jpg?w=270&h=360","category":"Banner-L2","text":"yes","primary":"true","tier":"Series"}},"station":{"stationId":"108970","callSign":"VSIN","videoQuality":{"signalType":"Digital","truResolution":"HD 720p","videoType":"HDTV"},"preferredImage":{"uri":"sources/generic/generic_sources_h3.png"}}}]
\ No newline at end of file
From 1d1adcf1d2a515d7a5c5396ba9f58170e1d7c94f Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Fri, 17 Jan 2025 21:00:37 +0300
Subject: [PATCH 05/19] Delete flixed.io.channels.xml
---
sites/flixed.io/flixed.io.channels.xml | 495 -------------------------
1 file changed, 495 deletions(-)
delete mode 100644 sites/flixed.io/flixed.io.channels.xml
diff --git a/sites/flixed.io/flixed.io.channels.xml b/sites/flixed.io/flixed.io.channels.xml
deleted file mode 100644
index 6e83e04a..00000000
--- a/sites/flixed.io/flixed.io.channels.xml
+++ /dev/null
@@ -1,495 +0,0 @@
-
-
- ABC (East)
- NBC Sports California Plus 2 HD
- Fubo Cycling Channel
- FUBO US Urban
- FUBO US Hits
- FUBO US Rock
- fubo Soccer
- MSG Zone 1
- MSG (Alt. feed) - MSG2 OVERFLOW
- New England Sports Network
- Fubo NBA League Pass Utah
- Fubo NBA League Pass Washington
- Fubo NBCSN+ 4K
- FUBO FS2 4K
- ACC Network (West)
- Fubo Movie Network
- ESPN Classic
- NBCSN
- GAC FAMILY
- MSNBC
- CBS (Central)
- ABC (Central)
- FOX (Central)
- TV Games Network
- NBC Digital Feed
- TV Games Network 2
- Nuestra Tele Internacional
- ABC (West)
- TV ONE
- MSG Zone 3
- NBCSN HD
- Star Life
- ABC (Hawaii)
- CBS (Hawaii)
- FOX (Hawaii)
- MyNetworkTV (East)
- CW (West)
- MyNetworkTV (Central)
- MyNetworkTV (West)
- MyNetworkTV (Hawaii)
- CW (Hawaii)
- NBC (Hawaii)
- NBC (Alaska)
- FOX (Alaska)
- CBS (Alaska)
- CW (Alaska)
- ABC (Alaska)
- MyNetworkTV (Alaska)
- ION Television (Alaska)
- ION Television (Hawaii)
- Mid Atlantic Sports Network Alternate
- NTN24 Nuestra Tele Noticias 24
- New England Sports Network Plus
- Canal RCN TELENOVELAS
- New England Cable News HD
- Shorts TV
- GAC FAMILY HD
- beIN SPORTS 9
- beIN SPORTS 10
- NBC Sports California Alternate HDTV
- Mas Chic
- Local Now
- ABC News Live
- ACC Network (East)
- AccuWeather
- A&E (East)
- A&E (West)
- A&E Network Stream (West)
- Al Jazeera America
- Altitude Sports and Entertainment Network
- AMC (East)
- AMC HD
- AMC Stream East
- AMC (West)
- American Heroes Channel
- American Heroes Channel HD
- Animal Planet
- Animal Planet HD
- Antenna TV
- ASPiRE HD
- AT&T SportsNet Pittsburgh
- AT&T SportsNet Rocky Mountain
- AT&T SportsNet Southwest
- AXS TV
- Bally Sports Arizona
- Bally Sports Detroit
- Bally Sports Florida
- Bally Sports Great Lakes
- Bally Sports Indiana
- Bally Sports Kansas City
- Bally Sports Midwest - Illinois
- Bally Sports New Orleans (North)
- Bally Sports North
- Bally Sports Ohio 1 (Cleveland feed)
- Bally Sports Ohio 2 (Cincinnati feed)
- Bally Sports Oklahoma
- Bally Sports San Diego
- Bally Sports SoCal
- Bally Sports South - Main Feed
- Bally Sports Southeast
- Bally Sports Southwest (Main Feed)
- Bally Sports Sun
- Bally Sports West
- Bally Sports Wisconsin
- BBC America
- BBC World News
- BBC World News (North America)
- BBC World News (North America) HD
- beIN SPORTS 3 HD
- beIN SPORTS 3
- beIN SPORTS 4
- beIN SPORTS 5
- beIN SPORTS 6
- beIN SPORTS 7
- beIN SPORTS 8
- beIN Sports HD
- BET (East)
- BET HD
- BET Her
- BET Her HD
- BET Jams
- BET Soul
- BET (West)
- Big Ten Network
- Big Ten HD
- Big Ten Network Overflow
- Bloomberg Business Television
- Boomerang
- Bravo (East)
- Bravo (West)
- BYU-TV
- Cartoon Network (East)
- Cartoon Network (West)
- CBS (East)
- CBS News Streaming
- CBS Sports Network
- CBS Sports Network HD
- CBS (West)
- Cheddar News
- Cheddar U
- Cinemax (East)
- Cinemax (West)
- Sony Cine
- Cleo TV
- CMT (East)
- CMT HD
- CMT (West)
- CNBC
- CNBC World
- CNN
- CNN International HD
- Comedy Central (East)
- Comedy Central HD
- Comedy Central (West)
- Comet
- Cooking Channel
- Cooking Channel HD
- COZI TV HD
- Crime & Investigation Network HD
- CSPAN
- CSPAN2
- CW (Central)
- CW (East)
- Destination America
- Destination America HD
- Discovery Channel (East)
- Discovery Channel HD
- Discovery Channel (West)
- Discovery Family Channel
- Discovery Family Channel HD
- Discovery Life Channel
- Discovery Life Channel HD
- Disney Channel (East)
- Disney Channel (West)
- Disney Junior
- Disney Junior HD
- Disney XD (East)
- Disney XD HD
- Disney XD (West)
- E! Entertainment (East)
- ESPN
- ESPN2
- ESPN3 South
- ESPNEWS
- ESPNU
- E! Entertainment (West)
- The Fight Network HD
- Food Network (East)
- Food Network HD
- Food Network (West)
- Fox Business
- Fox Business HD
- FOX (East)
- Fox Life
- Fox News Channel
- Fox Soccer Plus HD
- Fox Sports 1
- Fox Sports 1 HD
- Fox Sports 2
- Fox Sports 2 HD
- FOX (West)
- Freeform (East)
- Freeform HD
- Freeform (West)
- Fubo Sports Network
- Fuse
- Fusion HD
- FX
- FX HD
- FXM
- FXX
- FXX HD
- FYI
- FYI Channel HD
- FYI Stream
- Game Show Network
- Game Show Network HD
- getTV
- GINX eSports TV US
- Golf Channel
- Golf Channel HD
- GOLTV (English) HD
- Hallmark Channel Streaming
- Hallmark Channel (East)
- Hallmark Channel HD
- Hallmark Channel (West)
- Hallmark Drama
- Hallmark Movies & Mysteries Streaming
- Hallmark Movies & Mysteries HD
- HBO2 (East)
- HBO2 (West)
- HBO Comedy HD
- HBO (East)
- HBO Family (East)
- HBO Family (West)
- HBO Signature (East)
- HBO Signature (West)
- HBO (West)
- HBO Zone HD
- Home & Garden Television (East)
- Home & Garden Television HD
- Home & Garden Television (West)
- History (East)
- History Stream
- History (West)
- HLN
- IFC
- IFC HD
- IFC Stream East
- INSP
- INSP HD
- Investigation Discovery
- Investigation Discovery HD
- ION Television (Central)
- ION Television (East)
- ION Television (West)
- Law & Crime Stream
- Lifetime (East)
- Lifetime HD
- Lifetime Stream
- LMN
- LMN HD
- LMN Stream (East)
- Lifetime (West)
- Logo HD
- Longhorn Network HD
- Do-It-Yourself Network HD
- Marquee Sports Network HD
- MASN - Mid Atlantic Sports Network
- MavTV HD
- MGM+ Drive-in HD
- MGM+ HD (East)
- MGM+ Hits HD
- MGM+ Marquee
- MGM+ HD (West)
- MLB Network
- MLB Network Strike Zone
- MoreMAX (East)
- MoreMAX (West)
- MOTORTREND HD
- MSG National
- MSG Plus Zone 1
- MSG Plus HD Zone 2
- MTV2: Music Television (East)
- MTV2: Music Television HD
- MTV2: Music Television (West)
- MTV Classic
- MTV - Music Television (East)
- MTV - Music Television HD
- MTVLIVE
- mtv-U
- MTV - Music Television (West)
- National Geographic USA
- National Geographic Wild
- National Geographic Wild HD
- NBA TV
- NBC (Central)
- NBC (East)
- LX
- NBC Sports Bay Area
- NBC Sports Bay Area HD
- NBC Sports Bay Area Plus
- NBC Sports Boston
- NBC Sports Boston HD
- NBC Sports California
- NBC Sports Chicago HD
- NBC Sports Northwest
- NBC Sports Philadelphia
- NBC Sports Washington
- NBC Sports Washington HD
- NBC Sports Washington Plus HD
- NBC (West)
- Newsmax TV HD
- NewsNation SD
- Newsy
- NFL Network HD
- NFL RedZone
- NHL Network
- Nickelodeon (East)
- Nickelodeon HD
- Nickelodeon (West)
- Nick Jr
- Nick Jr HD
- Nick Music
- Nicktoons
- Nicktoons HD
- Olympic Channel
- One America News Network
- Outdoor Channel
- Outside Television HD
- Ovation
- Oprah Winfrey Network (East)
- Oprah Winfrey Network HD
- Oprah Winfrey Network (West)
- Oxygen (East)
- Oxygen HD
- Oxygen (West)
- Pac-12 Arizona HD
- Pac-12 Bay Area HD
- Pac-12 Los Angeles HD
- Pac-12 Mountain HD
- Pac-12 Network
- Pac-12 Network HD
- Pac-12 Oregon HD
- Pac-12 Washington HD
- Paramount Network (East)
- Paramount Network HD
- Paramount Network (West)
- PBS (East)
- PBS (West)
- PeopleTV
- POP
- POP HD
- QVC
- QVC2
- Revolt HD
- ROOT Sports Northwest
- Science
- Science Channel HD
- SEC Network HD
- Showtime 2 (East)
- Showtime 2 (West)
- Showtime (East)
- Showtime Extreme HD Stream
- Showtime Extreme (East)
- Showtime Extreme (West)
- Showtime Familyzone HD
- Showtime Next HD
- Showtime Showcase (East)
- Showtime Showcase (West)
- Showtime (West)
- Showtime Women HD
- SHO x BET
- SHO x BET HD
- Smithsonian HD Network
- Sony Movie Channel HD
- Spectrum SportsNet
- Spectrum SportsNet LA
- The Sportsman Channel HD
- Sportsnet East
- Sportsnet NY
- Sportsnet Ontario
- Sportsnet (Pacific)
- Sportsnet MST
- Stadium HD
- Stadium College Sports Atlantic
- Stadium College Sports Central
- Stadium College Sports Pacific
- Starz Cinema HD
- Starz Comedy HD
- Starz (East)
- Starz Edge
- Starz Encore Classic
- Starz Encore (East)
- Starz Encore (West)
- Starz in Black
- Starz Kids
- Starz (West)
- SundanceTV (East)
- SundanceTV HD
- Sundance Stream East
- SundanceTV (West)
- SYFY (East)
- Syfy HD
- SYFY (West)
- Tastemade [Str]
- TBS (East)
- TBS (West)
- Turner Classic Movies
- Teen Nick HD
- Tennis Channel
- Tennis Channel HD
- The Movie Channel (East)
- The Movie Channel (West)
- The Movie Channel Extra (East)
- The Movie Channel Extra (West)
- The Weather Channel
- The Weather Channel HD
- TLC (East)
- TLC HD (US)
- TLC (West)
- TNT (East)
- TNT (West)
- The Travel Channel (East)
- The Travel Channel HD
- The Travel Channel (West)
- Trinity Broadcasting Network
- truTV (East)
- truTV (West)
- TSN1
- TSN2
- TSN3
- TSN4
- TSN5
- TV Land (East)
- TV Land HD
- TV Land (West)
- TyC Sports International English
- Universal Kids HD
- UPtv HD
- USA Network (East)
- USA Network (West)
- VH1 (East)
- VH1 HD
- VH1 (West)
- Vice
- Vice Stream
- Vegas Sports & Information Network (VSIN)
- WE tv (East)
- WE tv Stream East
- WE tv (West)
- Yes Network
- Zona Futbol
- Univision Network (Central)
- Univision Network (Alaska)
- Univision Network (Hawaii)
- Telemundo (Central)
- Telemundo (Alaska)
- Telemundo (Hawaii)
- Baby TV
- beIN Sports En Español
- beIN Sports En Español HD
- CNN en Español
- Discovery en Español
- Discovery Familia HD
- El Gourmet
- ESPN Deportes
- ESPN Deportes HD
- Estrella TV
- Fox Deportes HD
- Galavision Cable Network (East)
- Galavision Cable Network HD
- Galavision Cable Network (West)
- GOLTV International HD
- HBO Latino
- History Channel En Español
- MTV España
- Nat Geo Mundo
- UNIVERSO HD
- Telefe Internacional
- Telemundo (East)
- Telemundo (West)
- TUDN
- TUDN HD
- TyC Sports International
- UniMas (East)
- UniMas (West)
- Univision Network (East)
- Univision Network (West)
- Video Rola HD
- WAPA America
- BeIN SPORTS 2 HD
-
\ No newline at end of file
From 196434f5f68f79166e24a32849c193a0095dc4d6 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Fri, 17 Jan 2025 21:00:51 +0300
Subject: [PATCH 06/19] Delete flixed.io.config.js
---
sites/flixed.io/flixed.io.config.js | 45 -----------------------------
1 file changed, 45 deletions(-)
delete mode 100644 sites/flixed.io/flixed.io.config.js
diff --git a/sites/flixed.io/flixed.io.config.js b/sites/flixed.io/flixed.io.config.js
deleted file mode 100644
index 8715a3a7..00000000
--- a/sites/flixed.io/flixed.io.config.js
+++ /dev/null
@@ -1,45 +0,0 @@
-const dayjs = require('dayjs')
-
-module.exports = {
- site: 'flixed.io',
- days: 1, // NOTE: changing the date in a request does not change the response
- url: function ({ date, channel }) {
- return `https://tv-guide.vercel.app/api/stationAirings?stationId=${
- channel.site_id
- }&startDateTime=${date.toJSON()}`
- },
- parser({ content }) {
- let programs = []
- let items = parseItems(content)
- items.forEach(item => {
- programs.push({
- title: item.program.title,
- description: item.program.longDescription,
- category: item.program.subType,
- image: parseImage(item),
- start: parseStart(item),
- stop: parseStop(item)
- })
- })
-
- return programs
- }
-}
-
-function parseImage(item) {
- const uri = item.program.preferredImage.uri
-
- return uri ? `https://adma.tmsimg.com/assets/${uri}` : null
-}
-
-function parseStart(item) {
- return dayjs(item.startTime)
-}
-
-function parseStop(item) {
- return dayjs(item.endTime)
-}
-
-function parseItems(content) {
- return JSON.parse(content)
-}
From f989ec2e57133c3d723849f0f531a7eba1cae5ff Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Fri, 17 Jan 2025 21:01:05 +0300
Subject: [PATCH 07/19] Delete flixed.io.test.js
---
sites/flixed.io/flixed.io.test.js | 47 -------------------------------
1 file changed, 47 deletions(-)
delete mode 100644 sites/flixed.io/flixed.io.test.js
diff --git a/sites/flixed.io/flixed.io.test.js b/sites/flixed.io/flixed.io.test.js
deleted file mode 100644
index 9be7c47f..00000000
--- a/sites/flixed.io/flixed.io.test.js
+++ /dev/null
@@ -1,47 +0,0 @@
-const { parser, url } = require('./flixed.io.config.js')
-const fs = require('fs')
-const path = require('path')
-const dayjs = require('dayjs')
-const utc = require('dayjs/plugin/utc')
-const customParseFormat = require('dayjs/plugin/customParseFormat')
-dayjs.extend(customParseFormat)
-dayjs.extend(utc)
-
-const date = dayjs.utc('2023-01-19', 'YYYY-MM-DD').startOf('d')
-const channel = {
- site_id: '108970',
- xmltv_id: 'VSiN.us'
-}
-
-it('can generate valid url', () => {
- expect(url({ date, channel })).toBe(
- 'https://tv-guide.vercel.app/api/stationAirings?stationId=108970&startDateTime=2023-01-19T00:00:00.000Z'
- )
-})
-
-it('can parse response', () => {
- const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'))
- let results = parser({ content, channel, date })
- results = results.map(p => {
- p.start = p.start.toJSON()
- p.stop = p.stop.toJSON()
- return p
- })
-
- expect(results[0]).toMatchObject({
- start: '2023-01-19T05:00:00.000Z',
- stop: '2023-01-19T06:00:00.000Z',
- title: 'The Greg Peterson Experience',
- category: 'Sports non-event',
- image: 'https://adma.tmsimg.com/assets/assets/p20628892_b_v13_aa.jpg?w=270&h=360',
- description: 'A different kind of sports betting.'
- })
-})
-
-it('can handle empty guide', () => {
- const results = parser({
- content: '[]'
- })
-
- expect(results).toMatchObject([])
-})
From 7b02fffc218d752906a84f489d58cbe04f98fa4b Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Fri, 17 Jan 2025 21:01:34 +0300
Subject: [PATCH 08/19] Delete readme.md
---
sites/flixed.io/readme.md | 15 ---------------
1 file changed, 15 deletions(-)
delete mode 100644 sites/flixed.io/readme.md
diff --git a/sites/flixed.io/readme.md b/sites/flixed.io/readme.md
deleted file mode 100644
index d8e738a4..00000000
--- a/sites/flixed.io/readme.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# flixed.io
-
-https://flixed.io/tv-guide
-
-### Download the guide
-
-```sh
-npm run grab --- --site=flixed.io
-```
-
-### Test
-
-```sh
-npm test --- flixed.io
-```
From b8c515bfcb65305bf04c930b8ea07ac1ffce0550 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Sat, 18 Jan 2025 01:07:00 +0300
Subject: [PATCH 09/19] Fix linter issues
---
sites/rikstv.no/readme.md | 42 +++----
sites/rikstv.no/rikstv.no.channels.xml | 166 ++++++++++++-------------
sites/rikstv.no/rikstv.no.config.js | 148 +++++++++++-----------
sites/rikstv.no/rikstv.no.test.js | 138 ++++++++++----------
4 files changed, 252 insertions(+), 242 deletions(-)
diff --git a/sites/rikstv.no/readme.md b/sites/rikstv.no/readme.md
index 31eb0b38..463a3282 100644
--- a/sites/rikstv.no/readme.md
+++ b/sites/rikstv.no/readme.md
@@ -1,21 +1,21 @@
-# rikstv.no
-
-https://play.rikstv.no/tv-guide
-
-### Download the guide
-
-```sh
-npm run grab --- --site=rikstv.no
-```
-
-### Update channel list
-
-```sh
-npm run channels:parse --- --config=./sites/rikstv.no/rikstv.no.config.js --output=./sites/rikstv.no/rikstv.no.channels.xml
-```
-
-### Test
-
-```sh
-npm test --- rikstv.no
-```
+# rikstv.no
+
+https://play.rikstv.no/tv-guide
+
+### Download the guide
+
+```sh
+npm run grab --- --site=rikstv.no
+```
+
+### Update channel list
+
+```sh
+npm run channels:parse --- --config=./sites/rikstv.no/rikstv.no.config.js --output=./sites/rikstv.no/rikstv.no.channels.xml
+```
+
+### Test
+
+```sh
+npm test --- rikstv.no
+```
diff --git a/sites/rikstv.no/rikstv.no.channels.xml b/sites/rikstv.no/rikstv.no.channels.xml
index 96aebc97..8e9e46c9 100644
--- a/sites/rikstv.no/rikstv.no.channels.xml
+++ b/sites/rikstv.no/rikstv.no.channels.xml
@@ -1,83 +1,83 @@
-
-
- BBC News
- Discovery
- TLC
- Disney Channel
- Eurosport 1
- FEM
- Frikanalen
- REX
- National Geographic
- NRK Super/3
- NRK1
- NRK1 Tegnspråk
- NRK2
- SVT1
- TV 2 Livsstil
- TV 2 Direkte
- TV 2 Nyheter
- TV 2 Zebra
- TV3
- TVNorge
- TV3+
- Visjon Norge
- VOX
- Animal Planet
- BBC Nordic
- TV6
- History Channel
- Eurosport Norge
- Nick Jr.
- Nickelodeon
- TV 2 Danmark
- DR2
- DR1
- SVT2
- TV4
- CNN
- Discovery Science
- Investigation Discovery
- Norway Live
- V Sport +
- V Sport 1
- V Sport 2
- V Sport 3
- Hits
- Stars
- SF-kanalen
- TV 2 Sport 1
- TV 2 Sport 2
- Sky News
- CNBC
- Deutsche Welle
- France 24
- NRK1 Sørlandet
- NRK1 Nordland
- NRK1 Midtnytt
- NRK1 Vestfold og Telemark
- NRK1 Vestlandsrevyen
- NRK1 Nordnytt
- NRK1 Innlandet
- MTV00s
- TV Nord
- Travel Channel
- Food Network
- Euronews
- Auto Motor og Sport TV
- Rikstoto Direkte
- TV Øst
- NRK1 Rogaland
- NRK1 Møre og Romsdal
- NRK1 Lydtekst
- NRK2 Lydtekst
- NRK3 Super Lydtekst
- Heim TV
- V sport golf
- NRK1 Underteksting
- NRK2 Underteksting
- Naturkanal1
- V Film Action
- V Film Premiere
- V Series
-
+
+
+ BBC News
+ Discovery
+ TLC
+ Disney Channel
+ Eurosport 1
+ FEM
+ Frikanalen
+ REX
+ National Geographic
+ NRK Super/3
+ NRK1
+ NRK1 Tegnspråk
+ NRK2
+ SVT1
+ TV 2 Livsstil
+ TV 2 Direkte
+ TV 2 Nyheter
+ TV 2 Zebra
+ TV3
+ TVNorge
+ TV3+
+ Visjon Norge
+ VOX
+ Animal Planet
+ BBC Nordic
+ TV6
+ History Channel
+ Eurosport Norge
+ Nick Jr.
+ Nickelodeon
+ TV 2 Danmark
+ DR2
+ DR1
+ SVT2
+ TV4
+ CNN
+ Discovery Science
+ Investigation Discovery
+ Norway Live
+ V Sport +
+ V Sport 1
+ V Sport 2
+ V Sport 3
+ Hits
+ Stars
+ SF-kanalen
+ TV 2 Sport 1
+ TV 2 Sport 2
+ Sky News
+ CNBC
+ Deutsche Welle
+ France 24
+ NRK1 Sørlandet
+ NRK1 Nordland
+ NRK1 Midtnytt
+ NRK1 Vestfold og Telemark
+ NRK1 Vestlandsrevyen
+ NRK1 Nordnytt
+ NRK1 Innlandet
+ MTV00s
+ TV Nord
+ Travel Channel
+ Food Network
+ Euronews
+ Auto Motor og Sport TV
+ Rikstoto Direkte
+ TV Øst
+ NRK1 Rogaland
+ NRK1 Møre og Romsdal
+ NRK1 Lydtekst
+ NRK2 Lydtekst
+ NRK3 Super Lydtekst
+ Heim TV
+ V sport golf
+ NRK1 Underteksting
+ NRK2 Underteksting
+ Naturkanal1
+ V Film Action
+ V Film Premiere
+ V Series
+
diff --git a/sites/rikstv.no/rikstv.no.config.js b/sites/rikstv.no/rikstv.no.config.js
index 29c64be7..b897473b 100644
--- a/sites/rikstv.no/rikstv.no.config.js
+++ b/sites/rikstv.no/rikstv.no.config.js
@@ -1,72 +1,76 @@
-const dayjs = require('dayjs')
-const utc = require('dayjs/plugin/utc')
-const axios = require('axios')
-
-dayjs.extend(utc)
-
-module.exports = {
- site: 'rikstv.no',
- days: 3,
- request: {
- cache: {
- ttl: 60 * 60 * 1000 // 1 hour
- }
- },
- url({ channel, date }) {
- return `https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format('YYYY-MM-DD')}`
- },
- parser: function ({ content }) {
- let data
- try {
- data = JSON.parse(content)
- } catch (error) {
- console.error('Error parsing JSON:', error)
- return []
- }
-
- const programs = []
-
- if (data && Array.isArray(data)) {
- data.forEach(item => {
- if (!item) return
- //const start = dayjs.utc(item.broadcastedTime)
- //const stop = dayjs.utc(item.broadcastedTimeEnd)
-
- programs.push({
- title: item.seriesName,
- sub_title: item.name,
- description: item.description || item.synopsis,
- season: item.season || null,
- episode: item.episode || null,
- category: item.genres,
- actors: item.actors,
- directors: item.director || item.directors,
- icon: item.imagePackUri,
- start: item.broadcastedTime,
- stop: item.broadcastedTimeEnd
- })
- })
- }
-
- return programs
- },
- async channels() {
- try {
- const response = await axios.get('https://play.rikstv.no/api/content-search/1/channel?includePrograms=false')
- if (!response.data || !Array.isArray(response.data)) {
- console.error('Error: No channels data found')
- return []
- }
- return response.data.map(item => {
- return {
- lang: 'no',
- site_id: item.channelId,
- name: item.serviceName
- }
- })
- } catch (error) {
- console.error('Error fetching channels:', error)
- return []
- }
- }
-}
+const dayjs = require('dayjs')
+const utc = require('dayjs/plugin/utc')
+const axios = require('axios')
+
+dayjs.extend(utc)
+
+module.exports = {
+ site: 'rikstv.no',
+ days: 3,
+ request: {
+ cache: {
+ ttl: 60 * 60 * 1000 // 1 hour
+ }
+ },
+ url({ channel, date }) {
+ return `https://play.rikstv.no/api/content-search/1/channel/${
+ channel.site_id
+ }/epg/${date.format('YYYY-MM-DD')}`
+ },
+ parser: function ({ content }) {
+ let data
+ try {
+ data = JSON.parse(content)
+ } catch (error) {
+ console.error('Error parsing JSON:', error)
+ return []
+ }
+
+ const programs = []
+
+ if (data && Array.isArray(data)) {
+ data.forEach(item => {
+ if (!item) return
+ //const start = dayjs.utc(item.broadcastedTime)
+ //const stop = dayjs.utc(item.broadcastedTimeEnd)
+
+ programs.push({
+ title: item.seriesName,
+ sub_title: item.name,
+ description: item.description || item.synopsis,
+ season: item.season || null,
+ episode: item.episode || null,
+ category: item.genres,
+ actors: item.actors,
+ directors: item.director || item.directors,
+ icon: item.imagePackUri,
+ start: item.broadcastedTime,
+ stop: item.broadcastedTimeEnd
+ })
+ })
+ }
+
+ return programs
+ },
+ async channels() {
+ try {
+ const response = await axios.get(
+ 'https://play.rikstv.no/api/content-search/1/channel?includePrograms=false'
+ )
+ if (!response.data || !Array.isArray(response.data)) {
+ console.error('Error: No channels data found')
+ return []
+ }
+ return response.data.map(item => {
+ return {
+ lang: 'no',
+ site_id: item.channelId,
+ name: item.serviceName
+ }
+ })
+ } catch (error) {
+ console.error('Error fetching channels:', error)
+ return []
+ }
+ }
+}
diff --git a/sites/rikstv.no/rikstv.no.test.js b/sites/rikstv.no/rikstv.no.test.js
index b37143e2..ce0f0959 100644
--- a/sites/rikstv.no/rikstv.no.test.js
+++ b/sites/rikstv.no/rikstv.no.test.js
@@ -1,66 +1,72 @@
-const { parser, url } = require('./rikstv.no.config.js')
-const dayjs = require('dayjs')
-const utc = require('dayjs/plugin/utc')
-const customParseFormat = require('dayjs/plugin/customParseFormat')
-
-dayjs.extend(customParseFormat)
-dayjs.extend(utc)
-
-const date = dayjs.utc('2025-01-14', 'YYYY-MM-DD').startOf('d')
-const channel = {
- site_id: '47',
- xmltv_id: 'NRK1.no'
-}
-
-describe('rikstv.no Module Tests', () => {
- it('can generate valid url', () => {
- expect(url({ date, channel })).toBe(`https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format('YYYY-MM-DD')}`)
- })
-
- it('can parse response', () => {
- const content = JSON.stringify([
- {
- seriesName: 'Vakre og ville Oman',
- name: 'Vakre og ville Oman',
- description: 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
- season: 1,
- episode: 1,
- genres: ['Dokumentar', 'Fakta', 'Natur'],
- actors: ['Gergana Muskalla'],
- director: 'Stefania Muller',
- imagePackUri: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
- broadcastedTime: '2025-01-13T23:00:00Z',
- broadcastedTimeEnd: '2025-01-13T23:55:00Z'
- }
- ])
-
- const result = parser({ content }).map(p => {
- p.start = dayjs(p.start).toISOString()
- p.stop = dayjs(p.stop).toISOString()
- return p
- })
-
- expect(result).toMatchObject([
- {
- title: 'Vakre og ville Oman',
- sub_title: 'Vakre og ville Oman',
- description: 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
- season: 1,
- episode: 1,
- category: ['Dokumentar', 'Fakta', 'Natur'],
- actors: ['Gergana Muskalla'],
- directors: 'Stefania Muller',
- icon: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
- start: '2025-01-13T23:00:00.000Z',
- stop: '2025-01-13T23:55:00.000Z'
- }
- ])
- })
-
- it('can handle empty guide', () => {
- const result = parser({
- content: '[]'
- })
- expect(result).toMatchObject([])
- })
-})
+const { parser, url } = require('./rikstv.no.config.js')
+const dayjs = require('dayjs')
+const utc = require('dayjs/plugin/utc')
+const customParseFormat = require('dayjs/plugin/customParseFormat')
+
+dayjs.extend(customParseFormat)
+dayjs.extend(utc)
+
+const date = dayjs.utc('2025-01-14', 'YYYY-MM-DD').startOf('d')
+const channel = {
+ site_id: '47',
+ xmltv_id: 'NRK1.no'
+}
+
+describe('rikstv.no Module Tests', () => {
+ it('can generate valid url', () => {
+ expect(url({ date, channel })).toBe(
+ `https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format(
+ 'YYYY-MM-DD'
+ )}`
+ )
+ })
+
+ it('can parse response', () => {
+ const content = JSON.stringify([
+ {
+ seriesName: 'Vakre og ville Oman',
+ name: 'Vakre og ville Oman',
+ description:
+ 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
+ season: 1,
+ episode: 1,
+ genres: ['Dokumentar', 'Fakta', 'Natur'],
+ actors: ['Gergana Muskalla'],
+ director: 'Stefania Muller',
+ imagePackUri: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
+ broadcastedTime: '2025-01-13T23:00:00Z',
+ broadcastedTimeEnd: '2025-01-13T23:55:00Z'
+ }
+ ])
+
+ const result = parser({ content }).map(p => {
+ p.start = dayjs(p.start).toISOString()
+ p.stop = dayjs(p.stop).toISOString()
+ return p
+ })
+
+ expect(result).toMatchObject([
+ {
+ title: 'Vakre og ville Oman',
+ sub_title: 'Vakre og ville Oman',
+ description:
+ 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
+ season: 1,
+ episode: 1,
+ category: ['Dokumentar', 'Fakta', 'Natur'],
+ actors: ['Gergana Muskalla'],
+ directors: 'Stefania Muller',
+ icon: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
+ start: '2025-01-13T23:00:00.000Z',
+ stop: '2025-01-13T23:55:00.000Z'
+ }
+ ])
+ })
+
+ it('can handle empty guide', () => {
+ const result = parser({
+ content: '[]'
+ })
+ expect(result).toMatchObject([])
+ })
+})
From 96b6a211504714a1cc119dcb4d09a1c5c0cbd2c4 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Sat, 18 Jan 2025 01:07:32 +0300
Subject: [PATCH 10/19] Delete kplus.vn.channels.xml
---
sites/kplus.vn/kplus.vn.channels.xml | 29 ----------------------------
1 file changed, 29 deletions(-)
delete mode 100644 sites/kplus.vn/kplus.vn.channels.xml
diff --git a/sites/kplus.vn/kplus.vn.channels.xml b/sites/kplus.vn/kplus.vn.channels.xml
deleted file mode 100644
index 445ca8d5..00000000
--- a/sites/kplus.vn/kplus.vn.channels.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
- AFC
- AXN HD
- CARTOON NETWORK
- DISCOVERY CHANNEL
- HBO HD
- HTV7
- HTV9
- KBS WORLD
- K+CINE HD
- K+LIFE HD
- K+PM HD
- K+PC HD
- NHK WORLD JAPAN
- SCTV PHIMTONGHOP
- VTC7-TODAY TV
- TV5 MONDE
- VTC1
- VTV2
- VTV3 HD
- VTV4
- VTV6 HD
- VTV7
- VTV8
- VTV9
- VTVCab1-GIAITRITV
- YOU TV
-
From 4b744355f961050d909bcc23bf4482a663b4a29e Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Sat, 18 Jan 2025 01:07:45 +0300
Subject: [PATCH 11/19] Delete kplus.vn.config.js
---
sites/kplus.vn/kplus.vn.config.js | 79 -------------------------------
1 file changed, 79 deletions(-)
delete mode 100644 sites/kplus.vn/kplus.vn.config.js
diff --git a/sites/kplus.vn/kplus.vn.config.js b/sites/kplus.vn/kplus.vn.config.js
deleted file mode 100644
index 7fef7448..00000000
--- a/sites/kplus.vn/kplus.vn.config.js
+++ /dev/null
@@ -1,79 +0,0 @@
-const axios = require('axios')
-const dayjs = require('dayjs')
-const utc = require('dayjs/plugin/utc')
-const timezone = require('dayjs/plugin/timezone')
-
-dayjs.extend(timezone)
-dayjs.extend(utc)
-
-const API_ENDPOINT = 'https://www.kplus.vn/Schedule/getSchedule'
-
-module.exports = {
- site: 'kplus.vn',
- days: 2,
- url: API_ENDPOINT,
- request: {
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded'
- },
- data({ date }) {
- const params = new URLSearchParams()
- params.append('date', date.format('D-M-YYYY'))
- params.append('categories', '')
-
- return params
- },
- method: 'POST'
- },
- parser: function ({ content, channel }) {
- let programs = []
- const items = parseItems(content, channel)
- items.forEach(item => {
- const prev = programs[programs.length - 1]
- const start = parseStart(item)
- const stop = start.add(1, 'h')
- if (prev) prev.stop = start
- programs.push({
- title: item.Program.Name,
- image: item.Program.Images,
- category: item.Program.Genres,
- start,
- stop
- })
- })
-
- return programs
- },
- async channels() {
- const params = new URLSearchParams()
- params.append('date', dayjs().format('D-M-YYYY'))
- params.append('categories', '')
- const data = await axios
- .post(API_ENDPOINT, params, {
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded'
- }
- })
- .then(r => r.data)
- .catch(console.log)
-
- return data.Channels.map(item => {
- return {
- lang: 'vi',
- site_id: item.Id,
- name: item.Name
- }
- })
- }
-}
-
-function parseStart(item) {
- return dayjs.tz(item.ShowingTime, 'Asia/Ho_Chi_Minh')
-}
-
-function parseItems(content, channel) {
- const data = JSON.parse(content)
- if (!data || !Array.isArray(data.Schedules)) return []
-
- return data.Schedules.filter(i => i.ChannelId == channel.site_id)
-}
From 65147a45e9855d2ebd9828c4bd38dd5fb36fb737 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Sat, 18 Jan 2025 01:07:57 +0300
Subject: [PATCH 12/19] Delete kplus.vn.test.js
---
sites/kplus.vn/kplus.vn.test.js | 65 ---------------------------------
1 file changed, 65 deletions(-)
delete mode 100644 sites/kplus.vn/kplus.vn.test.js
diff --git a/sites/kplus.vn/kplus.vn.test.js b/sites/kplus.vn/kplus.vn.test.js
deleted file mode 100644
index 4eebea9d..00000000
--- a/sites/kplus.vn/kplus.vn.test.js
+++ /dev/null
@@ -1,65 +0,0 @@
-const { parser, url, request } = require('./kplus.vn.config.js')
-const dayjs = require('dayjs')
-const utc = require('dayjs/plugin/utc')
-const customParseFormat = require('dayjs/plugin/customParseFormat')
-dayjs.extend(customParseFormat)
-dayjs.extend(utc)
-
-const date = dayjs.utc('2022-03-15', 'YYYY-MM-DD').startOf('d')
-const channel = {
- site_id: '7019',
- xmltv_id: 'KPlus1HD.vn'
-}
-
-it('can generate valid url', () => {
- expect(url).toBe('https://www.kplus.vn/Schedule/getSchedule')
-})
-
-it('can generate valid request headers', () => {
- expect(request.headers).toMatchObject({
- 'Content-Type': 'application/x-www-form-urlencoded'
- })
-})
-
-it('can generate valid request data', () => {
- const data = request.data({ date })
-
- expect(data.get('date')).toBe('15-3-2022')
- expect(data.get('categories')).toBe('')
-})
-
-it('can parse response', () => {
- const content =
- '{"SchedulesCount":1105,"ChannelsCount":28,"Schedules":[{"Id":12195,"ChannelId":7019,"ProgramId":35111026,"EpgProgramId":"1252496\\r","ShowingTime":"2022-03-15T06:15:00","EpgBroadcastId":"HD_ENT_DOC_LNO_21_2649421_2652183_4383385_OnAir","EpgId":"HD_ENT_DOC_LNO_21_2649421_2652183_4383385_OnAir","IsDeleted":false,"CreatedOn":"2022-03-15T06:22:45","UpdatedOn":"0001-01-01T00:00:00","Channel":{"Id":7019,"Name":"K+1 HD","Image":"https://kplus-website-production-cdn.azureedge.net/content/upload/7/images-mkt/logo-k-1-hd-new.png","LiveUrlSegment":"highlights/broadcast-schedule/K-1-HD","FeatureImage":"https://kplus-website-production-cdn.azureedge.net/content/upload/7/images-mkt/logo-k-1-hd-new.png","EpgId":null,"IsOTTEnabled":false,"StartOver":0,"DisplayOrder":0},"Program":{"Id":35111026,"Name":"WEEKLY FILMS AND STARS, EP740","BodyContent":"","Cast":"","Director":"","Duration":0,"EpgId":"93701","EpgProgramId":null,"Episode":0,"Genres":"Documentary","Images":"https://img.kplus.vn/images?filename=Media/HDVN/2022_02/ENT_DOC_LNO_21_2649421_2652183_2652183.jpg","IsFeatured":false,"IsOTTEnabled":true,"IsRebroadcast":false,"ShortDescription":"","SubTitle":"","Trailers":"","UrlSegment":"highlights/broadcast-schedule/93701/weekly-films-and-stars-ep740","CreatedOn":"2022-03-16T00:15:45","UpdatedOn":"2022-03-16T00:15:45","ParentalRating":null},"RelatedSchedules":null},{"Id":12196,"ChannelId":7019,"ProgramId":35111279,"EpgProgramId":"798685\\r","ShowingTime":"2022-03-15T07:00:00","EpgBroadcastId":"HD_MOV_COM__2632318_4383386_OnAir","EpgId":"HD_MOV_COM__2632318_4383386_OnAir","IsDeleted":false,"CreatedOn":"2022-03-15T07:02:46","UpdatedOn":"0001-01-01T00:00:00","Channel":{"Id":7019,"Name":"K+1 HD","Image":"https://kplus-website-production-cdn.azureedge.net/content/upload/7/images-mkt/logo-k-1-hd-new.png","LiveUrlSegment":"highlights/broadcast-schedule/K-1-HD","FeatureImage":"https://kplus-website-production-cdn.azureedge.net/content/upload/7/images-mkt/logo-k-1-hd-new.png","EpgId":null,"IsOTTEnabled":false,"StartOver":0,"DisplayOrder":0},"Program":{"Id":35111279,"Name":"ST. VINCENT","BodyContent":"","Cast":"Bill Murray, Melissa McCarthy, Naomi Watts","Director":"Theodore Melfi","Duration":0,"EpgId":"93959","EpgProgramId":null,"Episode":0,"Genres":"Comedy","Images":"https://img.kplus.vn/images?filename=Media/HDVN/2020_05/MOV_COM__2632318_2632318.jpg","IsFeatured":false,"IsOTTEnabled":true,"IsRebroadcast":false,"ShortDescription":"","SubTitle":"","Trailers":"","UrlSegment":"highlights/broadcast-schedule/93959/st-vincent","CreatedOn":"2022-03-16T00:15:45","UpdatedOn":"2022-03-16T00:15:45","ParentalRating":null},"RelatedSchedules":null}]}'
- const result = parser({ content, channel }).map(p => {
- p.start = p.start.toJSON()
- p.stop = p.stop.toJSON()
- return p
- })
-
- expect(result).toMatchObject([
- {
- start: '2022-03-14T23:15:00.000Z',
- stop: '2022-03-15T00:00:00.000Z',
- title: 'WEEKLY FILMS AND STARS, EP740',
- image:
- 'https://img.kplus.vn/images?filename=Media/HDVN/2022_02/ENT_DOC_LNO_21_2649421_2652183_2652183.jpg',
- category: 'Documentary'
- },
- {
- start: '2022-03-15T00:00:00.000Z',
- stop: '2022-03-15T01:00:00.000Z',
- title: 'ST. VINCENT',
- image: 'https://img.kplus.vn/images?filename=Media/HDVN/2020_05/MOV_COM__2632318_2632318.jpg',
- category: 'Comedy'
- }
- ])
-})
-
-it('can handle empty guide', () => {
- const result = parser({
- content: '{"SchedulesCount":0,"ChannelsCount":0,"Schedules":[],"Channels":[],"MinDuration":0}',
- channel
- })
- expect(result).toMatchObject([])
-})
From 2f2485d9c04eb54485d5edaa74e652652979a7d9 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Sat, 18 Jan 2025 01:08:12 +0300
Subject: [PATCH 13/19] Delete readme.md
---
sites/kplus.vn/readme.md | 21 ---------------------
1 file changed, 21 deletions(-)
delete mode 100644 sites/kplus.vn/readme.md
diff --git a/sites/kplus.vn/readme.md b/sites/kplus.vn/readme.md
deleted file mode 100644
index 1ac0bb5e..00000000
--- a/sites/kplus.vn/readme.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# kplus.vn
-
-https://www.kplus.vn/highlights/broadcast-schedule
-
-### Download the guide
-
-```sh
-npm run grab --- --site=kplus.vn
-```
-
-### Update channel list
-
-```sh
-npm run channels:parse --- --config=./sites/kplus.vn/kplus.vn.config.js --output=./sites/kplus.vn/kplus.vn.channels.xml
-```
-
-### Test
-
-```sh
-npm test --- kplus.vn
-```
From a5436a5928674a0f7063669698a9be3d2b9cf4c3 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Sun, 19 Jan 2025 17:12:37 +0300
Subject: [PATCH 14/19] Create __data__
---
sites/epg.telemach.ba/__data__/content.json | 1 +
sites/epg.telemach.ba/__data__/no_content.json | 1 +
sites/epg.telemach.ba/__data__/no_session.json | 1 +
sites/epg.telemach.ba/__data__/session.json | 1 +
4 files changed, 4 insertions(+)
create mode 100644 sites/epg.telemach.ba/__data__/content.json
create mode 100644 sites/epg.telemach.ba/__data__/no_content.json
create mode 100644 sites/epg.telemach.ba/__data__/no_session.json
create mode 100644 sites/epg.telemach.ba/__data__/session.json
diff --git a/sites/epg.telemach.ba/__data__/content.json b/sites/epg.telemach.ba/__data__/content.json
new file mode 100644
index 00000000..917ebd7f
--- /dev/null
+++ b/sites/epg.telemach.ba/__data__/content.json
@@ -0,0 +1 @@
+{"1607":[{"id":69539297,"title":"DW Euromaxx","originalTitle":"Euromaxx","shortDescription":"Euromaxx je lifestyle Europe magazine, koji nam donosi zanimljivosti iz evropskih gradova, priče o načinu života ljudi i upoznaje nas sa njihovim kulturama.","images":[{"path":"/2021/02/18/06/05/21/stb_xl_cd4f72e01d308ecce782e29b69af7de6707b9e85.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/18/06/05/22/xl_cd4f72e01d308ecce782e29b69af7de6707b9e85.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/18/06/05/22/l_cd4f72e01d308ecce782e29b69af7de6707b9e85.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/18/06/05/22/m_cd4f72e01d308ecce782e29b69af7de6707b9e85.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/18/06/05/23/s_cd4f72e01d308ecce782e29b69af7de6707b9e85.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/18/06/05/23/stb_fhd_cd4f72e01d308ecce782e29b69af7de6707b9e85.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T00:00:00.000+0000","endTime":"2025-01-20T00:30:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69539281,"title":"Najbolje iz Hrvatske","originalTitle":"Najbolje iz Hrvatske","shortDescription":"Novi putopisno gastronomski magazin N1 TV koji vam nudi okus, miris i pogled na najljepša mjesta i krajolike mora, otoka, ravnica Slavonije i kontinentalne Hrvatske, uz predstavljanje autohtone hrane,...","images":[{"path":"/2021/02/20/10/02/01/stb_xl_9d095ba35faa6165ae763528d35f7a789b37d8c3.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/02/01/xl_9d095ba35faa6165ae763528d35f7a789b37d8c3.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/02/01/l_9d095ba35faa6165ae763528d35f7a789b37d8c3.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/02/02/m_9d095ba35faa6165ae763528d35f7a789b37d8c3.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/02/02/s_9d095ba35faa6165ae763528d35f7a789b37d8c3.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/02/02/stb_fhd_9d095ba35faa6165ae763528d35f7a789b37d8c3.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T00:30:00.000+0000","endTime":"2025-01-20T01:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69539260,"title":"Golf weekly","originalTitle":"Golf weekly","shortDescription":"Pregled najzanimljivijih turnira u svijetu golfa.","images":[{"path":"/2021/02/19/17/39/27/stb_xl_67fe06ed6117cc6faab55f42d1e2de832c221006.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/27/xl_67fe06ed6117cc6faab55f42d1e2de832c221006.jpg","width":1552,"height":873,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/27/l_67fe06ed6117cc6faab55f42d1e2de832c221006.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/28/m_67fe06ed6117cc6faab55f42d1e2de832c221006.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/28/s_67fe06ed6117cc6faab55f42d1e2de832c221006.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/28/stb_fhd_67fe06ed6117cc6faab55f42d1e2de832c221006.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T01:00:00.000+0000","endTime":"2025-01-20T02:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69539274,"title":"Točka na tjedan","originalTitle":"Točka na tjedan","shortDescription":"Trosatni televizijski format, predviđen za intervjue sa vodećim političkim ličnostima.","images":[{"path":"/2021/12/10/17/22/36/stb_xl_bf5535d32189e995bb0241e38b41fb9272d6da27_b688a1d67700bd62020f8818e3a0b129.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/12/10/17/22/37/xl_bf5535d32189e995bb0241e38b41fb9272d6da27_b688a1d67700bd62020f8818e3a0b129.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/12/10/17/22/37/l_bf5535d32189e995bb0241e38b41fb9272d6da27_b688a1d67700bd62020f8818e3a0b129.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/12/10/17/22/38/m_bf5535d32189e995bb0241e38b41fb9272d6da27_b688a1d67700bd62020f8818e3a0b129.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/12/10/17/22/39/s_bf5535d32189e995bb0241e38b41fb9272d6da27_b688a1d67700bd62020f8818e3a0b129.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/12/10/17/22/39/stb_fhd_bf5535d32189e995bb0241e38b41fb9272d6da27_b688a1d67700bd62020f8818e3a0b129.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T02:00:00.000+0000","endTime":"2025-01-20T02:40:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69539278,"title":"DW Europeo","originalTitle":"DW Europeo","shortDescription":"Reportaža, analiza, osobni pogledi - magazin Europeo otkriva kako političke odluke zaista utječu na život ljudi.","images":[{"path":"/2020/01/22/15/09/37/stb_xl_2bb446f20f872e4283a0d574a2c4feea34cf1d6c.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2020/01/22/15/09/37/xl_2bb446f20f872e4283a0d574a2c4feea34cf1d6c.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2020/01/22/15/09/38/l_2bb446f20f872e4283a0d574a2c4feea34cf1d6c.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2020/01/22/15/09/38/m_2bb446f20f872e4283a0d574a2c4feea34cf1d6c.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2020/01/22/15/09/38/s_2bb446f20f872e4283a0d574a2c4feea34cf1d6c.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2020/01/22/15/09/39/stb_fhd_2bb446f20f872e4283a0d574a2c4feea34cf1d6c.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T02:40:00.000+0000","endTime":"2025-01-20T03:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69539316,"title":"Scena vikend","originalTitle":"Scena","shortDescription":"Scena svakodnevno prati i osluškuje puls tri metropole regiona i donosi pregled zbivanja iz Sarajeva, Zagreba i Beograda. Gledaocima donosimo zanimljivosti iz svijeta zabave, kulture, i umjetnosti.","images":[{"path":"/2025/01/16/14/45/58/stb_xl_e7286154d52511a8660cdf96267cb16ccda62bb4.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/45/59/xl_e7286154d52511a8660cdf96267cb16ccda62bb4.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/46/00/l_e7286154d52511a8660cdf96267cb16ccda62bb4.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/46/01/m_e7286154d52511a8660cdf96267cb16ccda62bb4.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/46/02/s_e7286154d52511a8660cdf96267cb16ccda62bb4.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/46/03/stb_fhd_e7286154d52511a8660cdf96267cb16ccda62bb4.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T03:00:00.000+0000","endTime":"2025-01-20T03:10:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69539305,"title":"Fenomeni","originalTitle":"Fenomeni","shortDescription":"Interesantne I životne priče vratiće nas u prošlost i sačuvati ih od zaborava.","images":[{"path":"/2022/08/18/17/46/14/stb_xl_fb01619a51a4ef07c99413f2a6df12fc87b271dd.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/08/18/17/46/14/xl_fb01619a51a4ef07c99413f2a6df12fc87b271dd.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/08/18/17/46/14/l_fb01619a51a4ef07c99413f2a6df12fc87b271dd.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/08/18/17/46/14/m_fb01619a51a4ef07c99413f2a6df12fc87b271dd.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/08/18/17/46/15/s_fb01619a51a4ef07c99413f2a6df12fc87b271dd.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/08/18/17/46/15/stb_fhd_fb01619a51a4ef07c99413f2a6df12fc87b271dd.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T03:10:00.000+0000","endTime":"2025-01-20T03:22:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69539311,"title":"DW Shift","originalTitle":"Shift - Living in the Digital Age","shortDescription":"Tjedni magazin koji nam donosi najnovije vijesti vezane za Internet.","images":[{"path":"/2023/06/09/13/07/53/stb_xl_0849d5d70c1337651b85b6335e340e15bd5d6a73_340fc454bc73019d052cf936ebee5da3.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/06/09/13/07/54/xl_0849d5d70c1337651b85b6335e340e15bd5d6a73_340fc454bc73019d052cf936ebee5da3.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/06/09/13/07/55/l_0849d5d70c1337651b85b6335e340e15bd5d6a73_340fc454bc73019d052cf936ebee5da3.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/06/09/13/07/55/m_0849d5d70c1337651b85b6335e340e15bd5d6a73_340fc454bc73019d052cf936ebee5da3.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/06/09/13/07/56/s_0849d5d70c1337651b85b6335e340e15bd5d6a73_340fc454bc73019d052cf936ebee5da3.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/06/09/13/07/57/stb_fhd_0849d5d70c1337651b85b6335e340e15bd5d6a73_340fc454bc73019d052cf936ebee5da3.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T03:22:00.000+0000","endTime":"2025-01-20T03:35:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[209],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69539293,"title":"Movie top ten","originalTitle":"Movie top 10","shortDescription":"Tjedni presjek svjetskih i domaćih kino top lista, aktualnih blockbustera i ekskluzivni traileri i najave novih filmova, čije nas premijere očekuju u nastupajućem periodu.","images":[{"path":"/2021/02/19/17/39/19/stb_xl_7e13b08cf83527baaee9b82eb397a757ed73485b.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/19/xl_7e13b08cf83527baaee9b82eb397a757ed73485b.jpg","width":1552,"height":873,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/19/l_7e13b08cf83527baaee9b82eb397a757ed73485b.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/20/m_7e13b08cf83527baaee9b82eb397a757ed73485b.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/20/s_7e13b08cf83527baaee9b82eb397a757ed73485b.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/21/stb_fhd_7e13b08cf83527baaee9b82eb397a757ed73485b.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T03:35:00.000+0000","endTime":"2025-01-20T04:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[206],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69539267,"title":"DW Euromaxx","originalTitle":"Euromaxx","shortDescription":"Euromaxx je lifestyle Europe magazine, koji nam donosi zanimljivosti iz evropskih gradova, priče o načinu života ljudi i upoznaje nas sa njihovim kulturama.","images":[{"path":"/2021/02/18/06/05/21/stb_xl_cd4f72e01d308ecce782e29b69af7de6707b9e85.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/18/06/05/22/xl_cd4f72e01d308ecce782e29b69af7de6707b9e85.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/18/06/05/22/l_cd4f72e01d308ecce782e29b69af7de6707b9e85.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/18/06/05/22/m_cd4f72e01d308ecce782e29b69af7de6707b9e85.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/18/06/05/23/s_cd4f72e01d308ecce782e29b69af7de6707b9e85.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/18/06/05/23/stb_fhd_cd4f72e01d308ecce782e29b69af7de6707b9e85.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T04:00:00.000+0000","endTime":"2025-01-20T04:30:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69539324,"title":"CNN Shows","originalTitle":"CNN","shortDescription":"Pregled najnovijih emisija CNN produkcije.","images":[{"path":"/2025/01/16/14/46/18/stb_xl_8e7a72029e57dc42abd874d343f08d71980697df.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/46/19/xl_8e7a72029e57dc42abd874d343f08d71980697df.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/46/20/l_8e7a72029e57dc42abd874d343f08d71980697df.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/46/21/m_8e7a72029e57dc42abd874d343f08d71980697df.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/46/22/s_8e7a72029e57dc42abd874d343f08d71980697df.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/46/23/stb_fhd_8e7a72029e57dc42abd874d343f08d71980697df.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T04:30:00.000+0000","endTime":"2025-01-20T05:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69539252,"title":"Tomorrow Today","originalTitle":"Tomorrow Today","shortDescription":"Naučni program koji se bavi savremenim istraživačkim temama.","images":[{"path":"/2022/09/20/11/54/01/stb_xl_1ac99d01bf9f89a31a17a56dc0cc34108bd3bf25_bcba631f007ba5febbdda5804dbfa626.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/09/20/11/54/01/xl_1ac99d01bf9f89a31a17a56dc0cc34108bd3bf25_bcba631f007ba5febbdda5804dbfa626.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/09/20/11/54/01/l_1ac99d01bf9f89a31a17a56dc0cc34108bd3bf25_bcba631f007ba5febbdda5804dbfa626.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/09/20/11/54/01/m_1ac99d01bf9f89a31a17a56dc0cc34108bd3bf25_bcba631f007ba5febbdda5804dbfa626.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/09/20/11/54/01/s_1ac99d01bf9f89a31a17a56dc0cc34108bd3bf25_bcba631f007ba5febbdda5804dbfa626.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/09/20/11/54/02/stb_fhd_1ac99d01bf9f89a31a17a56dc0cc34108bd3bf25_bcba631f007ba5febbdda5804dbfa626.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T05:00:00.000+0000","endTime":"2025-01-20T05:30:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[207],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69539289,"title":"DW Europeo","originalTitle":"DW Europeo","shortDescription":"Reportaža, analiza, osobni pogledi - magazin Europeo otkriva kako političke odluke zaista utječu na život ljudi.","images":[{"path":"/2020/01/22/15/09/37/stb_xl_2bb446f20f872e4283a0d574a2c4feea34cf1d6c.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2020/01/22/15/09/37/xl_2bb446f20f872e4283a0d574a2c4feea34cf1d6c.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2020/01/22/15/09/38/l_2bb446f20f872e4283a0d574a2c4feea34cf1d6c.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2020/01/22/15/09/38/m_2bb446f20f872e4283a0d574a2c4feea34cf1d6c.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2020/01/22/15/09/38/s_2bb446f20f872e4283a0d574a2c4feea34cf1d6c.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2020/01/22/15/09/39/stb_fhd_2bb446f20f872e4283a0d574a2c4feea34cf1d6c.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T05:30:00.000+0000","endTime":"2025-01-20T06:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567511,"title":"SK vesti","originalTitle":null,"shortDescription":"Aktualne sportske vijesti iz zemlje, regije i svijeta.","images":[{"path":"/2021/02/19/17/39/12/stb_xl_d3b0aa7825d8d43607669ea757ed3da8b938f2dc.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/12/xl_d3b0aa7825d8d43607669ea757ed3da8b938f2dc.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/12/l_d3b0aa7825d8d43607669ea757ed3da8b938f2dc.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/12/m_d3b0aa7825d8d43607669ea757ed3da8b938f2dc.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/13/s_d3b0aa7825d8d43607669ea757ed3da8b938f2dc.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/13/stb_fhd_d3b0aa7825d8d43607669ea757ed3da8b938f2dc.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T06:00:00.000+0000","endTime":"2025-01-20T06:25:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[205],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567504,"title":"Pregled dana","originalTitle":"Pregled dana","shortDescription":"Pregled dana, dinamična emisiju koja će vam donositi ključne vijesti dana s analizama i kontekstom potrebnim za razumijevanjem događaja kojima svjedočimo.","images":[{"path":"/2024/09/18/08/42/58/stb_xl_pregled_dana_still_2_1_.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/42/59/xl_pregled_dana_still_2_1_.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/43/00/l_pregled_dana_still_2_1_.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/43/01/m_pregled_dana_still_2_1_.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/43/03/s_pregled_dana_still_2_1_.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/43/04/stb_fhd_pregled_dana_still_2_1_.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T06:25:00.000+0000","endTime":"2025-01-20T07:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567494,"title":"Novi dan","originalTitle":"Novi dan","shortDescription":"Uživo iz tri studija, Beograda, Zagreba i Sarajeva, ova emisija donosi aktualne informacije, nove priče i stručne analize.","images":[{"path":"/2023/11/03/11/47/25/stb_xl_1f5d761e468b9f9934d6cd7d4f157c55c6a00fec_340fc454bc73019d052cf936ebee5da3.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/27/xl_1f5d761e468b9f9934d6cd7d4f157c55c6a00fec_340fc454bc73019d052cf936ebee5da3.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/28/l_1f5d761e468b9f9934d6cd7d4f157c55c6a00fec_340fc454bc73019d052cf936ebee5da3.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/30/m_1f5d761e468b9f9934d6cd7d4f157c55c6a00fec_340fc454bc73019d052cf936ebee5da3.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/31/s_1f5d761e468b9f9934d6cd7d4f157c55c6a00fec_340fc454bc73019d052cf936ebee5da3.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/32/stb_fhd_1f5d761e468b9f9934d6cd7d4f157c55c6a00fec_340fc454bc73019d052cf936ebee5da3.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T07:00:00.000+0000","endTime":"2025-01-20T09:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567500,"title":"N1 studio","originalTitle":"N1 studio","shortDescription":"S gostima u studiju i u javljanjima uživo analiziramo najaktualnije teme dana, uživo se uključujemo u najvažnije događaje u zemlji i svijetu.","images":[{"path":"/2024/12/16/16/15/46/stb_xl_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/12/16/16/15/46/xl_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/12/16/16/15/47/l_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/12/16/16/15/48/m_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/12/16/16/15/49/s_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/12/16/16/15/50/stb_fhd_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T09:00:00.000+0000","endTime":"2025-01-20T13:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":true},{"id":69567498,"title":"N1 Info","originalTitle":null,"shortDescription":"Iz sata u sat budite uz N1. Informirat ćemo vas s lica mjesta, uvijek prvi, s aktualnim vijestima. Gledajte i pratite što se događa kod nas, u regiji i svijetu. Uživo uvijek uz N1.","images":[{"path":"/2023/11/03/11/46/59/stb_xl_11d62b582a70055d1fa2be464dbd4220e5d6292b_340fc454bc73019d052cf936ebee5da3.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/00/xl_11d62b582a70055d1fa2be464dbd4220e5d6292b_340fc454bc73019d052cf936ebee5da3.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/03/l_11d62b582a70055d1fa2be464dbd4220e5d6292b_340fc454bc73019d052cf936ebee5da3.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/04/m_11d62b582a70055d1fa2be464dbd4220e5d6292b_340fc454bc73019d052cf936ebee5da3.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/05/s_11d62b582a70055d1fa2be464dbd4220e5d6292b_340fc454bc73019d052cf936ebee5da3.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/06/stb_fhd_11d62b582a70055d1fa2be464dbd4220e5d6292b_340fc454bc73019d052cf936ebee5da3.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T13:00:00.000+0000","endTime":"2025-01-20T13:15:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567496,"title":"N1 studio","originalTitle":"N1 studio","shortDescription":"S gostima u studiju i u javljanjima uživo analiziramo najaktualnije teme dana, uživo se uključujemo u najvažnije događaje u zemlji i svijetu.","images":[{"path":"/2021/02/20/10/01/56/stb_xl_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/56/xl_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/56/l_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/57/m_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/57/s_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/57/stb_fhd_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T13:15:00.000+0000","endTime":"2025-01-20T14:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567502,"title":"N1 Info","originalTitle":null,"shortDescription":"Iz sata u sat budite uz N1. Informirat ćemo vas s lica mjesta, uvijek prvi, s aktualnim vijestima. Gledajte i pratite što se događa kod nas, u regiji i svijetu. Uživo uvijek uz N1.","images":[{"path":"/2023/11/03/11/46/59/stb_xl_11d62b582a70055d1fa2be464dbd4220e5d6292b_340fc454bc73019d052cf936ebee5da3.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/00/xl_11d62b582a70055d1fa2be464dbd4220e5d6292b_340fc454bc73019d052cf936ebee5da3.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/03/l_11d62b582a70055d1fa2be464dbd4220e5d6292b_340fc454bc73019d052cf936ebee5da3.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/04/m_11d62b582a70055d1fa2be464dbd4220e5d6292b_340fc454bc73019d052cf936ebee5da3.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/05/s_11d62b582a70055d1fa2be464dbd4220e5d6292b_340fc454bc73019d052cf936ebee5da3.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/06/stb_fhd_11d62b582a70055d1fa2be464dbd4220e5d6292b_340fc454bc73019d052cf936ebee5da3.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T14:00:00.000+0000","endTime":"2025-01-20T14:15:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567493,"title":"N1 studio","originalTitle":"N1 studio","shortDescription":"S gostima u studiju i u javljanjima uživo analiziramo najaktualnije teme dana, uživo se uključujemo u najvažnije događaje u zemlji i svijetu.","images":[{"path":"/2021/02/20/10/01/56/stb_xl_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/56/xl_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/56/l_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/57/m_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/57/s_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/57/stb_fhd_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T14:15:00.000+0000","endTime":"2025-01-20T15:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567508,"title":"N1 Info","originalTitle":null,"shortDescription":"Iz sata u sat budite uz N1. Informirat ćemo vas s lica mjesta, uvijek prvi, s aktualnim vijestima. Gledajte i pratite što se događa kod nas, u regiji i svijetu. Uživo uvijek uz N1.","images":[{"path":"/2021/02/20/10/01/53/stb_xl_11d62b582a70055d1fa2be464dbd4220e5d6292b.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/54/xl_11d62b582a70055d1fa2be464dbd4220e5d6292b.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/54/l_11d62b582a70055d1fa2be464dbd4220e5d6292b.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/54/m_11d62b582a70055d1fa2be464dbd4220e5d6292b.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/55/s_11d62b582a70055d1fa2be464dbd4220e5d6292b.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/55/stb_fhd_11d62b582a70055d1fa2be464dbd4220e5d6292b.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T15:00:00.000+0000","endTime":"2025-01-20T15:15:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567510,"title":"N1 studio","originalTitle":"N1 studio","shortDescription":"S gostima u studiju i u javljanjima uživo analiziramo najaktualnije teme dana, uživo se uključujemo u najvažnije događaje u zemlji i svijetu.","images":[{"path":"/2021/02/20/10/01/56/stb_xl_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/56/xl_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/56/l_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/57/m_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/57/s_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/20/10/01/57/stb_fhd_c8d93b0f8a9555ac6329a2f5965488de8852d52d.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T15:15:00.000+0000","endTime":"2025-01-20T16:22:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567505,"title":"Vremenska prognoza","originalTitle":null,"shortDescription":"Prognoza klimatskih uvjeta u zemlji i regiji.","images":[{"path":"/2023/11/03/11/47/16/stb_xl_941a1b9a2fc171e01c43d15c561562606da377fb_df328eee2b3a6be835ea11f1335dc774.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/18/xl_941a1b9a2fc171e01c43d15c561562606da377fb_df328eee2b3a6be835ea11f1335dc774.jpg","width":1600,"height":900,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/19/l_941a1b9a2fc171e01c43d15c561562606da377fb_df328eee2b3a6be835ea11f1335dc774.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/21/m_941a1b9a2fc171e01c43d15c561562606da377fb_df328eee2b3a6be835ea11f1335dc774.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/22/s_941a1b9a2fc171e01c43d15c561562606da377fb_df328eee2b3a6be835ea11f1335dc774.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/11/03/11/47/23/stb_fhd_941a1b9a2fc171e01c43d15c561562606da377fb_df328eee2b3a6be835ea11f1335dc774.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T16:22:00.000+0000","endTime":"2025-01-20T16:30:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567497,"title":"Pregled dana","originalTitle":"Pregled dana","shortDescription":"Pregled dana, dinamična emisiju koja će vam donositi ključne vijesti dana s analizama i kontekstom potrebnim za razumijevanjem događaja kojima svjedočimo.","images":[{"path":"/2024/09/18/08/42/58/stb_xl_pregled_dana_still_2_1_.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/42/59/xl_pregled_dana_still_2_1_.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/43/00/l_pregled_dana_still_2_1_.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/43/01/m_pregled_dana_still_2_1_.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/43/03/s_pregled_dana_still_2_1_.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/43/04/stb_fhd_pregled_dana_still_2_1_.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T16:30:00.000+0000","endTime":"2025-01-20T17:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69689435,"title":"Inauguracije Donalda Trumpa","originalTitle":null,"shortDescription":"Inauguracija predsjednika Sjedinjenih Američkih Država, Donalda Trampa.","images":[{"path":"/2023/07/26/23/13/11/stb_xl_685a2e989818a5b2966dd21ed0b23b19aad65090.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/07/26/23/13/12/xl_685a2e989818a5b2966dd21ed0b23b19aad65090.jpg","width":976,"height":549,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/07/26/23/13/13/l_685a2e989818a5b2966dd21ed0b23b19aad65090.jpg","width":976,"height":549,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/07/26/23/13/14/m_685a2e989818a5b2966dd21ed0b23b19aad65090.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/07/26/23/13/15/s_685a2e989818a5b2966dd21ed0b23b19aad65090.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/07/26/23/13/16/stb_fhd_685a2e989818a5b2966dd21ed0b23b19aad65090.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T17:00:00.000+0000","endTime":"2025-01-20T19:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567506,"title":"Automobiliona","originalTitle":"Automobiliona","shortDescription":"Automobiliona, novi format informativnog i zabavnog karaktera o automobilima. Emisija donosi testove najnovijih modela na tržištu, razgovore sa stručnjacima iz industrije te novosti iz automobilskog...","images":[{"path":"/2024/06/28/15/30/44/xl_02672d68676d7bf09912a334533aea36f1fc45f0.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/06/28/15/30/44/stb_xl_02672d68676d7bf09912a334533aea36f1fc45f0.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/06/28/15/30/45/l_02672d68676d7bf09912a334533aea36f1fc45f0.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/06/28/15/30/45/m_02672d68676d7bf09912a334533aea36f1fc45f0.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/06/28/15/30/46/s_02672d68676d7bf09912a334533aea36f1fc45f0.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/06/28/15/30/47/stb_fhd_02672d68676d7bf09912a334533aea36f1fc45f0.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T19:00:00.000+0000","endTime":"2025-01-20T19:30:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567495,"title":"Tema dana","originalTitle":"Jutarnji Intervju - tema dana","shortDescription":"Najinteresantniji intervju iz jutarnjeg programa.","images":[{"path":"/2024/12/16/16/16/47/stb_xl_c57c28006204326a2bc0afeac090f93b1e33e69f.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/12/16/16/16/47/xl_c57c28006204326a2bc0afeac090f93b1e33e69f.jpg","width":688,"height":387,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/12/16/16/16/48/l_c57c28006204326a2bc0afeac090f93b1e33e69f.jpg","width":688,"height":387,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/12/16/16/16/49/m_c57c28006204326a2bc0afeac090f93b1e33e69f.jpg","width":688,"height":387,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/12/16/16/16/50/s_c57c28006204326a2bc0afeac090f93b1e33e69f.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/12/16/16/16/50/stb_fhd_c57c28006204326a2bc0afeac090f93b1e33e69f.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T19:30:00.000+0000","endTime":"2025-01-20T20:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567512,"title":"Newsnight","originalTitle":null,"shortDescription":"Svake večeri od ponedjeljka do četvrtka od 20 do 22 sata pratimo uživo sve najnovije vijesti, donosimo rekapitulaciju dana, najvažnije izjave, analize i trenutke koji su obilježili dan na izmaku.","images":[{"path":"/2022/04/11/17/25/31/stb_xl_ac7a68383c320d6314ff82ce7f831a916b591a78.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/04/11/17/25/31/xl_ac7a68383c320d6314ff82ce7f831a916b591a78.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/04/11/17/25/32/l_ac7a68383c320d6314ff82ce7f831a916b591a78.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/04/11/17/25/32/m_ac7a68383c320d6314ff82ce7f831a916b591a78.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/04/11/17/25/33/s_ac7a68383c320d6314ff82ce7f831a916b591a78.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/04/11/17/25/33/stb_fhd_ac7a68383c320d6314ff82ce7f831a916b591a78.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T20:00:00.000+0000","endTime":"2025-01-20T21:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567503,"title":"Pregled dana","originalTitle":"Pregled dana","shortDescription":"Pregled dana, dinamična emisiju koja će vam donositi ključne vijesti dana s analizama i kontekstom potrebnim za razumijevanjem događaja kojima svjedočimo.","images":[{"path":"/2024/09/18/08/42/58/stb_xl_pregled_dana_still_2_1_.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/42/59/xl_pregled_dana_still_2_1_.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/43/00/l_pregled_dana_still_2_1_.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/43/01/m_pregled_dana_still_2_1_.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/43/03/s_pregled_dana_still_2_1_.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2024/09/18/08/43/04/stb_fhd_pregled_dana_still_2_1_.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T21:00:00.000+0000","endTime":"2025-01-20T22:30:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69567501,"title":"CNN Shows","originalTitle":"CNN","shortDescription":"Pregled najnovijih emisija CNN produkcije.","images":[{"path":"/2025/01/16/14/46/18/stb_xl_8e7a72029e57dc42abd874d343f08d71980697df.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/46/19/xl_8e7a72029e57dc42abd874d343f08d71980697df.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/46/20/l_8e7a72029e57dc42abd874d343f08d71980697df.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/46/21/m_8e7a72029e57dc42abd874d343f08d71980697df.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/46/22/s_8e7a72029e57dc42abd874d343f08d71980697df.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2025/01/16/14/46/23/stb_fhd_8e7a72029e57dc42abd874d343f08d71980697df.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T22:30:00.000+0000","endTime":"2025-01-20T23:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69585210,"title":"SK vesti","originalTitle":null,"shortDescription":"Aktualne sportske vijesti iz zemlje, regije i svijeta.","images":[{"path":"/2021/02/19/17/39/12/stb_xl_d3b0aa7825d8d43607669ea757ed3da8b938f2dc.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/12/xl_d3b0aa7825d8d43607669ea757ed3da8b938f2dc.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/12/l_d3b0aa7825d8d43607669ea757ed3da8b938f2dc.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/12/m_d3b0aa7825d8d43607669ea757ed3da8b938f2dc.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/13/s_d3b0aa7825d8d43607669ea757ed3da8b938f2dc.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2021/02/19/17/39/13/stb_fhd_d3b0aa7825d8d43607669ea757ed3da8b938f2dc.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T23:00:00.000+0000","endTime":"2025-01-20T23:30:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[205],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69585243,"title":"Global","originalTitle":null,"shortDescription":"Emisija o svjetskim događajima koji su obilježili dan, uz analize globalnih tema i procesa.","images":[{"path":"/2022/11/01/17/11/06/stb_xl_63dbe913733f973969eba7f1a737c0844ff3d1fc_bcba631f007ba5febbdda5804dbfa626.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/11/01/17/11/06/xl_63dbe913733f973969eba7f1a737c0844ff3d1fc_bcba631f007ba5febbdda5804dbfa626.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/11/01/17/11/06/l_63dbe913733f973969eba7f1a737c0844ff3d1fc_bcba631f007ba5febbdda5804dbfa626.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/11/01/17/11/06/m_63dbe913733f973969eba7f1a737c0844ff3d1fc_bcba631f007ba5febbdda5804dbfa626.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/11/01/17/11/06/s_63dbe913733f973969eba7f1a737c0844ff3d1fc_bcba631f007ba5febbdda5804dbfa626.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/11/01/17/11/06/stb_fhd_63dbe913733f973969eba7f1a737c0844ff3d1fc_bcba631f007ba5febbdda5804dbfa626.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T23:30:00.000+0000","endTime":"2025-01-20T23:40:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69585225,"title":"Horizonti","originalTitle":"Horizonti","shortDescription":"Gledajte Horizonte, dnevne priče o zanimljivostima iz svijeta politike, biznisa, sporta, kulture, znanosti i zabave. \"Male\", ali stvarne životne pozadine događaja i fenomena.","images":[{"path":"/2022/01/24/13/03/29/stb_xl_f498b0dd509392981e937e5a7595b9f2d73d05c1.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/01/24/13/03/30/xl_f498b0dd509392981e937e5a7595b9f2d73d05c1.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/01/24/13/03/30/l_f498b0dd509392981e937e5a7595b9f2d73d05c1.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/01/24/13/03/30/m_f498b0dd509392981e937e5a7595b9f2d73d05c1.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/01/24/13/03/31/s_f498b0dd509392981e937e5a7595b9f2d73d05c1.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2022/01/24/13/03/31/stb_fhd_f498b0dd509392981e937e5a7595b9f2d73d05c1.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T23:40:00.000+0000","endTime":"2025-01-20T23:50:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[210],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false},{"id":69585257,"title":"DW Shift","originalTitle":"Shift - Living in the Digital Age","shortDescription":"Tjedni magazin koji nam donosi najnovije vijesti vezane za Internet.","images":[{"path":"/2023/06/09/13/07/53/stb_xl_0849d5d70c1337651b85b6335e340e15bd5d6a73_340fc454bc73019d052cf936ebee5da3.jpg","width":1920,"height":1080,"size":"STB_XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/06/09/13/07/54/xl_0849d5d70c1337651b85b6335e340e15bd5d6a73_340fc454bc73019d052cf936ebee5da3.jpg","width":1920,"height":1080,"size":"XL","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/06/09/13/07/55/l_0849d5d70c1337651b85b6335e340e15bd5d6a73_340fc454bc73019d052cf936ebee5da3.jpg","width":1440,"height":810,"size":"L","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/06/09/13/07/55/m_0849d5d70c1337651b85b6335e340e15bd5d6a73_340fc454bc73019d052cf936ebee5da3.jpg","width":960,"height":540,"size":"M","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/06/09/13/07/56/s_0849d5d70c1337651b85b6335e340e15bd5d6a73_340fc454bc73019d052cf936ebee5da3.jpg","width":640,"height":360,"size":"S","type":"EVENT_16_9","mode":null,"legacyType":null},{"path":"/2023/06/09/13/07/57/stb_fhd_0849d5d70c1337651b85b6335e340e15bd5d6a73_340fc454bc73019d052cf936ebee5da3.jpg","width":300,"height":168,"size":"STB_FHD","type":"EVENT_16_9","mode":null,"legacyType":null}],"channelId":1607,"ageRating":"0","forcedAgeRating":null,"startTime":"2025-01-20T23:50:00.000+0000","endTime":"2025-01-21T00:00:00.000+0000","seasonNumber":null,"episodeNumber":null,"channelLogos":[{"path":"/2024/03/21/12/24/15/xl_eon_light.png","width":480,"height":270,"size":"XL","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/l_eon_light.png","width":384,"height":216,"size":"L","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/16/m_eon_light.png","width":288,"height":162,"size":"M","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/17/s_eon_light.png","width":160,"height":90,"size":"S","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null},{"path":"/2024/03/21/12/24/18/stb_fhd_eon_light.png","width":300,"height":168,"size":"STB_FHD","type":"LOGO_16_9","mode":"COLOUR_LIGHT","legacyType":null}],"categories":[209],"hasReminder":false,"sportsMode":null,"inFavorites":null,"live":false,"liveBroadcast":false}]}
\ No newline at end of file
diff --git a/sites/epg.telemach.ba/__data__/no_content.json b/sites/epg.telemach.ba/__data__/no_content.json
new file mode 100644
index 00000000..9cb2650b
--- /dev/null
+++ b/sites/epg.telemach.ba/__data__/no_content.json
@@ -0,0 +1 @@
+{"status":400,"error":"resource_not_found","errorMessage":"Resource not found","messageId":1674123545}
\ No newline at end of file
diff --git a/sites/epg.telemach.ba/__data__/no_session.json b/sites/epg.telemach.ba/__data__/no_session.json
new file mode 100644
index 00000000..ca4681c3
--- /dev/null
+++ b/sites/epg.telemach.ba/__data__/no_session.json
@@ -0,0 +1 @@
+{"error":"unsupported_grant_type","error_description":"Unsupported grant type"}
\ No newline at end of file
diff --git a/sites/epg.telemach.ba/__data__/session.json b/sites/epg.telemach.ba/__data__/session.json
new file mode 100644
index 00000000..df09ec33
--- /dev/null
+++ b/sites/epg.telemach.ba/__data__/session.json
@@ -0,0 +1 @@
+{"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsidWMtaW5mby1zZXJ2aWNlIl0sInNjb3BlIjpbInJlYWQiXSwiZXhwIjoxNzM3Mzc3NDUxLCJhdXRob3JpdGllcyI6WyJST0xFX1BVQkxJQ19FUEciXSwianRpIjoiUVBubHdRSDczS1EwSnU0WDZwRTc2Zm5mUmRnIiwiY2xpZW50X2lkIjoiMjdlMTFmNWUtODhlMi00OGU0LWJkNDItOGUxNWFiYmM2NmY1In0.LqJAZUWEqIOcLrRSMpxZxnF-f1arKbHgfweLMXt-MBjCDbVJD39OQEsh_b68mtePAoa3n8LRbf3IFT40Ys5Vbe-k_Btm4a9gdEGr6cNi_4HGk4Bto6RUDvCp59VRfoRZhWe145Q2b5TS6szmC4Ws2YWIcZU5vrJcYs2GZiCk6U11MOcd1i52WmZj8cLPq0ZPDB_bzmTgYkvkVa7zOzUOPSl4M8T6fPUa__vVKUt0jOgtFoHeue2mQVgISC2puEGsBN0jJwvJ8PzM6IVxXrQno3MBv0VJy_qILiFPcxRePGRAmKLuEqagvikO7P_XQgFjZgg-j8u8wX2WwO0Yxft0Pg","token_type":"bearer","expires_in":86399,"scope":"read","jti":"QPnlwQH73KQ0Ju4X6pE76fnfRdg"}
\ No newline at end of file
From c25d2a7440d6eadc7a38b59249f94d6d0e6920c4 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Sun, 19 Jan 2025 17:12:55 +0300
Subject: [PATCH 15/19] Create epg.telemach.ba.test.js
---
sites/epg.telemach.ba/epg.telemach.ba.test.js | 94 +++++++++++++++++++
1 file changed, 94 insertions(+)
create mode 100644 sites/epg.telemach.ba/epg.telemach.ba.test.js
diff --git a/sites/epg.telemach.ba/epg.telemach.ba.test.js b/sites/epg.telemach.ba/epg.telemach.ba.test.js
new file mode 100644
index 00000000..56836b4d
--- /dev/null
+++ b/sites/epg.telemach.ba/epg.telemach.ba.test.js
@@ -0,0 +1,94 @@
+const { parser, url, request } = require('./epg.telemach.ba.config.js')
+const fs = require('fs')
+const axios = require('axios')
+const path = require('path')
+const dayjs = require('dayjs')
+const utc = require('dayjs/plugin/utc')
+const customParseFormat = require('dayjs/plugin/customParseFormat')
+dayjs.extend(customParseFormat)
+dayjs.extend(utc)
+
+jest.mock('axios')
+
+axios.post.mockImplementation((url, data, opts) => {
+ if (
+ url === 'https://api-web.ug-be.cdn.united.cloud/oauth/token?grant_type=client_credentials' &&
+ JSON.stringify(opts.headers) ===
+ JSON.stringify({
+ Authorization:
+ 'Basic MjdlMTFmNWUtODhlMi00OGU0LWJkNDItOGUxNWFiYmM2NmY1OjEyejJzMXJ3bXdhZmsxMGNkdzl0cjloOWFjYjZwdjJoZDhscXZ0aGc='
+ })
+ ) {
+ return Promise.resolve({
+ data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/session.json')))
+ })
+ } else {
+ return Promise.resolve({
+ data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/no_session.json')))
+ })
+ }
+})
+
+const date = dayjs.utc('2025-01-20', 'YYYY-MM-DD').startOf('d')
+const channel = {
+ site_id: '1607',
+ xmltv_id: 'N1HD.hr'
+}
+
+it('can generate valid url', async () => {
+ const result = url({ date, channel })
+
+ expect(result).toBe(
+ 'https://api-web.ug-be.cdn.united.cloud/v1/public/events/epg?fromTime=2025-01-20T00:00:00-00:00&toTime=2025-01-20T23:59:59-00:00&communityId=12&languageId=59&cid=1607'
+ )
+})
+
+it('can generate valid request headers', async () => {
+ const result = await request.headers()
+
+ expect(result).toMatchObject({
+ Authorization:
+ 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsidWMtaW5mby1zZXJ2aWNlIl0sInNjb3BlIjpbInJlYWQiXSwiZXhwIjoxNzM3Mzc3NDUxLCJhdXRob3JpdGllcyI6WyJST0xFX1BVQkxJQ19FUEciXSwianRpIjoiUVBubHdRSDczS1EwSnU0WDZwRTc2Zm5mUmRnIiwiY2xpZW50X2lkIjoiMjdlMTFmNWUtODhlMi00OGU0LWJkNDItOGUxNWFiYmM2NmY1In0.LqJAZUWEqIOcLrRSMpxZxnF-f1arKbHgfweLMXt-MBjCDbVJD39OQEsh_b68mtePAoa3n8LRbf3IFT40Ys5Vbe-k_Btm4a9gdEGr6cNi_4HGk4Bto6RUDvCp59VRfoRZhWe145Q2b5TS6szmC4Ws2YWIcZU5vrJcYs2GZiCk6U11MOcd1i52WmZj8cLPq0ZPDB_bzmTgYkvkVa7zOzUOPSl4M8T6fPUa__vVKUt0jOgtFoHeue2mQVgISC2puEGsBN0jJwvJ8PzM6IVxXrQno3MBv0VJy_qILiFPcxRePGRAmKLuEqagvikO7P_XQgFjZgg-j8u8wX2WwO0Yxft0Pg'
+ })
+})
+
+it('can parse response', () => {
+ const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'), 'utf8')
+ let results = parser({ content })
+ results = results.map(p => {
+ p.start = p.start.toJSON()
+ p.stop = p.stop.toJSON()
+ return p
+ })
+
+ expect(results.length).toBe(35)
+ expect(results[0]).toMatchObject({
+ start: '2025-01-20T00:00:00.000Z',
+ stop: '2025-01-20T00:30:00.000Z',
+ title: 'DW Euromaxx',
+ description:
+ 'Euromaxx je lifestyle Europe magazine, koji nam donosi zanimljivosti iz evropskih gradova, priče o načinu života ljudi i upoznaje nas sa njihovim kulturama.',
+ image:
+ 'https://images-web.ug-be.cdn.united.cloud/2021/02/18/06/05/21/stb_xl_cd4f72e01d308ecce782e29b69af7de6707b9e85.jpg',
+ season: null,
+ episode: null
+ })
+ expect(results[34]).toMatchObject({
+ start: '2025-01-20T23:50:00.000Z',
+ stop: '2025-01-21T00:00:00.000Z',
+ title: 'DW Shift',
+ description: 'Tjedni magazin koji nam donosi najnovije vijesti vezane za Internet.',
+ image:
+ 'https://images-web.ug-be.cdn.united.cloud/2023/06/09/13/07/53/stb_xl_0849d5d70c1337651b85b6335e340e15bd5d6a73_340fc454bc73019d052cf936ebee5da3.jpg',
+ season: null,
+ episode: null
+ })
+})
+
+it('can handle empty guide', () => {
+ const results = parser({
+ content: fs.readFileSync(path.resolve(__dirname, '__data__/no_content.json'), 'utf8')
+ })
+
+ expect(results).toMatchObject([])
+})
From fe3479eb3a49ab757b761a4b92588ed1225a66e1 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Sun, 19 Jan 2025 17:13:10 +0300
Subject: [PATCH 16/19] Create epg.telemach.ba.config.js
---
.../epg.telemach.ba/epg.telemach.ba.config.js | 100 ++++++++++++++++++
1 file changed, 100 insertions(+)
create mode 100644 sites/epg.telemach.ba/epg.telemach.ba.config.js
diff --git a/sites/epg.telemach.ba/epg.telemach.ba.config.js b/sites/epg.telemach.ba/epg.telemach.ba.config.js
new file mode 100644
index 00000000..ccb9c978
--- /dev/null
+++ b/sites/epg.telemach.ba/epg.telemach.ba.config.js
@@ -0,0 +1,100 @@
+const dayjs = require('dayjs')
+const axios = require('axios')
+
+const BASIC_TOKEN =
+ 'MjdlMTFmNWUtODhlMi00OGU0LWJkNDItOGUxNWFiYmM2NmY1OjEyejJzMXJ3bXdhZmsxMGNkdzl0cjloOWFjYjZwdjJoZDhscXZ0aGc='
+
+let session
+
+module.exports = {
+ site: 'epg.telemach.ba',
+ days: 3,
+ url({ channel, date }) {
+ return `https://api-web.ug-be.cdn.united.cloud/v1/public/events/epg?fromTime=${date.format(
+ 'YYYY-MM-DDTHH:mm:ss-00:00'
+ )}&toTime=${date
+ .add(1, 'days')
+ .subtract(1, 's')
+ .format('YYYY-MM-DDTHH:mm:ss-00:00')}&communityId=12&languageId=59&cid=${channel.site_id}`
+ },
+ request: {
+ async headers() {
+ if (!session) {
+ session = await loadSessionDetails()
+ if (!session || !session.access_token) return null
+ }
+
+ return {
+ Authorization: `Bearer ${session.access_token}`
+ }
+ }
+ },
+ parser({ content }) {
+ try {
+ const programs = []
+ const data = JSON.parse(content)
+ for (const channelId in data) {
+ if (Array.isArray(data[channelId])) {
+ data[channelId].forEach(item => {
+ programs.push({
+ title: item.title,
+ description: item.shortDescription,
+ image: parseImage(item),
+ season: item.seasonNumber,
+ episode: item.episodeNumber,
+ start: dayjs(item.startTime),
+ stop: dayjs(item.endTime)
+ })
+ })
+ }
+ }
+
+ return programs
+ } catch {
+ return []
+ }
+ },
+ async channels() {
+ const session = await loadSessionDetails()
+ if (!session || !session.access_token) return null
+
+ const data = await axios
+ .get(
+ 'https://api-web.ug-be.cdn.united.cloud/v1/public/channels?channelType=TV&communityId=12&languageId=59&imageSize=L',
+ {
+ headers: {
+ Authorization: `Bearer ${session.access_token}`
+ }
+ }
+ )
+ .then(r => r.data)
+ .catch(console.error)
+
+ return data.map(item => ({
+ lang: 'hr',
+ site_id: item.id,
+ name: item.name
+ }))
+ }
+}
+
+function parseImage(item) {
+ const baseURL = 'https://images-web.ug-be.cdn.united.cloud'
+
+ return Array.isArray(item?.images) && item.images[0] ? `${baseURL}${item.images[0].path}` : null
+}
+
+function loadSessionDetails() {
+ return axios
+ .post(
+ 'https://api-web.ug-be.cdn.united.cloud/oauth/token?grant_type=client_credentials',
+ {},
+ {
+ headers: {
+ Authorization: `Basic ${BASIC_TOKEN}`
+ }
+ }
+ )
+ .then(r => r.data)
+ .catch(console.log)
+}
From ed5191caf474b9269d005a7928b74a75f481fa3f Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Sun, 19 Jan 2025 17:13:23 +0300
Subject: [PATCH 17/19] Create epg.telemach.ba.channels.xml
---
.../epg.telemach.ba.channels.xml | 262 ++++++++++++++++++
1 file changed, 262 insertions(+)
create mode 100644 sites/epg.telemach.ba/epg.telemach.ba.channels.xml
diff --git a/sites/epg.telemach.ba/epg.telemach.ba.channels.xml b/sites/epg.telemach.ba/epg.telemach.ba.channels.xml
new file mode 100644
index 00000000..4e3358ce
--- /dev/null
+++ b/sites/epg.telemach.ba/epg.telemach.ba.channels.xml
@@ -0,0 +1,262 @@
+
+
+ Animal Planet HD (SR)
+ SK HD
+ OBN
+ RTRS
+ Alternativna TV
+ Federalna TV
+ Diva
+ TV1000
+ AMC HD (INT)
+ CineStar TV Fantasy HD (SR)
+ CineStar TV Premiere 1 HD (SR)
+ CineStar TV Premiere 2 HD (SR)
+ STAR HD (INT)
+ STAR Life HD (INT)
+ STAR Crime HD (INT)
+ STAR Movies HD (INT)
+ HBO HD (SR)
+ HBO 2 HD (SR)
+ HBO 3 HD (SR)
+ Cinemax HD
+ Cinemax 2 HD
+ SK 2 HD (SR)
+ SK 3 HD (SR)
+ SK 4 HD (SR)
+ SK Golf HD (SR)
+ Eurosport 1 HD (SR)
+ Disney Channel
+ Pink Kids
+ Nickelodeon HD
+ History HD (SR)
+ Lov i Ribolov (SR)
+ National Geographic HD (SR)
+ Nat Geo Wild HD (SR)
+ History 2 HD
+ Crime & Investigation (SR)
+ 24Kitchen HD (SR)
+ TLC HD (BIH)
+ E! Entertainment (SR)
+ Travel Channel HD
+ Pink Movies
+ Pink Action
+ Alfa (Sarajevo)
+ BHT 1
+ N1 HD (BH)/(SR)
+ Televizija Hema
+ BN Music HD (BIH)
+ CineStar TV 1 HD (BIH)
+ Hayat 2
+ SLO 1 HD
+ Balkanika
+ BN HD
+ TRT Avaz
+ CineStar TV Action HD (BIH)
+ BHT 1 HD
+ Hayat HD
+ TV Vogošća HD
+ RTVHB HD
+ RTV IS (OSM)
+ Face HD
+ Kanal 6
+ NTV IC Kakanj
+ RTV Visoko
+ TV Bugojno
+ RTV TK
+ RTV HIT
+ City TV HD
+ RTV Jablanica HD
+ TV Lukavac
+ MTV Igman HD
+ Laudato TV
+ Z1
+ Cinema TV
+ Hayatovci
+ Hayat Folk Box
+ Hayat Music Box
+ Telemach Info kanal (BH)
+ Posavina TV
+ TV5 HD (BH)
+ SK 1 HD (BIH)
+ Epic Drama HD (SR)
+ Pink Romance
+ Pink Thriller
+ Pink Comedy
+ Nickelodeon (HR)
+ SCI FI HD (SR)
+ CineStar TV Comedy & Family HD
+ Pink Western
+ Pink Horror
+ Pink Soap
+ Pink Sci-Fi & Fantasy
+ Pink BH
+ Nova BH HD (SR)
+ RTV Sana
+ RTRS Plus
+ Sevdah TV
+ TV Sarajevo HD (BH)
+ RTV Zenica HD
+ Al Jazeera Balkans HD (SR)
+ NTV
+ Izvorna TV
+ SK Esports (SR)
+ Pink super kids
+ Pink Style
+ Pink Pedia
+ Pink Kuvar
+ Lol
+ Ha ha
+ Nova Sport HD (SR)
+ Viasat Explore HD (SR)
+ Viasat History HD (SR)
+ Viasat Nature HD (SR)
+ HRT 1 HD (SR)
+ HRT 2 HD (SR)
+ RTL 2 HR HD
+ Nova HR HD
+ RTL HR HD
+ O Kanal HD
+ CineStar TV 2 HD (SR)
+ Home and Garden TV
+ Discovery Channel HD (SR)
+ RTV7
+ RTV BIR HD
+ Nicktoons (BIH)
+ Pikaboo HD (BIH)
+ Nick Jr. (BIH)
+ SK 4K IPTV
+ Pickbox HD (BIH)
+ Eurosport 4K IPTV
+ O Kanal Plus HD
+ O Kanal Music HD
+ IDJKids HD (BIH)
+ Grand International HD
+ Cartoon Network (BIH)
+ Da Vinci HD (BIH)
+ SK 5 HD (BIH)
+ SK 6 HD (BIH)
+ Maria Vision TV
+ Shift TV HD
+ Al Jazeera Arabic
+ Pink Premium HD (BIH)
+ ID HD (BIH)
+ Cartoonito (BIH)
+ Disney Junior (BIH)
+ RTL Living HD (BIH)
+ Nova Television HD (BIH)
+ RTL Kockica HD (BIH)
+ IDJTV HD (BIH)
+ SK 1 HR (BIH)
+ SK 10 HD (BIH)
+ SK 7 HD (BIH)
+ SK 8 HD (BIH)
+ SK 9 HD (BIH)
+ SK Fight (BIH)
+ Eurosport 2 HD (BIH)
+ FilmBox Extra HD (BIH)
+ FilmBox Premium HD (BIH)
+ Doku TV HD (BIH)
+ BabyTV HD (BIH)
+ Minimax (BIH)
+ HRT 3 HD (BIH)
+ HRT 4 HD (BIH)
+ Kino TV HD (BIH)
+ CNN (BIH)
+ Current Time (BIH)
+ Grand narodna televizija 2 (BIH)
+ Cinemania HD (BIH)
+ Bujrum TV (BIH)
+ RTV Novi Pazar
+ Tropik TV
+ MTV (BIH)
+ Prva World (BIH)
+ Prva Kick (BIH)
+ Prva Plus (BIH)
+ Prva (BIH)
+ Yachting TV (BIH)
+ RTL DE (BIH)
+ RTL 2 DE (BIH)
+ DM Sat (BIH)
+ Grand Nostalgija (BIH)
+ Narodna TV (BIH)
+ CMC HD (BIH)
+ Pink Music (BIH)
+ Pink Plus (BIH)
+ VOX (BIH)
+ Pro7 (BIH)
+ Pink Crime & Mystery (BIH)
+ Insajder TV (BIH)
+ Nova Max (BIH)
+ Nova Series (BIH)
+ MTV 00s (BIH)
+ Rai Uno (BIH)
+ N1 HD (HR)/(BIH)
+ N1 HD (SR)/(BIH)
+ MTV 80s (BIH)
+ MTV 90s (BIH)
+ Club MTV (BIH)
+ MTV Hits (BIH)
+ FTV HD (BIH)
+ B92 HD (BIH)
+ Pink Zabava (BIH)
+ K::CN 1 (BIH)
+ BBC News (BIH)
+ Pink Extra (BIH)
+ Pink Film (BiH)
+ Pink Reality (BIH)
+ MTV Live HD (BIH)
+ Zadruga Live 1 (BIH)
+ Zadruga Live 2 (BIH)
+ Zadruga Live 3 (BIH)
+ Zadruga Live 4 (BIH)
+ Hustler HD (BIH)
+ Hustler (BIH)
+ Dusk! (BIH)
+ Private TV (BIH)
+ Nick Music (BIH)
+ Trace Urban HD (BIH)
+ K::CN Music 2 (BIH)
+ Motorvision+ HD (BIH)
+ Bravo Music (BIH)
+ Pink Classic (BIH)
+ Extreme Sports (BIH)
+ BBC Earth HD (BIH)
+ Deutsche Welle (BIH)
+ TVMNE (RTCG Sat (BIH))
+ K::CN Svet+ 3 (BIH)
+ SHORTSTV HD (BIH)
+ France 24 HD (BIH)
+ TV5 Monde (BIH)
+ Bloomberg (BIH)
+ TV Vijesti HD (BIH)
+ iConcerts HD (BIH)
+ Reality Kings HD (BIH)
+ Brazzers TV Europe (BIH)
+ Blue Hustler (BIH)
+ RedLight (BIH)
+ FREEДOM (BIH)
+ Euronews HD (BIH)
+ Trace Sport Stars HD (BIH)
+ Jim Jam (BIH)
+ 1+1 International (BIH)
+ Sky News (BIH)
+ Pink Folk (BIH)
+ Pink Folk 2 (BIH)
+ Pink n roll (BIH)
+ Pink World (BIH)
+ Pink Show (BIH)
+ Pink Music 2 (BIH)
+ Pink Hits (BIH)
+ Pink Hits 2 (BIH)
+ Pink Fashion (BIH)
+ Pink Koncert (BIH)
+ City Play (BIH)
+ Pink World Cinema (BIH)
+ Pink Family (BIH)
+ Pink Serije (BIH)
+ Brainz HD (BIH)
+ Nova S HD (BIH)
+ Kitchen TV (BIH)
+ Marquee TV (BIH)
+
From 4f8df0076b14276b08d21067bd674ab2252df643 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Sun, 19 Jan 2025 17:13:38 +0300
Subject: [PATCH 18/19] Create readme.md
---
sites/epg.telemach.ba/readme.md | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 sites/epg.telemach.ba/readme.md
diff --git a/sites/epg.telemach.ba/readme.md b/sites/epg.telemach.ba/readme.md
new file mode 100644
index 00000000..248ab3ba
--- /dev/null
+++ b/sites/epg.telemach.ba/readme.md
@@ -0,0 +1,21 @@
+# epg.telemach.ba
+
+https://epg.telemach.ba/
+
+### Download the guide
+
+```sh
+npm run grab --- --site=epg.telemach.ba
+```
+
+### Update channel list
+
+```sh
+npm run channels:parse --- --config=./sites/epg.telemach.ba/epg.telemach.ba.config.js --output=./sites/epg.telemach.ba/epg.telemach.ba.channels.xml
+```
+
+### Test
+
+```sh
+npm test --- epg.telemach.ba
+```
From 7b2cfba7f5d4df8c01ff74a7c26d7695cb750244 Mon Sep 17 00:00:00 2001
From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com>
Date: Mon, 20 Jan 2025 00:55:49 +0000
Subject: [PATCH 19/19] [Bot] Update SITES.md
Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/epg/actions/runs/12858864455) workflow.
---
SITES.md | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/SITES.md b/SITES.md
index f05d9cf6..0a95cc68 100644
--- a/SITES.md
+++ b/SITES.md
@@ -53,8 +53,8 @@
entertainment.ie | 🟢 | |
epg.112114.xyz | 🟢 | |
epg.iptvx.one | 🟢 | |
+ epg.telemach.ba | 🟢 | |
firstmedia.com | 🟢 | |
- flixed.io | 🟢 | |
foxsports.com.au | 🟢 | |
foxtel.com.au | 🟢 | |
freeview.co.uk | 🟢 | |
@@ -77,7 +77,6 @@
jiotv.com | 🟢 | |
kan.org.il | 🔴 | https://github.com/iptv-org/epg/issues/2273 |
knr.gl | 🟢 | |
- kplus.vn | 🔴 | https://github.com/iptv-org/epg/issues/2240 |
kvf.fo | 🟢 | |
m.tv.sms.cz | 🔴 | https://github.com/iptv-org/epg/issues/2241 |
m.tving.com | 🟢 | |
@@ -192,7 +191,7 @@
tvarenasport.hr | 🟢 | |
tvcesoir.fr | 🟢 | |
tvcubana.icrt.cu | 🟢 | |
- tvgids.nl | 🟡 | https://github.com/iptv-org/epg/issues/2400 |
+ tvgids.nl | 🟢 | |
tvguide.com | 🟢 | |
tvguide.myjcom.jp | 🟢 | |
tvhebdo.com | 🟢 | |
@@ -205,7 +204,7 @@
tvmustra.hu | 🟢 | |
tvpassport.com | 🟡 | https://github.com/iptv-org/epg/issues/2272 |
tvplus.com.tr | 🟢 | |
- tvprofil.com | 🟡 | https://github.com/iptv-org/epg/issues/2399 |
+ tvprofil.com | 🟢 | |
tvtv.us | 🟢 | |
v3.myafn.dodmedia.osd.mil | 🟢 | |
vidio.com | 🟢 | |