diff --git a/README.md b/README.md index 4917513..0cccc6d 100644 --- a/README.md +++ b/README.md @@ -115,4 +115,6 @@ Sometimes a new version of this image will be bound to the same source commit. T - 1.0.12 [10-14-2024](https://github.com/iptv-org/epg/commit/7610f7b9f5cc1ccab8d17f3408a95d31b36ace7c)
Fix Pickx.be url - 1.0.13 - [10-14-2024](https://github.com/iptv-org/epg/commit/7610f7b9f5cc1ccab8d17f3408a95d31b36ace7c)
Add custom fix for web.magentatv.de \ No newline at end of file + [10-14-2024](https://github.com/iptv-org/epg/commit/7610f7b9f5cc1ccab8d17f3408a95d31b36ace7c)
Add custom fix for web.magentatv.de +- 1.0.14 + [10-14-2024](https://github.com/iptv-org/epg/commit/7610f7b9f5cc1ccab8d17f3408a95d31b36ace7c)
Change fix for movistarplus.es in order t owork with new API \ No newline at end of file diff --git a/fixes/movistarplus.es/movistarplus.es.config.js b/fixes/movistarplus.es/movistarplus.es.config.js index 7118720..e705e19 100644 --- a/fixes/movistarplus.es/movistarplus.es.config.js +++ b/fixes/movistarplus.es/movistarplus.es.config.js @@ -2,14 +2,30 @@ const { DateTime } = require('luxon') -const API_PROD_ENDPOINT = 'https://www.movistarplus.es/programacion-tv' +const API_CHANNEL_ENDPOINT = 'https://www.movistarplus.es/programacion-tv' +const API_PROGRAM_ENDPOINT = 'https://comunicacion.movistarplus.es' const API_IMAGE_ENDPOINT = 'https://www.movistarplus.es/recorte/n/caratulaH/'; module.exports = { site: 'movistarplus.es', days: 2, - url: function ({ date }) { - return `${API_PROD_ENDPOINT}/${date.format('YYYY-MM-DD')}?v=json` + url: function ({ channel, date }) { + return `${API_PROGRAM_ENDPOINT}/wp-admin/admin-ajax.php` + }, + request: { + method: 'POST', + headers: { + Origin: API_PROGRAM_ENDPOINT, + Referer: `${API_PROGRAM_ENDPOINT}/programacion/`, + "Content-Type" : 'application/x-www-form-urlencoded; charset=UTF-8' + }, + data: function ({ channel, date }) { + return { + action: 'getProgramation', + day: date.format('YYYY-MM-DD'), + "channels[]": channel.site_id + } + } }, parser({ content, channel, date }) { let programs = [] @@ -19,15 +35,15 @@ module.exports = { items.forEach(item => { let startTime = DateTime.fromFormat( - `${guideDate.format('YYYY-MM-DD')} ${item.HORA_INICIO}`, - 'yyyy-MM-dd HH:mm', + `${item.f_evento_rejilla}`, + 'yyyy-MM-dd HH:mm:ss', { zone: 'Europe/Madrid' } ).toUTC() let stopTime = DateTime.fromFormat( - `${guideDate.format('YYYY-MM-DD')} ${item.HORA_FIN}`, - 'yyyy-MM-dd HH:mm', + `${item.f_fin_evento_rejilla}`, + 'yyyy-MM-dd HH:mm:ss', { zone: 'Europe/Madrid' } @@ -37,9 +53,9 @@ module.exports = { stopTime = stopTime.plus({ days: 1 }) } programs.push({ - title: item.TITULO, + title: item.des_evento_rejilla, icon: parseIcon(item, channel), - category: item.GENERO, + category: item.des_genero, start: startTime, stop: stopTime }) @@ -50,7 +66,7 @@ module.exports = { const axios = require('axios') const dayjs = require('dayjs') const data = await axios - .get(`${API_PROD_ENDPOINT}/${dayjs().format('YYYY-MM-DD')}?v=json`) + .get(`${API_CHANNEL_ENDPOINT}/${dayjs().format('YYYY-MM-DD')}?v=json`) .then(r => r.data) .catch(console.log) @@ -70,7 +86,9 @@ function parseIcon(item, channel) { function parseItems(content, channel) { const json = typeof content === 'string' ? JSON.parse(content) : content - if (!(`${channel.site_id}-CODE` in json.data)) return [] - const data = json.data[`${channel.site_id}-CODE`] - return data ? data.PROGRAMAS : [] -} \ No newline at end of file + const data = json.channelsProgram; + + if(data.length != 1) + return [] + return data[0]; +}