diff --git a/sites/ziggogo.tv/ziggogo.tv.config.js b/sites/ziggogo.tv/ziggogo.tv.config.js index be48eee07a..d8b8f3e29e 100644 --- a/sites/ziggogo.tv/ziggogo.tv.config.js +++ b/sites/ziggogo.tv/ziggogo.tv.config.js @@ -72,8 +72,8 @@ module.exports = { subTitle: event.episodeName, description: event.longDescription ? event.longDescription : event.shortDescription, category: event.genres, - season: event.seasonNumber, - episode: event.episodeNumber, + season: parsePlausibleNumber(event.seasonNumber, 1000), + episode: parsePlausibleNumber(event.episodeNumber, 100000), country: event.countryOfOrigin, actor: event.actors, director: event.directors, @@ -115,6 +115,13 @@ module.exports = { } } +function parsePlausibleNumber(value, max) { + // events without real season/episode data carry internal ids in these fields + // (e.g. seasonNumber 93850000, episodeNumber 513104549); the ziggogo.tv + // frontend hides such values, so drop anything outside a plausible range + return value > 0 && value < max ? value : null +} + function segmentUrl(date, segment = 0) { return `https://staticqbr-prod-nl.gnp.cloud.ziggogo.tv/eng/web/epg-service-lite/nl/en/events/segments/${date.format( 'YYYYMMDD' diff --git a/sites/ziggogo.tv/ziggogo.tv.test.js b/sites/ziggogo.tv/ziggogo.tv.test.js index 381fa71a34..f44d5c1885 100644 --- a/sites/ziggogo.tv/ziggogo.tv.test.js +++ b/sites/ziggogo.tv/ziggogo.tv.test.js @@ -67,8 +67,10 @@ it('can parse response', async () => { description: 'Homeshoppingprogramma waarin de kijker via de telefoon allerlei producten kan aanschaffen.', category: ["Consumentenprogramma's", 'Shoppen'], - season: 78610000, - episode: 492767862 + // The source sends internal ids here rather than real numbering + // (season 78610000, episode 492767862), so they are dropped. + season: null, + episode: null }) expect(result[19]).toMatchObject({ start: '2026-05-30T22:44:00.000Z',