diff --git a/sites/jiotv.com/jiotv.com.config.js b/sites/jiotv.com/jiotv.com.config.js index ed30001cd..0ed263036 100644 --- a/sites/jiotv.com/jiotv.com.config.js +++ b/sites/jiotv.com/jiotv.com.config.js @@ -64,15 +64,19 @@ function parseList(string) { } function parseIcon(item) { - return item.episodeThumbnail - ? `https://jiotvimages.cdn.jio.com/dare_images/shows/700/-/${item.episodeThumbnail}` - : null + return parseImageUrl(item.episodeThumbnail) } function parseImage(item) { - return item.episodePoster - ? `https://jiotvimages.cdn.jio.com/dare_images/shows/700/-/${item.episodePoster}` - : null + return parseImageUrl(item.episodePoster) +} + +function parseImageUrl(value) { + if (!value) return null + // paths like "epgdata/.jpg" are served from the CDN root, not from /dare_images/shows//-/ + if (value.startsWith('epgdata/')) return `https://jiotvimages.cdn.jio.com/${value}` + + return `https://jiotvimages.cdn.jio.com/dare_images/shows/700/-/${value}` } function parseItems(content) { diff --git a/sites/jiotv.com/jiotv.com.test.js b/sites/jiotv.com/jiotv.com.test.js index 5732a555d..838653645 100644 --- a/sites/jiotv.com/jiotv.com.test.js +++ b/sites/jiotv.com/jiotv.com.test.js @@ -79,6 +79,29 @@ it('can parse response', () => { }) }) +it('can parse images served from the epgdata path', () => { + const content = JSON.stringify({ + epg: [ + { + showname: 'Power Lunch', + director: '', + starCast: '', + episodeThumbnail: 'epgdata/0e9fd651fd47416d3308954342235146.jpg', + episodePoster: 'epgdata/0e9fd651fd47416d3308954342235146.jpg', + startEpoch: 1753641000000, + endEpoch: 1753642800000 + } + ] + }) + + const results = parser({ content }) + + expect(results[0]).toMatchObject({ + icon: 'https://jiotvimages.cdn.jio.com/epgdata/0e9fd651fd47416d3308954342235146.jpg', + image: 'https://jiotvimages.cdn.jio.com/epgdata/0e9fd651fd47416d3308954342235146.jpg' + }) +}) + it('can handle empty guide', () => { const results = parser({ content: ''