From c1c7f153992375f480b2392a79a95de684a76180 Mon Sep 17 00:00:00 2001 From: theofficialomega <30985701+BellezaEmporium@users.noreply.github.com> Date: Sat, 13 Dec 2025 23:51:44 +0100 Subject: [PATCH] fix iltalehti.fi --- sites/iltalehti.fi/iltalehti.fi.channels.xml | 289 ++++++++++--------- sites/iltalehti.fi/iltalehti.fi.config.js | 49 +++- 2 files changed, 185 insertions(+), 153 deletions(-) diff --git a/sites/iltalehti.fi/iltalehti.fi.channels.xml b/sites/iltalehti.fi/iltalehti.fi.channels.xml index 5ab07731..87cb7377 100644 --- a/sites/iltalehti.fi/iltalehti.fi.channels.xml +++ b/sites/iltalehti.fi/iltalehti.fi.channels.xml @@ -1,145 +1,150 @@ - MTV Ava - Star - Frii - Hero - Jim - Kutonen - Liv - MTV3 - National Geographic - Nelonen - MTV Sub - TLC - TV5 - Yle Teema Fem - Yle TV1 - Yle TV2 - MTV Aitio - MTV Viihde - MTV juniori - MTV Max - MTV Urheilu 1 - MTV Urheilu 2 - MTV Urheilu 3 - SF-kanalen - MTV Aitio - MTV Viihde - V film PREMIERE - V film ACTION - V film FAMILY - V film HITS - Eurosport - Eurosport 2 - Extreme Sports - MTV Liiga 1 - MTV Liiga 2 - MTV Liiga 3 - MTV Liiga 4 - MTV Liiga 5 - MTV Liiga 6 - MTV Liiga 7 - MTV Liiga UHD - MTV Max - MTV Urheilu 1 - MTV Urheilu 2 - MTV Urheilu 3 - V sport FOOTBALL - V sport GOLF - V sport vinter - V sport 1 Suomi - V sport 2 Suomi - V sport - V sport PREMIUM - V sport + Suomi - V Sport Live 1 - V Sport Live 2 - V Sport Live 3 - V Sport Live 4 - V Sport Live 5 - Cartoon Network - Disney Channel - Disney Junior - Nat Geo Wild Scandinavia - National Geographic - Viasat Explore - V film PREMIERE - V film ACTION - V film FAMILY - V film HITS - V sport FOOTBALL - V sport GOLF - Viasat History - V sport vinter - V sport 1 Suomi - V sport 2 Suomi - Viasat Nature/Crime - V sport - V sport PREMIUM - V sport ULTRA HD - V sport + Suomi - V Sport Live 1 - V Sport Live 2 - V Sport Live 3 - V Sport Live 4 - V Sport Live 5 - Animal Planet - Discovery Channel - Discovery Science - H2 - The History Channel - Investigation Discovery - Nat Geo Wild Scandinavia - National Geographic - Travel Channel - Viasat Explore - Viasat History - Viasat Nature/Crime - Barnkanalen - Cartoon Network - Cartoonito - Disney Channel - Disney Junior - MTV juniori - Nick Jr. - V film FAMILY - iConcerts - Club MTV - MTV Finland - MTV Live HD - VH1 Classic - Al Jazeera - BBC World News - Bloomberg TV - CNBC - CNN - Deutsche Welle - EuroNews - Sky News - MTV Ava - Fashion TV - Food Network - Frii - Liv - TLC - Travel Channel - V film FAMILY - V film HITS - BBC Nordic - Himlen TV7 - RTL - TV5 Monde - TV7 - TV Finland - Viron ETV - Barnkanalen - Kanal5 - SF-kanalen - SVT24 - SVT 1 - SVT 2 - TV3 - TV4 - TV6 + RTL + TV5 Monde + ETV 1 + TV7 + Himlen TV7 + TV Finland + BBC Nordic + MTV Aitio + MTV Viihde + V Film Action + V Film Family + V Film Hits + V Film Premiere + Extreme Sports Channel + V Sport Golf + Viaplay 1 Urheilu + Viaplay 2 Urheilu + Viaplay 3 Urheilu + V Sport Vinter + V Sport Football + Eurosport 1 + Eurosport 2 + TotoTV + MTV Urheilu + MTV Urheilu 2 + MTV Max + V Sport 1 + V Sport Premium + V Sport Ultra HD + V Sport Live 1 + V Sport Live 2 + V Sport Live 3 + V Sport Live 4 + V Sport Live 5 + MTV Liiga 1 + MTV Liiga 2 + MTV Liiga 3 + MTV Liiga 4 + MTV Liiga 5 + MTV Liiga 6 + MTV Liiga 7 + MTV Liiga UHD + MTV Urheilu 3 + Viaplay TV Finland + Cartoon Network + Cartoonito Nordic + SVT Barn + Disney Channel + V Film Family + Nick Jr. + MTV Juniori + MTV Aitio + MTV Viihde + SF-kanalen + MTV Urheilu + MTV Urheilu 2 + MTV Max + MTV Juniori + MTV Urheilu 3 + Al Jazeera + Euronews + BBC News + CNN International + CNBC + Bloomberg TV + Sky News International + Deutsche Welle + BBC Earth Nordics + Discovery Science + Travel Channel + Investigation Discovery + Animal Planet + Discovery Channel + History + History 2 + Viasat Explore + Viasat History + National Geographic + Viasat Nature + National Geographic Wild + Cartoon Network + Disney Channel + V Film Action + V Film Family + Viasat Explore + V Film Hits + V Film Premiere + V Sport Golf + Viasat History + Viaplay 1 Urheilu + Viaplay 2 Urheilu + Viaplay 3 Urheilu + V Sport Vinter + V Sport Football + National Geographic + TLC + Viasat Nature + V Sport 1 + V Sport Premium + V Sport Ultra HD + V Sport Live 1 + V Sport Live 2 + V Sport Live 3 + V Sport Live 4 + V Sport Live 5 + National Geographic Wild + Food Network + Travel Channel + V Film Family + V Film Hits + TLC + Frii + MTV Ava + Liv + FashionTV International + YLE TV1 + YLE TV2 + Kutonen + National Geographic + TLC + Frii + TV 5 + Star Channel + MTV3 + MTV Sub + MTV Ava + Yle Teema Fem + Nelonen + Liv + Hero + JIM + Eveo + Viaplay TV Finland + SVT1 + TV4 + SVT2 + SVT Barn + Kanal 5 + TV3 + TV6 + SVT 24 + SF-kanalen + Iconcerts + Club MTV International + MTV 80s + MTV Live HD + MTV diff --git a/sites/iltalehti.fi/iltalehti.fi.config.js b/sites/iltalehti.fi/iltalehti.fi.config.js index 4302794b..dfb02974 100644 --- a/sites/iltalehti.fi/iltalehti.fi.config.js +++ b/sites/iltalehti.fi/iltalehti.fi.config.js @@ -1,5 +1,14 @@ const axios = require('axios') const dayjs = require('dayjs') +const utc = require('dayjs/plugin/utc') +const timezone = require('dayjs/plugin/timezone') +const customParseFormat = require('dayjs/plugin/customParseFormat') + +dayjs.extend(utc) +dayjs.extend(timezone) +dayjs.extend(customParseFormat) + +dayjs.tz.setDefault('Europe/Helsinki') module.exports = { site: 'iltalehti.fi', @@ -11,18 +20,19 @@ module.exports = { }, url: function ({ channel, date }) { const [group] = channel.site_id.split('#') - - return `https://telkku.com/api/channel-groups/default_builtin_channelgroup${group}/offering?startTime=00%3A00%3A00.000&duration=PT24H&inclusionPolicy=IncludeOngoingAlso&limit=1000&tvDate=${date.format( - 'YYYY-MM-DD' - )}&view=PublicationDetails` + const start = encodeURIComponent(date.format('YYYY-MM-DDTHH:mm:ssZ')) + const end = encodeURIComponent(date.add(1, 'day').format('YYYY-MM-DDTHH:mm:ssZ')) + return `https://il-telkku-api.prod.il.fi/v1/channel-groups/${group}/offering?startTime=${start}&endTime=${end}` }, parser: function ({ content, channel }) { let programs = [] const items = getItems(content, channel) items.forEach(item => { programs.push({ - title: item.title, + title: item.programName, description: item.description, + episode: item.episodeNumber || null, + season: item.seasonNumber || null, image: getImage(item), start: getStart(item), stop: getStop(item) @@ -33,7 +43,7 @@ module.exports = { }, async channels() { const data = await axios - .get('https://telkku.com/api/channel-groups') + .get('https://il-telkku-api.prod.il.fi/v1/channel-groups') .then(r => r.data) .catch(console.log) @@ -53,7 +63,7 @@ module.exports = { } function getImage(item) { - const image = item.images.find(i => i.type === 'default' && i.sizeTag === '1200x630') + const image = item.images.find(i => i.type === 'default' && i.sizeTag === '612x382') return image ? image.url : null } @@ -69,9 +79,26 @@ function getStop(item) { function getItems(content, channel) { const [, channelId] = channel.site_id.split('#') const data = JSON.parse(content) - if (!data || !data.response || !Array.isArray(data.response.publicationsByChannel)) return [] - const channelData = data.response.publicationsByChannel.find(i => i.channel.id === channelId) - if (!channelData || !Array.isArray(channelData.publications)) return [] + + if (!data || !Array.isArray(data.response)) return [] - return channelData.publications + const responseData = data.response + + let channelData = null + for (const item of responseData) { + if (item.channelId === channelId) { + channelData = item + break + } + } + if (!channelData || !channelData.programs || typeof channelData.programs !== 'object') return [] + + const programs = [] + Object.values(channelData.programs).forEach(timeSlot => { + if (Array.isArray(timeSlot)) { + programs.push(...timeSlot) + } + }) + + return programs }