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🟢