diff --git a/sites/syn.is/syn.is.channels.xml b/sites/syn.is/syn.is.channels.xml index 8b2d86ac..d615c401 100644 --- a/sites/syn.is/syn.is.channels.xml +++ b/sites/syn.is/syn.is.channels.xml @@ -1,16 +1,12 @@ - - - - Stöð 2 Sport - Stöð 2 Sport 2 - Stöð 2 Sport 3 - Stöð 2 Sport 4 - Stöð 2 Sport 5 - Stöð 2 Sport 6 - - - - + Sýn + Sýn Sport + Sýn Sport2 + Sýn Sport3 + Sýn Sport4 + Sýn Sport Ísland + Sýn Sport Ísland 2 + Sýn Sport Ísland 3 + Sýn Sport Viaplay diff --git a/sites/syn.is/syn.is.config.js b/sites/syn.is/syn.is.config.js index c3e84236..5bb2a0f3 100644 --- a/sites/syn.is/syn.is.config.js +++ b/sites/syn.is/syn.is.config.js @@ -48,17 +48,33 @@ module.exports = { }, async channels() { try { - const response = await axios.get('https://www.syn.is/api/epg/') + const response = await axios.get('https://www.syn.is/api/epg?type=schedule') if (!response.data || !Array.isArray(response.data)) { console.error('Error: No channels data found') return [] } - return response.data.map(item => { - return { - lang: 'is', - site_id: item - } - }) + + const channels = await Promise.all( + response.data.map(async item => { + try { + const { data: channelData } = await axios.get(`https://www.syn.is/api/epg/${item}`) + if (!channelData?.[0]?.midill_heiti) { + console.error(`Error: No name found for channel ${item}`) + return null + } + return { + lang: 'is', + site_id: item, + name: channelData[0].midill_heiti + } + } catch (error) { + console.error(`Error fetching channel name for ${item}:`, error) + return null + } + }) + ) + + return channels.filter(Boolean) } catch (error) { console.error('Error fetching channels:', error) return [] diff --git a/sites/syn.is/syn.is.test.js b/sites/syn.is/syn.is.test.js index b16bb5eb..27755e7b 100644 --- a/sites/syn.is/syn.is.test.js +++ b/sites/syn.is/syn.is.test.js @@ -1,4 +1,4 @@ -const { parser, url } = require('./stod2.is.config.js') +const { parser, url } = require('./syn.is.config.js') const fs = require('fs') const path = require('path') const dayjs = require('dayjs') @@ -12,7 +12,7 @@ dayjs.extend(timezone) const date = dayjs.utc('2025-01-03', 'YYYY-MM-DD').startOf('day') const channel = { site_id: 'stod2', xmltv_id: 'Stod2.is' } - + it('can generate valid url', () => { const generatedUrl = url({ date, channel }) expect(generatedUrl).toBe('https://www.syn.is/api/epg/stod2/2025-01-03')