diff --git a/sites/orangetv.orange.es/__data__/data1.json b/sites/orangetv.orange.es/__data__/data1.json index bd2a1d523..c35ab2904 100644 --- a/sites/orangetv.orange.es/__data__/data1.json +++ b/sites/orangetv.orange.es/__data__/data1.json @@ -1 +1,204 @@ -[{"responseElementType": "ProgramList", "channelExternalId": "1010", "programs": [{"startDate": 1736636100000, "endDate": 1736642400000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_2247567.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780906206", "prLevel": 7, "id": 15071377885, "description": "Cassie tenía un brillante futuro por delante. Sin embargo, un incidente provocó que no pudiese cumplir sus sueños. Con el paso del tiempo, tendrá la oportunidad de enmendar los errores del pasado.", "seriesName": "", "genres": [{"externalId": "Cine", "name": "Cine", "id": 128839623}, {"externalId": "Drama", "name": "Drama", "id": 862336010}, {"externalId": "Suspense", "name": "Suspense", "id": 862337524}], "name": "Una joven prometedora", "flags": 14}, {"startDate": 1736642400000, "endDate": 1736648100000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3522912.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780916568", "prLevel": 1, "id": 15073959700, "description": "César deambula por las calles de Montmarte en París, donde interpreta su música. Un día, se encuentra con Salomé, a quien dejó sin decir palabra un tiempo atrás, y descubre que es padre de una niña.", "seriesName": "", "genres": [{"externalId": "Cine", "name": "Cine", "id": 128839623}, {"externalId": "Comedia", "name": "Comedia", "id": 862331198}], "name": "Una comedia romántica", "flags": 14}, {"startDate": 1736648100000, "endDate": 1736658000000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3108557.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780871990", "prLevel": 1, "id": 15058341721, "description": "Noticias de los servicios informativos del Canal 24 Horas", "seriesName": "", "genres": [{"externalId": "Programa", "name": "Programa", "id": 9169074970}, {"externalId": "Informativo", "name": "Informativo", "id": 862353792}], "name": "Noticias 24H", "flags": 14}, {"startDate": 1736658000000, "endDate": 1736674500000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3108557.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780871999", "prLevel": 1, "id": 15058342585, "description": "Noticias de los servicios informativos del Canal 24 Horas", "seriesName": "", "genres": [{"externalId": "Programa", "name": "Programa", "id": 9169074970}, {"externalId": "Informativo", "name": "Informativo", "id": 862353792}], "name": "Noticias 24H", "flags": 14}]}] \ No newline at end of file +[ + { + "responseElementType": "ProgramList", + "channelExternalId": "1010", + "programs": [ + { + "startDate": 1780003434000, + "endDate": 1780009582000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_4609317.jpg" + } + ], + "seriesSeason": "", + "episodeId": "", + "referenceProgramId": "785692318", + "prLevel": 4, + "id": 16078166515, + "description": "Marina es una monja atípica, recién llegada a El Parral, un colegio con niños problemáticos. A pesar de que los internos, niños sin familia, la reciben con mil trastadas, poco a poco se crearán entre ellos vínculos casi familiares.", + "seriesName": "", + "genres": [ + { + "externalId": "Cine", + "name": "Cine", + "id": 128839623 + }, + { + "externalId": "Comedia", + "name": "Comedia", + "id": 862331198 + }, + { + "externalId": "Familiar", + "name": "Familiar", + "id": 1713938080 + } + ], + "name": "Llenos de gracia", + "flags": 14 + }, + { + "startDate": 1780009582000, + "endDate": 1780014300000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_4765552.jpg" + } + ], + "seriesSeason": "", + "episodeId": "", + "referenceProgramId": "785692316", + "prLevel": 4, + "id": 16078166290, + "description": "Los monjes de un monasterio en quiebra solo tienen una única oportunidad: ganar la \"Champions Clerum\". Pero en esa congregación no juega al fútbol \"ni Dios\", y este inesperado equipo necesitará algo más para salvar su casa.", + "seriesName": "", + "genres": [ + { + "externalId": "Cine", + "name": "Cine", + "id": 128839623 + }, + { + "externalId": "Comedia", + "name": "Comedia", + "id": 862331198 + } + ], + "name": "Que baje Dios y lo vea", + "flags": 14 + }, + { + "startDate": 1780014300000, + "endDate": 1780023600000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_4020396.jpg" + } + ], + "seriesSeason": "2026", + "episodeId": "42", + "referenceProgramId": "785692312", + "prLevel": 1, + "id": 16078166815, + "description": "Informativo diario en el que se repasa y analiza la actualidad del día", + "seriesName": "La noche en 24 horas", + "genres": [ + { + "externalId": "Programa", + "name": "Programa", + "id": 9169074970 + }, + { + "externalId": "Informativo", + "name": "Informativo", + "id": 862353792 + } + ], + "name": "La noche en 24 horas - T2026, E42: Episodio 42", + "flags": 15 + }, + { + "startDate": 1780023600000, + "endDate": 1780027200000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_3997940.jpg" + } + ], + "seriesSeason": "2026", + "episodeId": "160", + "referenceProgramId": "785692296", + "prLevel": 1, + "id": 16078165690, + "description": "Información continua 24 horas nacional e internacional, 366 dias al año", + "seriesName": "Noticias 24H", + "genres": [ + { + "externalId": "Programa", + "name": "Programa", + "id": 9169074970 + }, + { + "externalId": "Informativo", + "name": "Informativo", + "id": 862353792 + } + ], + "name": "Noticias 24H - T2026, E160: Episodio 160", + "flags": 15 + }, + { + "startDate": 1780027200000, + "endDate": 1780033800000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_4020388.jpg" + } + ], + "seriesSeason": "2026", + "episodeId": "364", + "referenceProgramId": "785628699", + "prLevel": 1, + "id": 16067265700, + "description": "Espacio de información diaria con noticias nacionales e internacionales", + "seriesName": "Telediario Matinal", + "genres": [ + { + "externalId": "Programa", + "name": "Programa", + "id": 9169074970 + }, + { + "externalId": "Informativo", + "name": "Informativo", + "id": 862353792 + } + ], + "name": "Telediario Matinal - T2026, E364: Episodio 364", + "flags": 15 + }, + { + "startDate": 1780033800000, + "endDate": 1780043700000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_3997920.jpg" + } + ], + "seriesSeason": "2026", + "episodeId": "105", + "referenceProgramId": "785628646", + "prLevel": 7, + "id": 16067266000, + "description": "El programa cuenta con reportajes y entrevistas, dedicados a analizar en profundidad el mundo de la política y la actualidad.", + "seriesName": "La hora de La 1", + "genres": [ + { + "externalId": "Programa", + "name": "Programa", + "id": 9169074970 + }, + { + "externalId": "Informativo", + "name": "Informativo", + "id": 862353792 + }, + { + "externalId": "Otros", + "name": "Otros", + "id": 24434204 + } + ], + "name": "La hora de La 1 - T2026, E105: La hora de La 1 - 29.05.2026", + "flags": 15 + } + ] + } +] \ No newline at end of file diff --git a/sites/orangetv.orange.es/__data__/data2.json b/sites/orangetv.orange.es/__data__/data2.json index 2f88fa820..df25a9635 100644 --- a/sites/orangetv.orange.es/__data__/data2.json +++ b/sites/orangetv.orange.es/__data__/data2.json @@ -1 +1,230 @@ -[{"responseElementType": "ProgramList", "channelExternalId": "1010", "programs": [{"startDate": 1736658000000, "endDate": 1736674500000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3108557.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780871999", "prLevel": 1, "id": 15058342585, "description": "Noticias de los servicios informativos del Canal 24 Horas", "seriesName": "", "genres": [{"externalId": "Programa", "name": "Programa", "id": 9169074970}, {"externalId": "Informativo", "name": "Informativo", "id": 862353792}], "name": "Noticias 24H", "flags": 14}, {"startDate": 1736674500000, "endDate": 1736676600000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_469238.jpg"}], "seriesSeason": "8", "episodeId": "12", "referenceProgramId": "780872016", "prLevel": 1, "id": 15058342081, "description": "Magacín de salud semanal con la periodista Miriam Moreno con vocación de servicio público. En cada edición ofrece a los espectadores los mejores consejos y cambios en la rutina que pueden servir para llevar una vida más saludable.", "seriesName": "Saber vivir", "genres": [{"externalId": "Programa", "name": "Programa", "id": 9169074970}, {"externalId": "Salud", "name": "Salud", "id": 862341634}], "name": "Saber vivir - T8, E12: Saber vivir", "flags": 15}, {"startDate": 1736676600000, "endDate": 1736679900000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3261229.jpg"}], "seriesSeason": "17", "episodeId": "8", "referenceProgramId": "780916571", "prLevel": 4, "id": 15073959340, "description": "El programa viaja hasta Bulgaria para conocer su capital Sofía, una de las ciudades más antiguas de Europa y también de las más desconocidas. El espacio de viajes de La 1 también llegará hasta la ciudad medieval de Veliko Tarnovo y Varna.", "seriesName": "Españoles en el mundo", "genres": [{"externalId": "Documental", "name": "Documental", "id": 30089199}, {"externalId": "Viajes y aventuras", "name": "Viajes y aventuras", "id": 9198977905}], "name": "Españoles en el mundo - T17, E08: Sofia, Bulgaria", "flags": 15}, {"startDate": 1736679900000, "endDate": 1736683200000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3261229.jpg"}], "seriesSeason": "16", "episodeId": "9", "referenceProgramId": "780872010", "prLevel": 4, "id": 15058342225, "description": "El programa cruza el charco para trasladarse a Washington D.C., donde de la mano de seis personas españolas, se descubren lugares como la Casa Blanca, el Capitolio, el Museo de Historia Natural o el Memorial de los Veteranos de Vietnam.", "seriesName": "Españoles en el mundo", "genres": [{"externalId": "Documental", "name": "Documental", "id": 30089199}, {"externalId": "Viajes y aventuras", "name": "Viajes y aventuras", "id": 9198977905}], "name": "Españoles en el mundo - T16, E09: Washington, Distrito Columbia", "flags": 15}, {"startDate": 1736683200000, "endDate": 1736686500000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3256949.jpg"}], "seriesSeason": "12", "episodeId": "4", "referenceProgramId": "780872014", "prLevel": 4, "id": 15058342441, "description": "Cruzamos el Estrecho de Gibraltar para conocer la huella española en los dominios del antiguo Protectorado en Marruecos.", "seriesName": "Españoles en el mundo", "genres": [{"externalId": "Documental", "name": "Documental", "id": 30089199}, {"externalId": "Viajes y aventuras", "name": "Viajes y aventuras", "id": 9198977905}], "name": "Españoles en el mundo - T12, E04: Tánger, Tetuán y Chauen", "flags": 15}, {"startDate": 1736686500000, "endDate": 1736690400000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_415745.jpg"}], "seriesSeason": "2", "episodeId": "4", "referenceProgramId": "780872015", "prLevel": 1, "id": 15058341793, "description": "Anne Igartiburu y Jordi González hacen un repaso a la actualidad de la crónica social, con los nombres propios más importantes de la semana y estando en directo en todos los acontecimientos y eventos que se produzcan.", "seriesName": "D Corazón", "genres": [{"externalId": "Programa", "name": "Programa", "id": 9169074970}, {"externalId": "Prensa rosa", "name": "Prensa rosa", "id": 11611838587}], "name": "D Corazón - T2, E04: D Corazón", "flags": 15}, {"startDate": 1736690400000, "endDate": 1736694000000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_663318.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780872012", "prLevel": 1, "id": 15058342729, "description": "Informativo de Televisión Española de los fines de semana. Lara Siscar e Igor Gómez se encargan de presentar las últimas noticias de ámbito nacional e internacional surgidas durante el día", "seriesName": "", "genres": [{"externalId": "Programa", "name": "Programa", "id": 9169074970}, {"externalId": "Informativo", "name": "Informativo", "id": 862353792}], "name": "Telediario 1 Fin de Semana", "flags": 14}]}] \ No newline at end of file +[ + { + "responseElementType": "ProgramList", + "channelExternalId": "1010", + "programs": [ + { + "startDate": 1780033800000, + "endDate": 1780043700000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_3997920.jpg" + } + ], + "seriesSeason": "2026", + "episodeId": "105", + "referenceProgramId": "785628646", + "prLevel": 7, + "id": 16067266000, + "description": "El programa cuenta con reportajes y entrevistas, dedicados a analizar en profundidad el mundo de la política y la actualidad.", + "seriesName": "La hora de La 1", + "genres": [ + { + "externalId": "Programa", + "name": "Programa", + "id": 9169074970 + }, + { + "externalId": "Informativo", + "name": "Informativo", + "id": 862353792 + }, + { + "externalId": "Otros", + "name": "Otros", + "id": 24434204 + } + ], + "name": "La hora de La 1 - T2026, E105: La hora de La 1 - 29.05.2026", + "flags": 15 + }, + { + "startDate": 1780043700000, + "endDate": 1780059300000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_3997922.jpg" + } + ], + "seriesSeason": "1", + "episodeId": "294", + "referenceProgramId": "785628704", + "prLevel": 7, + "id": 16067265925, + "description": "Mañaneros es el magacine matinal de entretenimiento de tve, que recoge la actualidad con rigor y en tiempo real., de una manera ágil, amable e interactiva.", + "seriesName": "Mañaneros 360", + "genres": [ + { + "externalId": "Programa", + "name": "Programa", + "id": 9169074970 + }, + { + "externalId": "Talk Show", + "name": "Talk Show", + "id": 862338541 + } + ], + "name": "Mañaneros 360 - T1, E294: Mañaneros 360 - 29.05.2026", + "flags": 15 + }, + { + "startDate": 1780059300000, + "endDate": 1780061700000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_4265375.jpg" + } + ], + "seriesSeason": "2026", + "episodeId": "149", + "referenceProgramId": "785628667", + "prLevel": 1, + "id": 16067266750, + "description": "Espacio de información nacional e internacional diaria, en directo.", + "seriesName": "Telediario 1", + "genres": [ + { + "externalId": "Programa", + "name": "Programa", + "id": 9169074970 + }, + { + "externalId": "Informativo", + "name": "Informativo", + "id": 862353792 + } + ], + "name": "Telediario 1 - T2026, E149: 29 de Mayo de 2026", + "flags": 15 + }, + { + "startDate": 1780061700000, + "endDate": 1780062000000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_3994869.jpg" + } + ], + "seriesSeason": "", + "episodeId": "", + "referenceProgramId": "785628500", + "prLevel": 1, + "id": 16067265625, + "description": "Bloque diario dedicado al deporte tras el informativo: resultados, análisis y reportajes nacionales e internacionales.", + "seriesName": "", + "genres": [ + { + "externalId": "Deportes", + "name": "Deportes", + "id": 862349933 + }, + { + "externalId": "Programa Deportivo", + "name": "Programa Deportivo", + "id": 9198951724 + } + ], + "name": "Deportes 1 (RTVE)", + "flags": 14 + }, + { + "startDate": 1780062000000, + "endDate": 1780062300000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_3994873.jpg" + } + ], + "seriesSeason": "", + "episodeId": "", + "referenceProgramId": "785628649", + "prLevel": 1, + "id": 16067264650, + "description": "La mejor manera de enterarse de la previsión meteorológica para los próximos días. La información del tiempo de TVE es un clásico de la historia audiovisual española. Avalada por el Instituto Nacional de Meteorología, goza de un alto nivel de acierto.", + "seriesName": "", + "genres": [ + { + "externalId": "Programa", + "name": "Programa", + "id": 9169074970 + }, + { + "externalId": "Informativo", + "name": "Informativo", + "id": 862353792 + } + ], + "name": "El Tiempo (RTVE)", + "flags": 14 + }, + { + "startDate": 1780062300000, + "endDate": 1780062900000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_3994877.jpg" + } + ], + "seriesSeason": "", + "episodeId": "", + "referenceProgramId": "785628502", + "prLevel": 1, + "id": 16067265475, + "description": "Redifusión de los mejores momentos de La1.", + "seriesName": "", + "genres": [ + { + "externalId": "Programa", + "name": "Programa", + "id": 9169074970 + }, + { + "externalId": "Informativo", + "name": "Informativo", + "id": 862353792 + } + ], + "name": "Redifusión La1", + "flags": 14 + }, + { + "startDate": 1780062900000, + "endDate": 1780069500000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_4452167.jpg" + } + ], + "seriesSeason": "1", + "episodeId": "176", + "referenceProgramId": "785701691", + "prLevel": 7, + "id": 16079705569, + "description": "Magacine de actualidad social y política con secciones de humor y de verificación de noticias falsas.", + "seriesName": "Directo al grano", + "genres": [ + { + "externalId": "Programa", + "name": "Programa", + "id": 9169074970 + }, + { + "externalId": "Actualidad", + "name": "Actualidad", + "id": 862333517 + } + ], + "name": "Directo al grano - T1, E176: Episodio 176", + "flags": 15 + } + ] + } +] \ No newline at end of file diff --git a/sites/orangetv.orange.es/__data__/data3.json b/sites/orangetv.orange.es/__data__/data3.json index cadd0d9c4..d105ff4aa 100644 --- a/sites/orangetv.orange.es/__data__/data3.json +++ b/sites/orangetv.orange.es/__data__/data3.json @@ -1 +1,281 @@ -[{"responseElementType": "ProgramList", "channelExternalId": "1010", "programs": [{"startDate": 1736690400000, "endDate": 1736694000000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_663318.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780872012", "prLevel": 1, "id": 15058342729, "description": "Informativo de Televisión Española de los fines de semana. Lara Siscar e Igor Gómez se encargan de presentar las últimas noticias de ámbito nacional e internacional surgidas durante el día", "seriesName": "", "genres": [{"externalId": "Programa", "name": "Programa", "id": 9169074970}, {"externalId": "Informativo", "name": "Informativo", "id": 862353792}], "name": "Telediario 1 Fin de Semana", "flags": 14}, {"startDate": 1736694000000, "endDate": 1736699700000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_438081.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780916569", "prLevel": 4, "id": 15073960132, "description": "Aparentemente, Ollie Trinke lo tiene todo. Pero cuando su mujer fallece, Ollie se va a vivir con su padre a Nueva Jersey. Un día, en el videoclub, conoce a una joven que rompe todos sus esquemas.", "seriesName": "", "genres": [{"externalId": "Cine", "name": "Cine", "id": 128839623}, {"externalId": "Comedia", "name": "Comedia", "id": 862331198}, {"externalId": "Comedia Romántica", "name": "Comedia Romántica", "id": 1384659250}, {"externalId": "Drama", "name": "Drama", "id": 862336010}], "name": "Una chica de Jersey", "flags": 14}, {"startDate": 1736699700000, "endDate": 1736705100000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_2306072.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780916570", "prLevel": 6, "id": 15073959556, "description": "Diane, abogada brillante, pierde su móvil y recibe una llamada de la persona que lo ha encontrado. Resulta ser el hombre perfecto, salvo por un pequeño problema: mide 1,36 metros.", "seriesName": "", "genres": [{"externalId": "Cine", "name": "Cine", "id": 128839623}, {"externalId": "Aventuras", "name": "Aventuras", "id": 1690076911}, {"externalId": "Comedia", "name": "Comedia", "id": 862331198}, {"externalId": "Romance", "name": "Romance", "id": 862337287}], "name": "Un hombre de altura", "flags": 14}, {"startDate": 1736705100000, "endDate": 1736710500000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_662983.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780916572", "prLevel": 1, "id": 15073960855, "description": "Ella Morgan y su prometido, Jacob, iban hacerse cargo de la plantación de té familiar, pero cuando Jacob muere en un accidente de escalada, Ella se desentiende del negocio. Dos años después, en una visita a sus padres descubre que su padre Mortimer quiere arrendar la plantación, pero su madre, Jane, ha contratado a un experto en marketing, Finn Huxley, para que les ayude a incrementar las ventas y poner a si fin a la crisis que atraviesa la plantación. A petición de su madre Ella decide quedarse unos días y poco a poco acaba enamorándose de Finn.", "seriesName": "", "genres": [{"externalId": "Cine", "name": "Cine", "id": 128839623}, {"externalId": "Drama", "name": "Drama", "id": 862336010}], "name": "Té y amor", "flags": 14}, {"startDate": 1736710500000, "endDate": 1736712000000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_2246597.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780872001", "prLevel": 1, "id": 15058342009, "description": "Jacob Petrus ofrece una original mirada sobre el territorio y sus habitantes a través de la meteorología. La divulgación y la información sobre el terreno conviven con el descubrimiento de la naturaleza y el medio ambiente.", "seriesName": "", "genres": [{"externalId": "Programa", "name": "Programa", "id": 9169074970}, {"externalId": "Entretenimiento", "name": "Entretenimiento", "id": 862338574}], "name": "Aquí la Tierra", "flags": 14}, {"startDate": 1736712000000, "endDate": 1736715900000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_663318.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780872003", "prLevel": 1, "id": 15058342297, "description": "Informativo de Televisión Española de los fines de semana. Lara Siscar e Igor Gómez se encargan de presentar las últimas noticias de ámbito nacional e internacional surgidas durante el día", "seriesName": "", "genres": [{"externalId": "Programa", "name": "Programa", "id": 9169074970}, {"externalId": "Informativo", "name": "Informativo", "id": 862353792}], "name": "Telediario 2 Fin de Semana", "flags": 14}, {"startDate": 1736715900000, "endDate": 1736723100000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3520028.jpg"}], "seriesSeason": "2", "episodeId": "1", "referenceProgramId": "780906207", "prLevel": 1, "id": 15071379397, "description": "Nervios y emoción en el debut de los 14 pasteleros de la nueva temporada de Bake off Famosos al horno. En el primer programa hornearán unas galletas dedicadas a sus mascotas y una tradicional tarta de queso.", "seriesName": "Bake Off: Famosos al horno", "genres": [{"externalId": "Programa", "name": "Programa", "id": 9169074970}, {"externalId": "Reality", "name": "Reality", "id": 9286822642}], "name": "Bake Off: Famosos al horno - T2, E01: Bake Off: Famosos al horno", "flags": 15}]}] \ No newline at end of file +[ + { + "responseElementType": "ProgramList", + "channelExternalId": "1010", + "programs": [ + { + "startDate": 1780062900000, + "endDate": 1780069500000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_4452167.jpg" + } + ], + "seriesSeason": "1", + "episodeId": "176", + "referenceProgramId": "785701691", + "prLevel": 7, + "id": 16079705569, + "description": "Magacine de actualidad social y política con secciones de humor y de verificación de noticias falsas.", + "seriesName": "Directo al grano", + "genres": [ + { + "externalId": "Programa", + "name": "Programa", + "id": 9169074970 + }, + { + "externalId": "Actualidad", + "name": "Actualidad", + "id": 862333517 + } + ], + "name": "Directo al grano - T1, E176: Episodio 176", + "flags": 15 + }, + { + "startDate": 1780069500000, + "endDate": 1780072500000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_3997928.jpg" + } + ], + "seriesSeason": "3", + "episodeId": "184", + "referenceProgramId": "785628702", + "prLevel": 5, + "id": 16067266525, + "description": "La vida de Adriana, una mujer valiente y leal a su familia, sufre un inesperado revés cuando recibe un duro golpe: su padre ha fallecido.", + "seriesName": "Valle salvaje", + "genres": [ + { + "externalId": "Series", + "name": "Series", + "id": 6707696725 + }, + { + "externalId": "Telenovelas", + "name": "Telenovelas", + "id": 862337070 + }, + { + "externalId": "Romance", + "name": "Romance", + "id": 862337287 + } + ], + "name": "Valle salvaje - T3, E184: Episodio 184", + "flags": 9 + }, + { + "startDate": 1780072500000, + "endDate": 1780076100000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_3997930.jpg" + } + ], + "seriesSeason": "1", + "episodeId": "824", + "referenceProgramId": "785628700", + "prLevel": 5, + "id": 16067263900, + "description": "El Duque de Carril vuelve armado para llevarse a Vera y Santos se interpone justo cuando el duque dispara, hiriendo a Julieta.", + "seriesName": "La Promesa", + "genres": [ + { + "externalId": "Series", + "name": "Series", + "id": 6707696725 + }, + { + "externalId": "Telenovelas", + "name": "Telenovelas", + "id": 862337070 + } + ], + "name": "La Promesa - T1, E824: Episodio 824", + "flags": 15 + }, + { + "startDate": 1780076100000, + "endDate": 1780079100000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_3997976.jpg" + } + ], + "seriesSeason": "1", + "episodeId": "379", + "referenceProgramId": "785628697", + "prLevel": 7, + "id": 16067263975, + "description": "Magacine de actualidad social y política y verificación de noticias falsas.", + "seriesName": "Malas lenguas", + "genres": [ + { + "externalId": "Programa", + "name": "Programa", + "id": 9169074970 + }, + { + "externalId": "Informativo", + "name": "Informativo", + "id": 862353792 + }, + { + "externalId": "Actualidad", + "name": "Actualidad", + "id": 862333517 + } + ], + "name": "Malas lenguas - T1, E379: Episodio 379", + "flags": 15 + }, + { + "startDate": 1780079100000, + "endDate": 1780080900000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_3997932.jpg" + } + ], + "seriesSeason": "2026", + "episodeId": "728", + "referenceProgramId": "785628673", + "prLevel": 1, + "id": 16067264350, + "description": "Magacine de naturaleza e información meteorológica", + "seriesName": "Aquí la Tierra", + "genres": [ + { + "externalId": "Programa", + "name": "Programa", + "id": 9169074970 + }, + { + "externalId": "Medio Ambiente", + "name": "Medio Ambiente", + "id": 862339164 + }, + { + "externalId": "Divulgativo", + "name": "Divulgativo", + "id": 862341731 + } + ], + "name": "Aquí la Tierra - T2026, E728: Episodio 728", + "flags": 15 + }, + { + "startDate": 1780080900000, + "endDate": 1780083900000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_4301953.jpg" + } + ], + "seriesSeason": "2026", + "episodeId": "149", + "referenceProgramId": "785628668", + "prLevel": 1, + "id": 16067266150, + "description": "Programa de noticias diarias nacionales e internacionales en directo.", + "seriesName": "Telediario 2", + "genres": [ + { + "externalId": "Programa", + "name": "Programa", + "id": 9169074970 + }, + { + "externalId": "Informativo", + "name": "Informativo", + "id": 862353792 + } + ], + "name": "Telediario 2 - T2026, E149: 29 de Mayo de 2026", + "flags": 15 + }, + { + "startDate": 1780083900000, + "endDate": 1780084800000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_3994869.jpg" + } + ], + "seriesSeason": "", + "episodeId": "", + "referenceProgramId": "785701599", + "prLevel": 1, + "id": 16079704219, + "description": "Actualidad deportiva diaria nacional e internacional.", + "seriesName": "", + "genres": [ + { + "externalId": "Deportes", + "name": "Deportes", + "id": 862349933 + }, + { + "externalId": "Programa Deportivo", + "name": "Programa Deportivo", + "id": 9198951724 + } + ], + "name": "Deportes 2 (RTVE)", + "flags": 14 + }, + { + "startDate": 1780084800000, + "endDate": 1780092000000, + "attachments": [ + { + "name": "COVER", + "value": "/epg/COVER/COVER_4330629.jpg" + } + ], + "seriesSeason": "", + "episodeId": "", + "referenceProgramId": "785712736", + "prLevel": 8, + "id": 16081745479, + "description": "Un ladrón corre peligro tras atestiguar un horroroso crimen cometido por el presidente de los Estados Unidos.", + "seriesName": "", + "genres": [ + { + "externalId": "Cine", + "name": "Cine", + "id": 128839623 + }, + { + "externalId": "Suspense", + "name": "Suspense", + "id": 862337524 + }, + { + "externalId": "Acción", + "name": "Acción", + "id": 862336071 + }, + { + "externalId": "Policíaco", + "name": "Policíaco", + "id": 901750897 + } + ], + "name": "Poder absoluto", + "flags": 14 + } + ] + } +] \ No newline at end of file diff --git a/sites/orangetv.orange.es/orangetv.orange.es.channels.xml b/sites/orangetv.orange.es/orangetv.orange.es.channels.xml index 41dbfef0b..59acd839e 100644 --- a/sites/orangetv.orange.es/orangetv.orange.es.channels.xml +++ b/sites/orangetv.orange.es/orangetv.orange.es.channels.xml @@ -1,65 +1,36 @@ - La 1 HD TDT - La 2 HD TDT - C.Aut - 24h TDT - Paramount Cazavisión M LALIGA 5 EWTN M6 - Autonómico Moto ADV Gametoon - Autonómico 2 - Autonómico 3 - Autonómico 4 - Local 1 - Local 2 - Local 3 - Local 4 - CEX - Telemadrid HD - ATV HD - CMTV HD - A7 - ETB2 Navarra - A8 - Super 3/33 - La 8 - Canal 4 - Vtelevisión - TV3 CAT - ETB1 Navarra - 8TV - 8 Madrid - ETB3 Navarra - ETB2 HD - Barcelona TV - IB3 Global - 3/24 - CanalSur TV HD - CYLTV HD - C33 - 7TV Andalucia - Valencia Televisio - TVV MMA TV GOL + DAZN LALIGA 3 + LALIGATV HYPERMOTION 9 + LALIGATV HYPERMOTION 12 + M LALIGA 6 RunTime Clásico Vivir con gatos Vivir con perros Surf Channel Bloomberg Originals Inglés total - Multinivel + LALIGATV HYPERMOTION 4 + LALIGATV HYPERMOTION 5 + LALIGATV HYPERMOTION 6 + LALIGATV HYPERMOTION 7 + LALIGATV HYPERMOTION 8 MyPadel TV Sangre Fría + LALIGATV HYPERMOTION 10 + LALIGATV HYPERMOTION 11 Historia y Vida Love Wine Love the Planet - M Liga de Campeones 18 - M Liga de Campeones 19 + Fútbol 1 Pruebas LL1 Pruebas LL2 SkyShowtime 1 @@ -68,7 +39,6 @@ BOM Cine Horse TV Pocoyó - Flamenco Auditorio Top Barça RunTime Familia Anime Visión @@ -76,8 +46,10 @@ Negocios TV TV3 3CatInfo - ETB1 - ETB2 + M Liga de Campeones HDR + M Liga de Campeones 2 HDR + etb1 + etb2 Telemadrid LaOtra TVG1 @@ -97,20 +69,39 @@ Canal Extremadura Ceuta TV TV Melilla - Dark (Publi) - Somos (Publi) - Sundance TV (Publi) - SELEKT (Publi) - Gol Classics Veo7 Eurosport 1 DAZN F1 Res + Fútbol 3 M LALIGA HDR M LALIGA 2 HDR DAZN Moto GP Primera Federación DAZN Baloncesto DAZN Baloncesto 2 + 12TV + Déjate de historias TV + Grupo Cadena Media + telebilbao + GuadaTV + Telegranada + Televigo + CalamochaTV + Populartv Murcia + Canal 4 Tenerife + AC Principado + Aranda + Telemedina + 11TvCantabria + AhoraTV + Fibwi + 24h Almeria + Telemiño + TEF + 13 Canarias + LevanteTV + 987 Leon + CantabriaTV DAZN Baloncesto 3 Rugby Challenge Spain Qello concerts @@ -119,8 +110,13 @@ BBC Earth Top Gear BBC LifeStyle + BBC History + Squirrel Dos + AMC Western + AMC Living + DAZN LALIGA 4 + DAZN LALIGA 5 Fast&FunBox - Prueba IPTV Prueba OTT 24 horas Al Jazeera @@ -128,24 +124,16 @@ AMC CRIME AMC Antena 3 HD - A punt HD Atreseries - AXN - AXNMovies BBC WorldHD Be Mad TV Betis TV Boing - Bom Cine - ¡BUENVIAJE! Calle 13 CanalCocina C Hollywood - CanalSur 2 CanalSur - Andalucía TV Caracol TV - TV Ceuta Cine Feel Good Cines Verdi TV Clan HD @@ -156,9 +144,8 @@ Dark DAZN LALIGA 2 DAZN LALIGA - Decasa Discovery - DisneyJr + Disney Channel Divinity DKISS DMAX @@ -167,11 +154,7 @@ El Toro TV Energy VinTV - Esport3 - ETB1 HD - ETB3 - ETB4 - ETB Basque + etb1ON Euronews Eurosport 1 Eurosport 2 @@ -181,15 +164,10 @@ France 2 France 5 Galicia TV - TVG HD Gulli C Historia - HIT TV - IB3 HD La 1 HD La 2 HD - 7RM HD - 8 Mediterraneo M LALIGA 2 LALIGATV HYPERMOTION 2 LALIGATV HYPERMOTION 3 @@ -198,25 +176,11 @@ M LALIGA 4 LALIGA Inside M LALIGA - La otra HD laSexta HD - Levante TV M Liga de Campeones 2 M Liga de Campeones 3 M Liga de Campeones 4 M Liga de Campeones 5 - M Liga de Campeones 6 - M Liga de Campeones 7 - M Liga de Campeones 8 - M Liga de Campeones 9 - M Liga de Campeones 10 - M Liga de Campeones 11 - M Liga de Campeones 12 - M Liga de Campeones 13 - M Liga de Campeones 14 - M Liga de Campeones 15 - M Liga de Campeones 16 - M Liga de Campeones 17 M Liga de Campeones Mega Mezzo HD @@ -226,14 +190,11 @@ NatGeo Wild NatureTime Nautical Channel - Navarra TV2 - Navarra TV HD Neox Nick Nick JR Nova Odisea - Paramount N Pro TV Qwest TV Real Madrid @@ -254,22 +215,15 @@ Telecinco HD TDP HD TelemadridI - Televigo - TV Castellon - RTV Canaria HD Ten Tennis Channel Toon Goggles - TPA HD TRACE Latina Trace Sport Stars TRACE Urban TR3CE - TV3 HD TV3CAT TV5MONDE - TVG2 HD - TVR HD Ubeat Warner TV XTRM diff --git a/sites/orangetv.orange.es/orangetv.orange.es.config.js b/sites/orangetv.orange.es/orangetv.orange.es.config.js index 5ec2b354d..db4c3f6ea 100644 --- a/sites/orangetv.orange.es/orangetv.orange.es.config.js +++ b/sites/orangetv.orange.es/orangetv.orange.es.config.js @@ -7,10 +7,12 @@ dayjs.extend(utc) doFetch.setDebugger(debug) -const API_PROGRAM_ENDPOINT = 'https://epg.orangetv.orange.es/epg/Smartphone_Android/1_PRO' -const API_CHANNEL_ENDPOINT = - 'https://pc.orangetv.orange.es/pc/api/rtv/v1/GetChannelList?bouquet_id=1&model_external_id=PC&filter_unsupported_channels=false&client=json' +const API_PROGRAM_ENDPOINT = 'https://epg.orangetv.orange.es/epg/SmartTV_Android/1_PRO' const API_IMAGE_ENDPOINT = 'https://pc.orangetv.orange.es/pc/api/rtv/v1/images' +const API_CHANNEL_ENDPOINT = + 'https://pc.orangetv.orange.es/pc/api/rtv/v1/GetChannelList?bouquet_external_id=1_PRO&model_external_id=PC&filter_unsupported_channels=true&max_pr_level=8&client=json' + +const caches = {} module.exports = { site: 'orangetv.orange.es', @@ -23,20 +25,32 @@ module.exports = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36' } }, - url: function({ date, segment = 1 }) { - return `${API_PROGRAM_ENDPOINT}/${date.format('YYYYMMDD')}_8h_${segment}.json` + url({ date }) { + return segmentUrl(date) }, async parser({ content, channel, date }) { const programs = [] const items = parseItems(content, channel) if (items.length) { - const queues = [ - module.exports.url({ date, segment: 2 }), - module.exports.url({ date, segment: 3 }) - ] - await doFetch(queues, (url, res) => { - items.push(...parseItems(res, channel)) - }) + const queues = [] + // fetch other segments or use cache if exist + for (let i = 2; i <= 3; i++) { + const url = segmentUrl(date, i) + if (caches[url] !== undefined) { + items.push(...caches[url]) + } else { + queues.push({ url, params: module.exports.request }) + } + } + if (queues.length) { + await doFetch(queues, (queue, res) => { + const segments = parseItems(res, channel) + items.push(...segments) + if (caches[queue.url] === undefined) { + caches[queue.url] = segments + } + }) + } programs.push( ...items.map(item => { return { @@ -73,6 +87,10 @@ module.exports = { } } +function segmentUrl(date, segment = 1) { + return `${API_PROGRAM_ENDPOINT}/${date.format('YYYYMMDD')}_8h_${segment}.json` +} + function parseIcon(item) { if (item.attachments.length) { const cover = item.attachments.find(i => i.name.match(/cover/i)) diff --git a/sites/orangetv.orange.es/orangetv.orange.es.test.js b/sites/orangetv.orange.es/orangetv.orange.es.test.js index 7e92021cc..3da8d8a1e 100644 --- a/sites/orangetv.orange.es/orangetv.orange.es.test.js +++ b/sites/orangetv.orange.es/orangetv.orange.es.test.js @@ -11,7 +11,7 @@ dayjs.extend(utc) jest.mock('axios') -const date = dayjs.utc('2025-01-12', 'YYYY-MM-DD').startOf('d') +const date = dayjs.utc('2026-05-29').startOf('d') const channel = { site_id: '1010', xmltv_id: 'La1.es' @@ -20,11 +20,11 @@ const channel = { axios.get.mockImplementation(url => { const result = {} const urls = { - 'https://epg.orangetv.orange.es/epg/Smartphone_Android/1_PRO/20250112_8h_1.json': + 'https://epg.orangetv.orange.es/epg/SmartTV_Android/1_PRO/20260529_8h_1.json': 'data1.json', - 'https://epg.orangetv.orange.es/epg/Smartphone_Android/1_PRO/20250112_8h_2.json': + 'https://epg.orangetv.orange.es/epg/SmartTV_Android/1_PRO/20260529_8h_2.json': 'data2.json', - 'https://epg.orangetv.orange.es/epg/Smartphone_Android/1_PRO/20250112_8h_3.json': + 'https://epg.orangetv.orange.es/epg/SmartTV_Android/1_PRO/20260529_8h_3.json': 'data3.json', } if (urls[url] !== undefined) { @@ -39,7 +39,7 @@ axios.get.mockImplementation(url => { it('can generate valid url', () => { expect(url({ date })).toBe( - 'https://epg.orangetv.orange.es/epg/Smartphone_Android/1_PRO/20250112_8h_1.json' + 'https://epg.orangetv.orange.es/epg/SmartTV_Android/1_PRO/20260529_8h_1.json' ) }) @@ -51,27 +51,27 @@ it('can parse response', async () => { return p }) - expect(results.length).toBe(18) + expect(results.length).toBe(21) expect(results[0]).toMatchObject({ - start: '2025-01-11T22:55:00.000Z', - stop: '2025-01-12T00:40:00.000Z', - title: 'Una joven prometedora', + start: '2026-05-28T21:23:54.000Z', + stop: '2026-05-28T23:06:22.000Z', + title: 'Llenos de gracia', description: - 'Cassie tenía un brillante futuro por delante. Sin embargo, un incidente provocó que no pudiese cumplir sus sueños. Con el paso del tiempo, tendrá la oportunidad de enmendar los errores del pasado.', - category: ['Cine', 'Drama', 'Suspense'], - icon: 'https://pc.orangetv.orange.es/pc/api/rtv/v1/images/epg/COVER/COVER_2247567.jpg' + 'Marina es una monja atípica, recién llegada a El Parral, un colegio con niños problemáticos. A pesar de que los internos, niños sin familia, la reciben con mil trastadas, poco a poco se crearán entre ellos vínculos casi familiares.', + category: ['Cine', 'Comedia', 'Familiar'], + icon: 'https://pc.orangetv.orange.es/pc/api/rtv/v1/images/epg/COVER/COVER_4609317.jpg' }) - expect(results[17]).toMatchObject({ - start: '2025-01-12T21:05:00.000Z', - stop: '2025-01-12T23:05:00.000Z', - title: 'Bake Off: Famosos al horno - T2, E01: Bake Off: Famosos al horno', - sub_title: 'Bake Off: Famosos al horno', + expect(results[18]).toMatchObject({ + start: '2026-05-29T18:55:00.000Z', + stop: '2026-05-29T19:45:00.000Z', + title: 'Telediario 2 - T2026, E149: 29 de Mayo de 2026', + sub_title: 'Telediario 2', description: - 'Nervios y emoción en el debut de los 14 pasteleros de la nueva temporada de Bake off Famosos al horno. En el primer programa hornearán unas galletas dedicadas a sus mascotas y una tradicional tarta de queso.', - category: ['Programa', 'Reality'], - icon: 'https://pc.orangetv.orange.es/pc/api/rtv/v1/images/epg/COVER/COVER_3520028.jpg', - season: 2, - episode: 1 + 'Programa de noticias diarias nacionales e internacionales en directo.', + category: ['Programa', 'Informativo'], + icon: 'https://pc.orangetv.orange.es/pc/api/rtv/v1/images/epg/COVER/COVER_4301953.jpg', + season: 2026, + episode: 149 }) })