diff --git a/package-lock.json b/package-lock.json index fb37ab9d..712c7af6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "csv-parser": "^3.0.0", "cwait": "^1.1.2", "dayjs": "^1.11.10", - "epg-grabber": "^0.36.1", + "epg-grabber": "^0.37.1", "epg-parser": "^0.2.0", "eslint": "^8.17.0", "eslint-config-prettier": "^9.0.0", @@ -2980,11 +2980,11 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -3936,9 +3936,9 @@ } }, "node_modules/epg-grabber": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.36.1.tgz", - "integrity": "sha512-i11ZtCjUWg8lNEq6K2IesSIBDhjPpcT2Mkge7249jK95bOfslvTKM6w+nt2DNamtdMcu512dVpcU9SphyjR4OA==", + "version": "0.37.1", + "resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.37.1.tgz", + "integrity": "sha512-Q5gFLhrQGe+ou97Rs/VBRLgtYxSsnwzUEXs/V0cVmJhwpQedwMlG4VyEcc1TUDm53A+61T5fTtpmCsNUVb9N3g==", "dependencies": { "axios": "^1.6.1", "axios-cache-interceptor": "^0.10.3", @@ -4456,9 +4456,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -4501,9 +4501,9 @@ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, "node_modules/follow-redirects": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz", - "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", @@ -7840,9 +7840,9 @@ } }, "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -10642,11 +10642,11 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "browserslist": { @@ -11321,9 +11321,9 @@ "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" }, "epg-grabber": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.36.1.tgz", - "integrity": "sha512-i11ZtCjUWg8lNEq6K2IesSIBDhjPpcT2Mkge7249jK95bOfslvTKM6w+nt2DNamtdMcu512dVpcU9SphyjR4OA==", + "version": "0.37.1", + "resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.37.1.tgz", + "integrity": "sha512-Q5gFLhrQGe+ou97Rs/VBRLgtYxSsnwzUEXs/V0cVmJhwpQedwMlG4VyEcc1TUDm53A+61T5fTtpmCsNUVb9N3g==", "requires": { "axios": "^1.6.1", "axios-cache-interceptor": "^0.10.3", @@ -11718,9 +11718,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "requires": { "to-regex-range": "^5.0.1" } @@ -11754,9 +11754,9 @@ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, "follow-redirects": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz", - "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==" + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" }, "foreground-child": { "version": "3.1.1", @@ -14174,9 +14174,9 @@ } }, "tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", diff --git a/package.json b/package.json index 3638aec6..f046875e 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "csv-parser": "^3.0.0", "cwait": "^1.1.2", "dayjs": "^1.11.10", - "epg-grabber": "^0.36.1", + "epg-grabber": "^0.37.1", "epg-parser": "^0.2.0", "eslint": "^8.17.0", "eslint-config-prettier": "^9.0.0", diff --git a/sites/9tv.co.il/9tv.co.il.config.js b/sites/9tv.co.il/9tv.co.il.config.js index aafd4bb6..b55f6a10 100644 --- a/sites/9tv.co.il/9tv.co.il.config.js +++ b/sites/9tv.co.il/9tv.co.il.config.js @@ -27,7 +27,7 @@ module.exports = { const stop = start.add(1, 'h') programs.push({ title: parseTitle($item), - icon: parseIcon($item), + image: parseImage($item), description: parseDescription($item), start, stop @@ -44,7 +44,7 @@ function parseStart($item, date) { return dayjs.tz(`${date.format('YYYY-MM-DD')} ${time}`, 'YYYY-MM-DD HH:mm', 'Asia/Jerusalem') } -function parseIcon($item) { +function parseImage($item) { const backgroundImage = $item('a > div.guide_info_group > div.guide_info_pict').css( 'background-image' ) diff --git a/sites/9tv.co.il/9tv.co.il.test.js b/sites/9tv.co.il/9tv.co.il.test.js index e55c1610..0672f1dd 100644 --- a/sites/9tv.co.il/9tv.co.il.test.js +++ b/sites/9tv.co.il/9tv.co.il.test.js @@ -31,14 +31,14 @@ it('can parse response', () => { start: '2022-03-06T04:30:00.000Z', stop: '2022-03-06T07:10:00.000Z', title: 'Слепая', - icon: 'https://www.9tv.co.il/download/pictures/img_id=8484.jpg', + image: 'https://www.9tv.co.il/download/pictures/img_id=8484.jpg', description: 'Она не очень любит говорить о себе или о том, кто и зачем к ней обращается. Живет уединенно, в глуши. Но тех, кто приходит -принимает. Она видит судьбы.' }, { start: '2022-03-06T07:10:00.000Z', stop: '2022-03-06T08:10:00.000Z', - icon: 'https://www.9tv.co.il/download/pictures/img_id=23694.jpg', + image: 'https://www.9tv.co.il/download/pictures/img_id=23694.jpg', title: 'Орел и решка. Морской сезон', description: 'Орел и решка. Морской сезон. Ведущие -Алина Астровская и Коля Серга.' } diff --git a/sites/abc.net.au/abc.net.au.config.js b/sites/abc.net.au/abc.net.au.config.js index 0a3eec0d..5caa9356 100644 --- a/sites/abc.net.au/abc.net.au.config.js +++ b/sites/abc.net.au/abc.net.au.config.js @@ -33,7 +33,7 @@ module.exports = { season: parseSeason(item), episode: parseEpisode(item), rating: parseRating(item), - icon: parseIcon(item), + image: parseImage(item), start: parseTime(item.start_time), stop: parseTime(item.end_time) }) @@ -106,7 +106,7 @@ function parseEpisode(item) { function parseTime(time) { return dayjs.tz(time, 'YYYY-MM-DD HH:mm', 'Australia/Sydney') } -function parseIcon(item) { +function parseImage(item) { return item.image_file ? `https://www.abc.net.au/tv/common/images/publicity/${item.image_file}` : null diff --git a/sites/abc.net.au/abc.net.au.test.js b/sites/abc.net.au/abc.net.au.test.js index 74f31fd8..769ee6ef 100644 --- a/sites/abc.net.au/abc.net.au.test.js +++ b/sites/abc.net.au/abc.net.au.test.js @@ -35,7 +35,7 @@ it('can parse response', () => { }, season: 22, episode: 4, - icon: 'https://www.abc.net.au/tv/common/images/publicity/ZW2178A004S00_460.jpg', + image: 'https://www.abc.net.au/tv/common/images/publicity/ZW2178A004S00_460.jpg', start: '2022-12-21T13:46:00.000Z', stop: '2022-12-21T14:44:00.000Z' } diff --git a/sites/allente.dk/allente.dk.config.js b/sites/allente.dk/allente.dk.config.js index 5c4806a1..adab26ca 100644 --- a/sites/allente.dk/allente.dk.config.js +++ b/sites/allente.dk/allente.dk.config.js @@ -22,7 +22,7 @@ module.exports = { title: item.title, category: item.details.categories, description: item.details.description, - icon: item.details.image, + image: item.details.image, season: parseSeason(item), episode: parseEpisode(item), start, diff --git a/sites/allente.dk/allente.dk.test.js b/sites/allente.dk/allente.dk.test.js index c09a8fd9..c3594d9d 100644 --- a/sites/allente.dk/allente.dk.test.js +++ b/sites/allente.dk/allente.dk.test.js @@ -32,7 +32,8 @@ it('can parse response', () => { category: ['other'], description: 'Svenskt träningsprogram från 2021. Styrka. Sofia Åhman leder SVT:s hemmagympapass. Denna gång fokuserar vi på styrka.', - icon: 'https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/21/2022-08-22/se.cs.svt1.event.A_41214031600.jpg?size=2560x1440', + image: + 'https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/21/2022-08-22/se.cs.svt1.event.A_41214031600.jpg?size=2560x1440', season: 4, episode: 1 } diff --git a/sites/allente.fi/allente.fi.config.js b/sites/allente.fi/allente.fi.config.js index fa829f1f..470dca85 100644 --- a/sites/allente.fi/allente.fi.config.js +++ b/sites/allente.fi/allente.fi.config.js @@ -22,7 +22,7 @@ module.exports = { title: item.title, category: item.details.categories, description: item.details.description, - icon: item.details.image, + image: item.details.image, season: parseSeason(item), episode: parseEpisode(item), start, diff --git a/sites/allente.fi/allente.fi.test.js b/sites/allente.fi/allente.fi.test.js index 93b3ecec..6e069a94 100644 --- a/sites/allente.fi/allente.fi.test.js +++ b/sites/allente.fi/allente.fi.test.js @@ -32,7 +32,8 @@ it('can parse response', () => { category: ['other'], description: 'Svenskt träningsprogram från 2021. Styrka. Sofia Åhman leder SVT:s hemmagympapass. Denna gång fokuserar vi på styrka.', - icon: 'https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/21/2022-08-22/se.cs.svt1.event.A_41214031600.jpg?size=2560x1440', + image: + 'https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/21/2022-08-22/se.cs.svt1.event.A_41214031600.jpg?size=2560x1440', season: 4, episode: 1 } diff --git a/sites/allente.no/allente.no.config.js b/sites/allente.no/allente.no.config.js index ba4e9adf..3406d64f 100644 --- a/sites/allente.no/allente.no.config.js +++ b/sites/allente.no/allente.no.config.js @@ -22,7 +22,7 @@ module.exports = { title: item.title, category: item.details.categories, description: item.details.description, - icon: item.details.image, + image: item.details.image, season: parseSeason(item), episode: parseEpisode(item), start, diff --git a/sites/allente.no/allente.no.test.js b/sites/allente.no/allente.no.test.js index 204d0a10..3ca1fbfc 100644 --- a/sites/allente.no/allente.no.test.js +++ b/sites/allente.no/allente.no.test.js @@ -32,7 +32,8 @@ it('can parse response', () => { category: ['other'], description: 'Svenskt träningsprogram från 2021. Styrka. Sofia Åhman leder SVT:s hemmagympapass. Denna gång fokuserar vi på styrka.', - icon: 'https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/21/2022-08-22/se.cs.svt1.event.A_41214031600.jpg?size=2560x1440', + image: + 'https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/21/2022-08-22/se.cs.svt1.event.A_41214031600.jpg?size=2560x1440', season: 4, episode: 1 } diff --git a/sites/allente.se/allente.se.config.js b/sites/allente.se/allente.se.config.js index 87d30fe9..972d6ee3 100644 --- a/sites/allente.se/allente.se.config.js +++ b/sites/allente.se/allente.se.config.js @@ -22,7 +22,7 @@ module.exports = { title: item.title, category: item.details.categories, description: item.details.description, - icon: item.details.image, + image: item.details.image, season: parseSeason(item), episode: parseEpisode(item), start, diff --git a/sites/allente.se/allente.se.test.js b/sites/allente.se/allente.se.test.js index 225d39c6..5c6e90cd 100644 --- a/sites/allente.se/allente.se.test.js +++ b/sites/allente.se/allente.se.test.js @@ -32,7 +32,8 @@ it('can parse response', () => { category: ['other'], description: 'Svenskt träningsprogram från 2021. Styrka. Sofia Åhman leder SVT:s hemmagympapass. Denna gång fokuserar vi på styrka.', - icon: 'https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/21/2022-08-22/se.cs.svt1.event.A_41214031600.jpg?size=2560x1440', + image: + 'https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/21/2022-08-22/se.cs.svt1.event.A_41214031600.jpg?size=2560x1440', season: 4, episode: 1 } diff --git a/sites/arirang.com/arirang.com.config.js b/sites/arirang.com/arirang.com.config.js index 17e9b911..219616f5 100644 --- a/sites/arirang.com/arirang.com.config.js +++ b/sites/arirang.com/arirang.com.config.js @@ -62,7 +62,7 @@ module.exports = { title: item.displayNm, start: parseStart(item), stop: parseStop(item), - icon: parseIcon(programDetail), + image: parseImage(programDetail), category: parseCategory(programDetail), description: parseDescription(programDetail) }) @@ -121,7 +121,7 @@ async function parseProgramDetail(item) { }) } -function parseIcon(programDetail) { +function parseImage(programDetail) { if (programDetail && programDetail.image && programDetail.image[0].url) { return programDetail.image[0].url } else { diff --git a/sites/arirang.com/arirang.com.test.js b/sites/arirang.com/arirang.com.test.js index a43ba5c7..2dd7d2a9 100644 --- a/sites/arirang.com/arirang.com.test.js +++ b/sites/arirang.com/arirang.com.test.js @@ -64,7 +64,8 @@ it('can parse response', async () => { title: 'WITHIN THE FRAME [R]', start: dayjs.tz(date, 'Asia/Seoul'), stop: dayjs.tz(date, 'Asia/Seoul').add(30, 'minute'), - icon: 'https://img.arirang.com/v1/AUTH_d52449c16d3b4bbca17d4fffd9fc44af/public/images/202308/2080840096998752900.png', + image: + 'https://img.arirang.com/v1/AUTH_d52449c16d3b4bbca17d4fffd9fc44af/public/images/202308/2080840096998752900.png', description: 'NEWS', category: 'Current Affairs' }) diff --git a/sites/artonline.tv/artonline.tv.config.js b/sites/artonline.tv/artonline.tv.config.js index f00e6fd6..4513751e 100644 --- a/sites/artonline.tv/artonline.tv.config.js +++ b/sites/artonline.tv/artonline.tv.config.js @@ -33,14 +33,14 @@ module.exports = { if (!content) return programs const items = JSON.parse(content) items.forEach(item => { - const icon = parseIcon(item) + const image = parseImage(item) const start = parseStart(item) const duration = parseDuration(item) const stop = start.add(duration, 's') programs.push({ title: item.title, description: item.description, - icon, + image, start, stop }) @@ -63,6 +63,6 @@ function parseDuration(item) { return parseInt(HH) * 3600 + parseInt(mm) * 60 + parseInt(ss) } -function parseIcon(item) { +function parseImage(item) { return item.thumbnail ? `https://www.artonline.tv${item.thumbnail}` : null } diff --git a/sites/artonline.tv/artonline.tv.test.js b/sites/artonline.tv/artonline.tv.test.js index 5f8e6843..315f056f 100644 --- a/sites/artonline.tv/artonline.tv.test.js +++ b/sites/artonline.tv/artonline.tv.test.js @@ -52,7 +52,7 @@ it('can parse response', () => { title: 'الراقصه و السياسي', description: 'تقرر الراقصه سونيا انشاء دار حضانه للأطفال اليتامى و عندما تتقدم بمشورعها للمسئول يرفض فتتحداه ، تلجأ للوزير عبد الحميد رأفت تربطه بها علاقة قديمة ، يخشى على مركزه و يرفض مساعدتها فتقرر كتابة مذكراتها بمساعدة أحد الصحفيين ، يتخوف عبد الحميد و المسئولين ثم يفاجأ عبد الحميد بحصول سونيا على الموافقه للمشورع و البدء في تنفيذه و ذلك لعلاقتها بأحد كبار المسئولين .', - icon: 'https://www.artonline.tv/UploadImages/Channel/ARTAFLAM1/03/AlRaqesaWaAlSeyasi.jpg' + image: 'https://www.artonline.tv/UploadImages/Channel/ARTAFLAM1/03/AlRaqesaWaAlSeyasi.jpg' } ]) }) diff --git a/sites/cableplus.com.uy/cableplus.com.uy.config.js b/sites/cableplus.com.uy/cableplus.com.uy.config.js index 017f6f45..65ad148b 100644 --- a/sites/cableplus.com.uy/cableplus.com.uy.config.js +++ b/sites/cableplus.com.uy/cableplus.com.uy.config.js @@ -48,7 +48,7 @@ module.exports = { programs.push({ title: parseTitle($item), categories: parseCategories($item), - icon: parseIcon($item), + image: parseImage($item), start, stop }) @@ -84,7 +84,7 @@ function parseTitle($item) { .trim() } -function parseIcon($item) { +function parseImage($item) { return $item('img').data('src') || $item('img').attr('src') || null } diff --git a/sites/cableplus.com.uy/cableplus.com.uy.test.js b/sites/cableplus.com.uy/cableplus.com.uy.test.js index 04298ba5..642a8ffa 100644 --- a/sites/cableplus.com.uy/cableplus.com.uy.test.js +++ b/sites/cableplus.com.uy/cableplus.com.uy.test.js @@ -51,7 +51,7 @@ it('can parse response', () => { start: '2023-02-12T09:30:00.000Z', stop: '2023-02-12T10:30:00.000Z', title: 'Revista agropecuaria', - icon: 'https://www.reportv.com.ar/buscador/img/Programas/2797844.jpg', + image: 'https://www.reportv.com.ar/buscador/img/Programas/2797844.jpg', categories: [] }) @@ -59,7 +59,7 @@ it('can parse response', () => { start: '2023-02-12T12:30:00.000Z', stop: '2023-02-12T13:30:00.000Z', title: 'De pago en pago', - icon: 'https://www.reportv.com.ar/buscador/img/Programas/3772835.jpg', + image: 'https://www.reportv.com.ar/buscador/img/Programas/3772835.jpg', categories: ['Cultural'] }) }) diff --git a/sites/canalplus-haiti.com/canalplus-haiti.com.config.js b/sites/canalplus-haiti.com/canalplus-haiti.com.config.js index f9ba119f..77c7d7fe 100644 --- a/sites/canalplus-haiti.com/canalplus-haiti.com.config.js +++ b/sites/canalplus-haiti.com/canalplus-haiti.com.config.js @@ -23,7 +23,7 @@ module.exports = { title: item.title, description: parseDescription(detail), category: parseCategory(detail), - icon: parseIcon(item), + image: parseImage(item), start: parseStart(item), stop: parseStop(item) }) @@ -70,7 +70,7 @@ function parseDescription(detail) { function parseCategory(detail) { return detail.detail.informations.subGenre || null } -function parseIcon(item) { +function parseImage(item) { return item.URLImage || item.URLImageDefault } diff --git a/sites/canalplus-haiti.com/canalplus-haiti.com.test.js b/sites/canalplus-haiti.com/canalplus-haiti.com.test.js index 53b667ee..4590d1ff 100644 --- a/sites/canalplus-haiti.com/canalplus-haiti.com.test.js +++ b/sites/canalplus-haiti.com/canalplus-haiti.com.test.js @@ -149,7 +149,8 @@ it('can parse response', done => { start: '2022-08-17T23:55:00.000Z', stop: '2022-08-18T00:40:00.000Z', title: 'New Amsterdam - S3 - Ep7', - icon: 'https://service.canal-overseas.com/image-api/v1/image/52a18a209e28380b199201961c27097e', + image: + 'https://service.canal-overseas.com/image-api/v1/image/52a18a209e28380b199201961c27097e', category: 'Série Hôpital', description: "C'est la journée nationale de dépistage du VIH et Max offre des soins gratuits à tous les malades séropositifs qui se présentent à New Amsterdam." diff --git a/sites/canalplus.com/canalplus.com.config.js b/sites/canalplus.com/canalplus.com.config.js index 34f1e06e..5f7d9e67 100644 --- a/sites/canalplus.com/canalplus.com.config.js +++ b/sites/canalplus.com/canalplus.com.config.js @@ -32,7 +32,7 @@ module.exports = { programs.push({ title: item.title, description: parseDescription(info), - icon: parseIcon(info), + image: parseImage(info), actors: parseCast(info, 'Avec :'), director: parseCast(info, 'De :'), writer: parseCast(info, 'Scénario :'), @@ -123,7 +123,7 @@ function parseStart(item) { return item && item.startTime ? dayjs(item.startTime) : null } -function parseIcon(info) { +function parseImage(info) { return info ? info.URLImage : null } diff --git a/sites/canalplus.com/canalplus.com.test.js b/sites/canalplus.com/canalplus.com.test.js index 13c72e8e..43c2fb0b 100644 --- a/sites/canalplus.com/canalplus.com.test.js +++ b/sites/canalplus.com/canalplus.com.test.js @@ -96,7 +96,8 @@ it('can parse response', done => { title: 'Le cercle', description: "Tant qu'il y aura du cinéma, LE CERCLE sera là. C'est la seule émission télévisée de débats critiques 100% consacrée au cinéma et elle rentre dans sa 18e saison. Chaque semaine, elle offre des joutes enflammées, joyeuses et sans condescendance, sur les films à l'affiche ; et invite avec \"Le questionnaire du CERCLE\" les réalisatrices et réalisateurs à venir partager leur passion cinéphile.", - icon: 'https://thumb.canalplus.pro/http/unsafe/{resolutionXY}/filters:quality({imageQualityPercentage})/img-hapi.canalplus.pro:80/ServiceImage/ImageID/107297573', + image: + 'https://thumb.canalplus.pro/http/unsafe/{resolutionXY}/filters:quality({imageQualityPercentage})/img-hapi.canalplus.pro:80/ServiceImage/ImageID/107297573', presenter: ['Lily Bloom'], rating: { system: 'CSA', @@ -109,7 +110,8 @@ it('can parse response', done => { title: 'Illusions perdues', description: "Pendant la Restauration, Lucien de Rubempré, jeune provincial d'Angoulême, se rêve poète. Il débarque à Paris en quête de gloire. Il a le soutien de Louise de Bargeton, une aristocrate qui croit en son talent. Pour gagner sa vie, Lucien trouve un emploi dans le journal dirigé par le peu scrupuleux Etienne Lousteau...", - icon: 'https://thumb.canalplus.pro/http/unsafe/{resolutionXY}/filters:quality({imageQualityPercentage})/img-hapi.canalplus.pro:80/ServiceImage/ImageID/107356485', + image: + 'https://thumb.canalplus.pro/http/unsafe/{resolutionXY}/filters:quality({imageQualityPercentage})/img-hapi.canalplus.pro:80/ServiceImage/ImageID/107356485', director: ['Xavier Giannoli'], actors: [ 'Benjamin Voisin', diff --git a/sites/chaines-tv.orange.fr/chaines-tv.orange.fr.config.js b/sites/chaines-tv.orange.fr/chaines-tv.orange.fr.config.js index 89349fd5..d8b49148 100644 --- a/sites/chaines-tv.orange.fr/chaines-tv.orange.fr.config.js +++ b/sites/chaines-tv.orange.fr/chaines-tv.orange.fr.config.js @@ -19,7 +19,7 @@ module.exports = { title: item.season?.serie?.title ? item.season.serie.title : item.title, category: item.genreDetailed, description: item.synopsis, - icon: parseIcon(item), + image: parseImage(item), start: start.toJSON(), stop: stop.toJSON() }) @@ -49,7 +49,7 @@ module.exports = { } } -function parseIcon(item) { +function parseImage(item) { return item.covers && item.covers.length ? item.covers[0].url : null } diff --git a/sites/chaines-tv.orange.fr/chaines-tv.orange.fr.test.js b/sites/chaines-tv.orange.fr/chaines-tv.orange.fr.test.js index 53b03f1c..cd4dae36 100644 --- a/sites/chaines-tv.orange.fr/chaines-tv.orange.fr.test.js +++ b/sites/chaines-tv.orange.fr/chaines-tv.orange.fr.test.js @@ -30,7 +30,7 @@ it('can parse response', () => { description: "Un tueur en série prend un plaisir pervers à prévenir les autorités de Tallahassee avant chaque nouveau meurtre. Rossi apprend le décès d'un de ses vieux amis.", category: 'Série Suspense', - icon: 'https://proxymedia.woopic.com/340/p/169_EMI_9697669.jpg' + image: 'https://proxymedia.woopic.com/340/p/169_EMI_9697669.jpg' } ]) }) diff --git a/sites/content.astro.com.my/content.astro.com.my.config.js b/sites/content.astro.com.my/content.astro.com.my.config.js index 1345db9f..12c7f2af 100644 --- a/sites/content.astro.com.my/content.astro.com.my.config.js +++ b/sites/content.astro.com.my/content.astro.com.my.config.js @@ -26,7 +26,7 @@ module.exports = { description: details.longSynopsis || details.shortSynopsis, actors: parseList(details.cast), directors: parseList(details.director), - icon: details.imageUrl, + image: details.imageUrl, rating: parseRating(details), categories: parseCategories(details), episode: parseEpisode(item), diff --git a/sites/content.astro.com.my/content.astro.com.my.test.js b/sites/content.astro.com.my/content.astro.com.my.test.js index 00fd5601..8e9b4660 100644 --- a/sites/content.astro.com.my/content.astro.com.my.test.js +++ b/sites/content.astro.com.my/content.astro.com.my.test.js @@ -52,7 +52,7 @@ it('can parse response', async () => { 'This classic drama depicts the many aspects of two complicated relationships set against an airline company. Will those involved ever find true love?', actors: ['Francis Ng Chun Yu', 'Joe Ma Tak Chung', 'Flora Chan Wai San'], directors: ['Joe Ma Tak Chung'], - icon: 'https://s3-ap-southeast-1.amazonaws.com/ams-astro/production/images/1035X328883.jpg', + image: 'https://s3-ap-southeast-1.amazonaws.com/ams-astro/production/images/1035X328883.jpg', rating: { system: 'LPF', value: 'U' diff --git a/sites/directv.com/directv.com.config.js b/sites/directv.com/directv.com.config.js index 50d2cb29..5d8c924e 100644 --- a/sites/directv.com/directv.com.config.js +++ b/sites/directv.com/directv.com.config.js @@ -38,7 +38,7 @@ module.exports = { category: item.subcategoryList, season: item.seasonNumber, episode: item.episodeNumber, - icon: parseIcon(item), + image: parseImage(item), start, stop }) @@ -92,7 +92,7 @@ function parseRating(item) { } : null } -function parseIcon(item) { +function parseImage(item) { return item.primaryImageUrl ? `https://www.directv.com${item.primaryImageUrl}` : null } function loadProgramDetail(programID) { diff --git a/sites/directv.com/directv.com.test.js b/sites/directv.com/directv.com.test.js index 1e17dc4a..a4abfa0c 100644 --- a/sites/directv.com/directv.com.test.js +++ b/sites/directv.com/directv.com.test.js @@ -56,7 +56,7 @@ it('can parse response', done => { description: 'Kay (Tommy Lee Jones) and Jay (Will Smith) reunite to provide our best line of defense against a seductress who levels the toughest challenge yet to the MIBs mission statement: protecting the earth from the scum of the universe. While investigating a routine crime, Jay uncovers a plot masterminded by Serleena (Boyle), a Kylothian monster who disguises herself as a lingerie model. When Serleena takes the MIB building hostage, there is only one person Jay can turn to -- his former MIB partner.', date: '2002', - icon: 'https://www.directv.com/db_photos/movies/AllPhotosAPGI/29160/29160_aa.jpg', + image: 'https://www.directv.com/db_photos/movies/AllPhotosAPGI/29160/29160_aa.jpg', category: ['Comedy', 'Movies Anywhere', 'Action/Adventure', 'Science Fiction'], rating: { system: 'MPA', @@ -69,7 +69,8 @@ it('can parse response', done => { title: 'South Park', sub_title: 'Goth Kids 3: Dawn of the Posers', description: 'The goth kids are sent to a camp for troubled children.', - icon: 'https://www.directv.com/db_photos/showcards/v5/AllPhotos/184338/p184338_b_v5_aa.jpg', + image: + 'https://www.directv.com/db_photos/showcards/v5/AllPhotos/184338/p184338_b_v5_aa.jpg', category: ['Series', 'Animation', 'Comedy'], season: 17, episode: 4, diff --git a/sites/disneystar.com/disneystar.com.config.js b/sites/disneystar.com/disneystar.com.config.js index c09bf630..83441725 100644 --- a/sites/disneystar.com/disneystar.com.config.js +++ b/sites/disneystar.com/disneystar.com.config.js @@ -34,7 +34,7 @@ module.exports = { programs.push({ title: item.title, description: item.desc, - icon: item.programmeurl, + image: item.programmeurl, category: item.subgenre, start: parseStart(item), stop: parseStop(item) diff --git a/sites/disneystar.com/disneystar.com.test.js b/sites/disneystar.com/disneystar.com.test.js index 1a04310a..ee883f35 100644 --- a/sites/disneystar.com/disneystar.com.test.js +++ b/sites/disneystar.com/disneystar.com.test.js @@ -49,7 +49,8 @@ it('can parse response', () => { title: 'Imlie', description: 'Imlie finds herself in deep trouble when she gets tied up before the wedding. Meanwhile, Aryan assumes that he is getting married to Imlie and performs the wedding rituals.', - icon: 'http://imagesstartv.whatsonindia.com/dasimages/landscape/360x270/59A9215E5DE13ABF4B05C59A6C87768AD61CA608M.jpg', + image: + 'http://imagesstartv.whatsonindia.com/dasimages/landscape/360x270/59A9215E5DE13ABF4B05C59A6C87768AD61CA608M.jpg', category: 'Drama' } ]) diff --git a/sites/dstv.com/dstv.com.config.js b/sites/dstv.com/dstv.com.config.js index c8f415b2..8e526ab5 100644 --- a/sites/dstv.com/dstv.com.config.js +++ b/sites/dstv.com/dstv.com.config.js @@ -35,7 +35,7 @@ module.exports = { programs.push({ title: item.Title, description: parseDescription(details), - icon: parseIcon(details), + image: parseImage(details), category: parseCategory(details), start: parseTime(item.StartTime, channel), stop: parseTime(item.EndTime, channel) @@ -178,7 +178,7 @@ function parseDescription(details) { return details ? details.Synopsis : null } -function parseIcon(details) { +function parseImage(details) { return details ? details.ThumbnailUri : null } diff --git a/sites/dstv.com/dstv.com.test.js b/sites/dstv.com/dstv.com.test.js index f6ddd45a..c2065a58 100644 --- a/sites/dstv.com/dstv.com.test.js +++ b/sites/dstv.com/dstv.com.test.js @@ -60,7 +60,8 @@ it('can parse response for ZA', async () => { title: 'UFC FN HL: Nzechukwu v Cutelaba', description: "'UFC Fight Night Highlights - Heavyweight Bout: Kennedy Nzechukwu vs Ion Cutelaba'. From The UFC APEX Center - Las Vegas, USA.", - icon: 'https://03mcdecdnimagerepository.blob.core.windows.net/epguideimage/img/271546_UFC Fight Night.png', + image: + 'https://03mcdecdnimagerepository.blob.core.windows.net/epguideimage/img/271546_UFC Fight Night.png', category: ['All Sport', 'Mixed Martial Arts'] }) }) @@ -91,7 +92,8 @@ it('can parse response for NG', async () => { title: 'UFC FN HL: Nzechukwu v Cutelaba', description: "'UFC Fight Night Highlights - Heavyweight Bout: Kennedy Nzechukwu vs Ion Cutelaba'. From The UFC APEX Center - Las Vegas, USA.", - icon: 'https://03mcdecdnimagerepository.blob.core.windows.net/epguideimage/img/271546_UFC Fight Night.png', + image: + 'https://03mcdecdnimagerepository.blob.core.windows.net/epguideimage/img/271546_UFC Fight Night.png', category: ['All Sport', 'Mixed Martial Arts'] }) }) diff --git a/sites/elcinema.com/elcinema.com.config.js b/sites/elcinema.com/elcinema.com.config.js index 3efe6c69..02b9897f 100644 --- a/sites/elcinema.com/elcinema.com.config.js +++ b/sites/elcinema.com/elcinema.com.config.js @@ -28,7 +28,7 @@ module.exports = { title: parseTitle(item), description: parseDescription(item), category: parseCategory(item), - icon: parseIcon(item), + image: parseImage(item), start, stop }) @@ -62,7 +62,7 @@ module.exports = { } } -function parseIcon(item) { +function parseImage(item) { const $ = cheerio.load(item) const imgSrc = $('.row > div.columns.small-3.large-1 > a > img').data('src') || diff --git a/sites/elcinema.com/elcinema.com.test.js b/sites/elcinema.com/elcinema.com.test.js index 553269ff..92a794fe 100644 --- a/sites/elcinema.com/elcinema.com.test.js +++ b/sites/elcinema.com/elcinema.com.test.js @@ -35,7 +35,8 @@ it('can parse response (en)', () => { start: '2022-08-27T14:25:00.000Z', stop: '2022-08-27T15:15:00.000Z', title: 'Station 19 S5', - icon: 'https://media.elcinema.com/uploads/_150x200_ec30d1a2251c8edf83334be4860184c74d2534d7ba508a334ad66fa59acc4926.jpg', + image: + 'https://media.elcinema.com/uploads/_150x200_ec30d1a2251c8edf83334be4860184c74d2534d7ba508a334ad66fa59acc4926.jpg', category: 'Series' }) }) @@ -52,7 +53,8 @@ it('can parse response (ar)', () => { start: '2022-08-27T14:25:00.000Z', stop: '2022-08-27T15:15:00.000Z', title: 'Station 19 S5', - icon: 'https://media.elcinema.com/uploads/_150x200_ec30d1a2251c8edf83334be4860184c74d2534d7ba508a334ad66fa59acc4926.jpg', + image: + 'https://media.elcinema.com/uploads/_150x200_ec30d1a2251c8edf83334be4860184c74d2534d7ba508a334ad66fa59acc4926.jpg', category: 'مسلسل' }) }) diff --git a/sites/entertainment.ie/entertainment.ie.config.js b/sites/entertainment.ie/entertainment.ie.config.js index 88350aaf..04ff4ec6 100644 --- a/sites/entertainment.ie/entertainment.ie.config.js +++ b/sites/entertainment.ie/entertainment.ie.config.js @@ -27,7 +27,7 @@ module.exports = { title: parseTitle($item), description: parseDescription($item), categories: parseCategories($item), - icon: parseIcon($item), + image: parseImage($item), start, stop }) @@ -54,7 +54,7 @@ module.exports = { } } -function parseIcon($item) { +function parseImage($item) { return $item('.text-holder > .btn-hold > .btn-wrap > a.btn-share').data('img') } diff --git a/sites/entertainment.ie/entertainment.ie.test.js b/sites/entertainment.ie/entertainment.ie.test.js index 7bdad654..eaf660dd 100644 --- a/sites/entertainment.ie/entertainment.ie.test.js +++ b/sites/entertainment.ie/entertainment.ie.test.js @@ -31,7 +31,8 @@ it('can parse response', () => { stop: '2023-06-29T08:00:00.000Z', title: 'EuroNews', description: 'European and international headlines live via satellite', - icon: 'https://img.resized.co/entertainment/eyJkYXRhIjoie1widXJsXCI6XCJodHRwczpcXFwvXFxcL3R2LmFzc2V0cy5wcmVzc2Fzc29jaWF0aW9uLmlvXFxcLzcxZDdkYWY2LWQxMjItNTliYy1iMGRjLTFkMjc2ODg1MzhkNC5qcGdcIixcIndpZHRoXCI6NDgwLFwiaGVpZ2h0XCI6Mjg4LFwiZGVmYXVsdFwiOlwiaHR0cHM6XFxcL1xcXC9lbnRlcnRhaW5tZW50LmllXFxcL2ltYWdlc1xcXC9uby1pbWFnZS5wbmdcIn0iLCJoYXNoIjoiZDhjYzA0NzFhMGZhOTI1Yjc5ODI0M2E3OWZjMGI2ZGJmMDIxMjllNyJ9/71d7daf6-d122-59bc-b0dc-1d27688538d4.jpg', + image: + 'https://img.resized.co/entertainment/eyJkYXRhIjoie1widXJsXCI6XCJodHRwczpcXFwvXFxcL3R2LmFzc2V0cy5wcmVzc2Fzc29jaWF0aW9uLmlvXFxcLzcxZDdkYWY2LWQxMjItNTliYy1iMGRjLTFkMjc2ODg1MzhkNC5qcGdcIixcIndpZHRoXCI6NDgwLFwiaGVpZ2h0XCI6Mjg4LFwiZGVmYXVsdFwiOlwiaHR0cHM6XFxcL1xcXC9lbnRlcnRhaW5tZW50LmllXFxcL2ltYWdlc1xcXC9uby1pbWFnZS5wbmdcIn0iLCJoYXNoIjoiZDhjYzA0NzFhMGZhOTI1Yjc5ODI0M2E3OWZjMGI2ZGJmMDIxMjllNyJ9/71d7daf6-d122-59bc-b0dc-1d27688538d4.jpg', categories: ['Factual'] }) @@ -40,7 +41,8 @@ it('can parse response', () => { stop: '2023-06-30T06:00:00.000Z', title: 'EuroNews', description: 'European and international headlines live via satellite', - icon: 'https://img.resized.co/entertainment/eyJkYXRhIjoie1widXJsXCI6XCJodHRwczpcXFwvXFxcL3R2LmFzc2V0cy5wcmVzc2Fzc29jaWF0aW9uLmlvXFxcLzcxZDdkYWY2LWQxMjItNTliYy1iMGRjLTFkMjc2ODg1MzhkNC5qcGdcIixcIndpZHRoXCI6NDgwLFwiaGVpZ2h0XCI6Mjg4LFwiZGVmYXVsdFwiOlwiaHR0cHM6XFxcL1xcXC9lbnRlcnRhaW5tZW50LmllXFxcL2ltYWdlc1xcXC9uby1pbWFnZS5wbmdcIn0iLCJoYXNoIjoiZDhjYzA0NzFhMGZhOTI1Yjc5ODI0M2E3OWZjMGI2ZGJmMDIxMjllNyJ9/71d7daf6-d122-59bc-b0dc-1d27688538d4.jpg', + image: + 'https://img.resized.co/entertainment/eyJkYXRhIjoie1widXJsXCI6XCJodHRwczpcXFwvXFxcL3R2LmFzc2V0cy5wcmVzc2Fzc29jaWF0aW9uLmlvXFxcLzcxZDdkYWY2LWQxMjItNTliYy1iMGRjLTFkMjc2ODg1MzhkNC5qcGdcIixcIndpZHRoXCI6NDgwLFwiaGVpZ2h0XCI6Mjg4LFwiZGVmYXVsdFwiOlwiaHR0cHM6XFxcL1xcXC9lbnRlcnRhaW5tZW50LmllXFxcL2ltYWdlc1xcXC9uby1pbWFnZS5wbmdcIn0iLCJoYXNoIjoiZDhjYzA0NzFhMGZhOTI1Yjc5ODI0M2E3OWZjMGI2ZGJmMDIxMjllNyJ9/71d7daf6-d122-59bc-b0dc-1d27688538d4.jpg', categories: ['Factual'] }) }) diff --git a/sites/flixed.io/flixed.io.config.js b/sites/flixed.io/flixed.io.config.js index 31513097..8715a3a7 100644 --- a/sites/flixed.io/flixed.io.config.js +++ b/sites/flixed.io/flixed.io.config.js @@ -16,7 +16,7 @@ module.exports = { title: item.program.title, description: item.program.longDescription, category: item.program.subType, - icon: parseIcon(item), + image: parseImage(item), start: parseStart(item), stop: parseStop(item) }) @@ -26,7 +26,7 @@ module.exports = { } } -function parseIcon(item) { +function parseImage(item) { const uri = item.program.preferredImage.uri return uri ? `https://adma.tmsimg.com/assets/${uri}` : null diff --git a/sites/flixed.io/flixed.io.test.js b/sites/flixed.io/flixed.io.test.js index 96b39910..9be7c47f 100644 --- a/sites/flixed.io/flixed.io.test.js +++ b/sites/flixed.io/flixed.io.test.js @@ -33,7 +33,7 @@ it('can parse response', () => { stop: '2023-01-19T06:00:00.000Z', title: 'The Greg Peterson Experience', category: 'Sports non-event', - icon: 'https://adma.tmsimg.com/assets/assets/p20628892_b_v13_aa.jpg?w=270&h=360', + image: 'https://adma.tmsimg.com/assets/assets/p20628892_b_v13_aa.jpg?w=270&h=360', description: 'A different kind of sports betting.' }) }) diff --git a/sites/foxtel.com.au/foxtel.com.au.config.js b/sites/foxtel.com.au/foxtel.com.au.config.js index 280c1285..09194f42 100644 --- a/sites/foxtel.com.au/foxtel.com.au.config.js +++ b/sites/foxtel.com.au/foxtel.com.au.config.js @@ -34,7 +34,7 @@ module.exports = { programs.push({ title: parseTitle($item), sub_title: parseSubTitle($item), - icon: parseIcon($item), + image: parseImage($item), rating: parseRating($item), season: parseSeason($item), episode: parseEpisode($item), @@ -87,7 +87,7 @@ function parseEpisode($item) { return episode ? parseInt(episode) : null } -function parseIcon($item) { +function parseImage($item) { return $item('.epg-event-thumbnail > img').attr('src') } diff --git a/sites/foxtel.com.au/foxtel.com.au.test.js b/sites/foxtel.com.au/foxtel.com.au.test.js index bce36437..12d43af9 100644 --- a/sites/foxtel.com.au/foxtel.com.au.test.js +++ b/sites/foxtel.com.au/foxtel.com.au.test.js @@ -41,7 +41,8 @@ it('can parse response', () => { stop: '2022-11-07T13:30:00.000Z', title: 'The Equalizer', sub_title: 'Glory', - icon: 'https://images1.resources.foxtel.com.au/store2/mount1/16/3/69e0v.jpg?maxheight=90&limit=91aa1c7a2c485aeeba0706941f79f111adb35830', + image: + 'https://images1.resources.foxtel.com.au/store2/mount1/16/3/69e0v.jpg?maxheight=90&limit=91aa1c7a2c485aeeba0706941f79f111adb35830', rating: { system: 'ACB', value: 'M' diff --git a/sites/gatotv.com/gatotv.com.config.js b/sites/gatotv.com/gatotv.com.config.js index 1ace7d5b..b814da0a 100644 --- a/sites/gatotv.com/gatotv.com.config.js +++ b/sites/gatotv.com/gatotv.com.config.js @@ -30,7 +30,7 @@ module.exports = { programs.push({ title: parseTitle($item), description: parseDescription($item), - icon: parseIcon($item), + image: parseImage($item), start, stop }) @@ -62,14 +62,16 @@ module.exports = { } function parseTitle($item) { - return $item('td:nth-child(4) > div > div > a > span,td:nth-child(3) > div > div > span,td:nth-child(3) > div > div > a > span').text() + return $item( + 'td:nth-child(4) > div > div > a > span,td:nth-child(3) > div > div > span,td:nth-child(3) > div > div > a > span' + ).text() } function parseDescription($item) { return $item('td:nth-child(4) > div').clone().children().remove().end().text().trim() } -function parseIcon($item) { +function parseImage($item) { return $item('td:nth-child(3) > a > img').attr('src') } diff --git a/sites/guidatv.sky.it/guidatv.sky.it.config.js b/sites/guidatv.sky.it/guidatv.sky.it.config.js index e222a54e..834deab4 100644 --- a/sites/guidatv.sky.it/guidatv.sky.it.config.js +++ b/sites/guidatv.sky.it/guidatv.sky.it.config.js @@ -24,7 +24,7 @@ module.exports = { start: parseStart(item), stop: parseStop(item), url: parseURL(item), - icon: parseIcon(item) + image: parseImage(item) }) }) @@ -79,7 +79,7 @@ function parseURL(item) { return item.content.url ? `https://guidatv.sky.it${item.content.url}` : null } -function parseIcon(item) { +function parseImage(item) { const cover = item.content.imagesMap ? item.content.imagesMap.find(i => i.key === 'cover') : null return cover && cover.img && cover.img.url ? `https://guidatv.sky.it${cover.img.url}` : null diff --git a/sites/guidatv.sky.it/guidatv.sky.it.test.js b/sites/guidatv.sky.it/guidatv.sky.it.test.js index 24ce181f..a114c1e0 100644 --- a/sites/guidatv.sky.it/guidatv.sky.it.test.js +++ b/sites/guidatv.sky.it/guidatv.sky.it.test.js @@ -35,7 +35,8 @@ it('can parse response', () => { "S6 Ep26 La resa dei conti - Fino all'ultimo la sfida tra Ardenzi e Carrano, nemici di vecchia data, riserva clamorosi colpi di scena. E si scopre che non e' tutto come sembrava.", season: 6, episode: 26, - icon: 'https://guidatv.sky.it/uuid/77c630aa-4744-44cb-a88e-3e871c6b73d9/cover?md5ChecksumParam=61135b999a63e3d3f4a933b9edeb0c1b', + image: + 'https://guidatv.sky.it/uuid/77c630aa-4744-44cb-a88e-3e871c6b73d9/cover?md5ChecksumParam=61135b999a63e3d3f4a933b9edeb0c1b', category: 'Intrattenimento/Fiction', url: 'https://guidatv.sky.it/serie-tv/distretto-di-polizia/stagione-6/episodio-26/77c630aa-4744-44cb-a88e-3e871c6b73d9' } diff --git a/sites/i24news.tv/i24news.tv.config.js b/sites/i24news.tv/i24news.tv.config.js index 9fab012e..556bea40 100644 --- a/sites/i24news.tv/i24news.tv.config.js +++ b/sites/i24news.tv/i24news.tv.config.js @@ -23,7 +23,7 @@ module.exports = { programs.push({ title: item.show.title, description: item.show.body, - icon: parseIcon(item), + image: parseImage(item), start: parseStart(item, date), stop: parseStop(item, date) }) @@ -33,7 +33,7 @@ module.exports = { } } -function parseIcon(item) { +function parseImage(item) { return item.show.image ? item.show.image.href : null } diff --git a/sites/i24news.tv/i24news.tv.test.js b/sites/i24news.tv/i24news.tv.test.js index 358244fd..54c05f7a 100644 --- a/sites/i24news.tv/i24news.tv.test.js +++ b/sites/i24news.tv/i24news.tv.test.js @@ -30,7 +30,8 @@ it('can parse response', () => { stop: '2022-03-06T13:28:00.000Z', title: 'تغطية خاصة', description: 'Special Edition', - icon: 'https://cdn.i24news.tv/uploads/a1/be/85/20/69/6f/32/1c/ed/b0/f8/5c/f6/1c/40/f9/a1be8520696f321cedb0f85cf61c40f9.png' + image: + 'https://cdn.i24news.tv/uploads/a1/be/85/20/69/6f/32/1c/ed/b0/f8/5c/f6/1c/40/f9/a1be8520696f321cedb0f85cf61c40f9.png' } ]) }) diff --git a/sites/iltalehti.fi/iltalehti.fi.config.js b/sites/iltalehti.fi/iltalehti.fi.config.js index a131ce76..4302794b 100644 --- a/sites/iltalehti.fi/iltalehti.fi.config.js +++ b/sites/iltalehti.fi/iltalehti.fi.config.js @@ -23,7 +23,7 @@ module.exports = { programs.push({ title: item.title, description: item.description, - icon: getIcon(item), + image: getImage(item), start: getStart(item), stop: getStop(item) }) @@ -52,7 +52,7 @@ module.exports = { } } -function getIcon(item) { +function getImage(item) { const image = item.images.find(i => i.type === 'default' && i.sizeTag === '1200x630') return image ? image.url : null diff --git a/sites/iltalehti.fi/iltalehti.fi.test.js b/sites/iltalehti.fi/iltalehti.fi.test.js index 2a0a5031..b117e3d0 100644 --- a/sites/iltalehti.fi/iltalehti.fi.test.js +++ b/sites/iltalehti.fi/iltalehti.fi.test.js @@ -33,7 +33,8 @@ it('can parse response', () => { title: 'Puoli seitsemän', description: 'Vieraana näyttelijä Elias Salonen. Puoli seiskassa vietetään sekä halloweeniä että joulua, kun Olli-Pekka tapaa todellisen jouluttajan. Juontajina Anniina Valtonen, Tuulianna Tola ja Olli-Pekka Kursi.', - icon: 'https://thumbor.prod.telkku.com/YTglotoUl7aJtzPtYnvM9tH03sY=/1200x630/smart/filters:quality(86):format(jpeg)/img.prod.telkku.com/program-images/0f885238ac16ce167a9d80eace450254.jpg' + image: + 'https://thumbor.prod.telkku.com/YTglotoUl7aJtzPtYnvM9tH03sY=/1200x630/smart/filters:quality(86):format(jpeg)/img.prod.telkku.com/program-images/0f885238ac16ce167a9d80eace450254.jpg' }) }) diff --git a/sites/ionplustv.com/ionplustv.com.config.js b/sites/ionplustv.com/ionplustv.com.config.js index eb370e9e..77073521 100644 --- a/sites/ionplustv.com/ionplustv.com.config.js +++ b/sites/ionplustv.com/ionplustv.com.config.js @@ -35,7 +35,7 @@ module.exports = { title: parseTitle($item), sub_title: parseSubTitle($item), description: parseDescription($item), - icon: parseIcon($item), + image: parseImage($item), rating: parseRating($item), start, stop @@ -50,7 +50,7 @@ function parseDescription($item) { return $item('.panel-body > div > div > div > p:nth-child(2)').text().trim() } -function parseIcon($item) { +function parseImage($item) { return $item('.video-thumbnail img').attr('src') } diff --git a/sites/ionplustv.com/ionplustv.com.test.js b/sites/ionplustv.com/ionplustv.com.test.js index 486f43ce..1a76e1f4 100644 --- a/sites/ionplustv.com/ionplustv.com.test.js +++ b/sites/ionplustv.com/ionplustv.com.test.js @@ -29,7 +29,8 @@ it('can parse response', () => { stop: '2022-11-08T11:00:00.000Z', title: 'All For Nothing?', sub_title: '226 : Randy & Sarita Vs. Jean-marcel & Melodie', - icon: 'https://ionplustv.com/static/programs/shows/all-for-nothing/show-banner-all-for-nothing-5ab162f2d8ee6-897aca6d7d9a7d4e2026ca3b592d8b2a047238fa.png', + image: + 'https://ionplustv.com/static/programs/shows/all-for-nothing/show-banner-all-for-nothing-5ab162f2d8ee6-897aca6d7d9a7d4e2026ca3b592d8b2a047238fa.png', rating: { system: 'MPA', value: 'TV-PG+L' diff --git a/sites/kan.org.il/kan.org.il.config.js b/sites/kan.org.il/kan.org.il.config.js index 0170d550..01aaec09 100644 --- a/sites/kan.org.il/kan.org.il.config.js +++ b/sites/kan.org.il/kan.org.il.config.js @@ -22,7 +22,7 @@ module.exports = { programs.push({ title: item.title, description: item.live_desc, - icon: item.picture_code, + image: item.picture_code, start: parseStart(item), stop: parseStop(item) }) diff --git a/sites/kan.org.il/kan.org.il.test.js b/sites/kan.org.il/kan.org.il.test.js index 44ef7354..4dfd2575 100644 --- a/sites/kan.org.il/kan.org.il.test.js +++ b/sites/kan.org.il/kan.org.il.test.js @@ -33,7 +33,7 @@ it('can parse response', () => { title: 'ארץ מולדת - בין תורכיה לבריטניה', description: "קבוצת תלמידים מתארגנת בפרוץ מלחמת העולם הראשונה להגיש עזרה לישוב. באמצעות התלמידים לומד הצופה על בעיותיו של הישוב בתקופת המלחמה, והתלבטותו בין נאמנות לשלטון העות'מאני לבין תקוותיו מהבריטים הכובשים.", - icon: 'https://kanweb.blob.core.windows.net/download/pictures/2021/1/20/imgid=45847_Z.jpeg' + image: 'https://kanweb.blob.core.windows.net/download/pictures/2021/1/20/imgid=45847_Z.jpeg' } ]) }) diff --git a/sites/kplus.vn/kplus.vn.config.js b/sites/kplus.vn/kplus.vn.config.js index 9ed52fd7..7fef7448 100644 --- a/sites/kplus.vn/kplus.vn.config.js +++ b/sites/kplus.vn/kplus.vn.config.js @@ -35,7 +35,7 @@ module.exports = { if (prev) prev.stop = start programs.push({ title: item.Program.Name, - icon: item.Program.Images, + image: item.Program.Images, category: item.Program.Genres, start, stop diff --git a/sites/kplus.vn/kplus.vn.test.js b/sites/kplus.vn/kplus.vn.test.js index 878d5fec..4eebea9d 100644 --- a/sites/kplus.vn/kplus.vn.test.js +++ b/sites/kplus.vn/kplus.vn.test.js @@ -42,14 +42,15 @@ it('can parse response', () => { start: '2022-03-14T23:15:00.000Z', stop: '2022-03-15T00:00:00.000Z', title: 'WEEKLY FILMS AND STARS, EP740', - icon: 'https://img.kplus.vn/images?filename=Media/HDVN/2022_02/ENT_DOC_LNO_21_2649421_2652183_2652183.jpg', + image: + 'https://img.kplus.vn/images?filename=Media/HDVN/2022_02/ENT_DOC_LNO_21_2649421_2652183_2652183.jpg', category: 'Documentary' }, { start: '2022-03-15T00:00:00.000Z', stop: '2022-03-15T01:00:00.000Z', title: 'ST. VINCENT', - icon: 'https://img.kplus.vn/images?filename=Media/HDVN/2020_05/MOV_COM__2632318_2632318.jpg', + image: 'https://img.kplus.vn/images?filename=Media/HDVN/2020_05/MOV_COM__2632318_2632318.jpg', category: 'Comedy' } ]) diff --git a/sites/m.tving.com/m.tving.com.config.js b/sites/m.tving.com/m.tving.com.config.js index 454d0c02..77ef4ea2 100644 --- a/sites/m.tving.com/m.tving.com.config.js +++ b/sites/m.tving.com/m.tving.com.config.js @@ -30,7 +30,7 @@ module.exports = { actors: item.program.actor, start: parseStart(item), stop: parseStop(item), - icon: parseIcon(item) + image: parseImage(item) }) }) @@ -63,7 +63,7 @@ module.exports = { } } -function parseIcon(item) { +function parseImage(item) { return item.program.image.length ? `https://image.tving.com${item.program.image[0].url}` : null } diff --git a/sites/m.tving.com/m.tving.com.test.js b/sites/m.tving.com/m.tving.com.test.js index d3ba9fc1..afb7a07f 100644 --- a/sites/m.tving.com/m.tving.com.test.js +++ b/sites/m.tving.com/m.tving.com.test.js @@ -30,7 +30,7 @@ it('can parse response', () => { expect(results[0]).toMatchObject({ title: '외계+인 1부', description: '외계+인 1부', - icon: 'https://image.tving.com/upload/cms/caip/CAIP0200/P001661154.jpg', + image: 'https://image.tving.com/upload/cms/caip/CAIP0200/P001661154.jpg', date: 2022, categories: [], directors: ['최동훈'], diff --git a/sites/mako.co.il/mako.co.il.config.js b/sites/mako.co.il/mako.co.il.config.js index 73474d11..0a6a0b19 100644 --- a/sites/mako.co.il/mako.co.il.config.js +++ b/sites/mako.co.il/mako.co.il.config.js @@ -20,7 +20,7 @@ module.exports = { programs.push({ title: item.ProgramName, description: item.EventDescription, - icon: item.Picture, + image: item.Picture, start, stop }) diff --git a/sites/mako.co.il/mako.co.il.test.js b/sites/mako.co.il/mako.co.il.test.js index ea059cbc..70f1586e 100644 --- a/sites/mako.co.il/mako.co.il.test.js +++ b/sites/mako.co.il/mako.co.il.test.js @@ -26,7 +26,7 @@ it('can parse response', () => { stop: '2022-03-07T00:39:00.000Z', title: 'רוקדים עם כוכבים - בר זומר', description: 'מהדורת החדשות המרכזית של הבוקר, האנשים הפרשנויות והכותרות שיעשו את היום.', - icon: 'https://img.mako.co.il/2022/02/13/DancingWithStars2022_EPG.jpg' + image: 'https://img.mako.co.il/2022/02/13/DancingWithStars2022_EPG.jpg' } ]) }) diff --git a/sites/maxtvgo.mk/maxtvgo.mk.config.js b/sites/maxtvgo.mk/maxtvgo.mk.config.js index aa5df0ae..9573d184 100644 --- a/sites/maxtvgo.mk/maxtvgo.mk.config.js +++ b/sites/maxtvgo.mk/maxtvgo.mk.config.js @@ -22,7 +22,7 @@ module.exports = { title: item.title, category: item.category, description: parseDescription(item), - icon: parseIcon(item), + image: parseImage(item), start: parseStart(item), stop: parseStop(item) }) @@ -60,7 +60,7 @@ function parseDescription(item) { return typeof item.desc === 'string' ? item.desc : null } -function parseIcon(item) { +function parseImage(item) { return item.icon['@attributes'].src } diff --git a/sites/maxtvgo.mk/maxtvgo.mk.test.js b/sites/maxtvgo.mk/maxtvgo.mk.test.js index e21d1854..f218c3ba 100644 --- a/sites/maxtvgo.mk/maxtvgo.mk.test.js +++ b/sites/maxtvgo.mk/maxtvgo.mk.test.js @@ -34,7 +34,8 @@ it('can parse response', () => { category: 'Останато', description: 'Екстремниот рибар, Џереми Вејд, е во потрага по слатководни риби кои јадат човечко месо. Со форензички методи, Џереми им илустрира на гледачите како овие нови чудовишта се создадени да убиваат.', - icon: 'https://prd-static-mkt.spectar.tv/rev-1636968170/image_transform.php/transform/1/epg_program_id/21949063/instance_id/1' + image: + 'https://prd-static-mkt.spectar.tv/rev-1636968170/image_transform.php/transform/1/epg_program_id/21949063/instance_id/1' } ]) }) @@ -55,7 +56,8 @@ it('can parse response with no description', () => { title: 'Палмето - игран филм', category: 'Останато', description: null, - icon: 'https://prd-static-mkt.spectar.tv/rev-1636968170/image_transform.php/transform/1/epg_program_id/21949063/instance_id/1' + image: + 'https://prd-static-mkt.spectar.tv/rev-1636968170/image_transform.php/transform/1/epg_program_id/21949063/instance_id/1' } ]) }) diff --git a/sites/mediaklikk.hu/mediaklikk.hu.config.js b/sites/mediaklikk.hu/mediaklikk.hu.config.js index 26f41c64..07d17a30 100644 --- a/sites/mediaklikk.hu/mediaklikk.hu.config.js +++ b/sites/mediaklikk.hu/mediaklikk.hu.config.js @@ -34,7 +34,7 @@ module.exports = { programs.push({ title: parseTitle($item), description: parseDescription($item), - icon: parseIcon($item), + image: parseImage($item), start, stop }) @@ -69,13 +69,13 @@ function parseDescription($item) { return $item('.program_about > .program_description > p').text().trim() } -function parseIcon($item) { +function parseImage($item) { const backgroundImage = $item('.program_about > .program_photo').css('background-image') if (!backgroundImage) return null - const [, icon] = backgroundImage.match(/url\('(.*)'\)/) || [null, null] - if (!icon) return null + const [, imageUrl] = backgroundImage.match(/url\('(.*)'\)/) || [null, null] + if (!imageUrl) return null - return `https:${icon}` + return `https:${imageUrl}` } function parseItems(content) { diff --git a/sites/mediaklikk.hu/mediaklikk.hu.test.js b/sites/mediaklikk.hu/mediaklikk.hu.test.js index a04efd6a..7ab04fbe 100644 --- a/sites/mediaklikk.hu/mediaklikk.hu.test.js +++ b/sites/mediaklikk.hu/mediaklikk.hu.test.js @@ -49,7 +49,8 @@ it('can parse response', () => { title: 'A hegyi doktor - I. évad', description: 'Maxl iskolatársának, Vroninak az anyja egy autóbalesetben meghal. A 20 éves testvér, Vinzenz magához szeretné venni a lányt, ám a gyámüggyel problémái akadnak, ezért megpróbálja elszöktetni.(Eredeti hang digitálisan.)', - icon: 'https://mediaklikk.hu/wp-content/uploads/sites/4/2019/10/A-hegyi-doktor-I-évad-e1571318391226-150x150.jpg' + image: + 'https://mediaklikk.hu/wp-content/uploads/sites/4/2019/10/A-hegyi-doktor-I-évad-e1571318391226-150x150.jpg' }) expect(results[56]).toMatchObject({ diff --git a/sites/melita.com/melita.com.config.js b/sites/melita.com/melita.com.config.js index 5edf4012..d344170c 100644 --- a/sites/melita.com/melita.com.config.js +++ b/sites/melita.com/melita.com.config.js @@ -18,7 +18,7 @@ module.exports = { programs.push({ title: item.title, description: item.shortSynopsis, - icon: parseIcon(item), + image: parseImage(item), category: item.tags, season: item.season, episode: item.episode, @@ -59,7 +59,7 @@ function parseStop(item) { return dayjs(item.published.end) } -function parseIcon(item) { +function parseImage(item) { return item.posterImage ? item.posterImage + '?form=epg-card-6' : null } diff --git a/sites/melita.com/melita.com.test.js b/sites/melita.com/melita.com.test.js index 06e49131..2cedf24e 100644 --- a/sites/melita.com/melita.com.test.js +++ b/sites/melita.com/melita.com.test.js @@ -35,7 +35,8 @@ it('can parse response', () => { 'Symphony of Illumination - Robin gets some bad news and decides to keep it to herself. Marshall decorates the house.', season: 7, episode: 12, - icon: 'https://androme.melitacable.com/media/images/epg/bc/07/p8953134_e_h10_ad.jpg?form=epg-card-6', + image: + 'https://androme.melitacable.com/media/images/epg/bc/07/p8953134_e_h10_ad.jpg?form=epg-card-6', category: ['comedy'] } ]) diff --git a/sites/mewatch.sg/mewatch.sg.config.js b/sites/mewatch.sg/mewatch.sg.config.js index e8f8bff6..4c945609 100644 --- a/sites/mewatch.sg/mewatch.sg.config.js +++ b/sites/mewatch.sg/mewatch.sg.config.js @@ -16,7 +16,7 @@ module.exports = { programs.push({ title: info.title, description: info.description, - icon: info.images.tile, + image: info.images.tile, episode: info.episodeNumber, season: info.seasonNumber, start: parseStart(item), diff --git a/sites/mewatch.sg/mewatch.sg.test.js b/sites/mewatch.sg/mewatch.sg.test.js index 787fcf5f..adc73f2f 100644 --- a/sites/mewatch.sg/mewatch.sg.test.js +++ b/sites/mewatch.sg/mewatch.sg.test.js @@ -33,7 +33,8 @@ it('can parse response', () => { title: 'Open Homes S3 - EP 2', description: 'Mike heads down to the Sydney beaches to visit a beachside renovation with all the bells and whistles, we see a kitchen tip and recipe anyone can do at home. We finish up in the prestigious Byron bay to visit a multi million dollar award winning home.', - icon: "https://production.togglestatic.com/shain/v1/dataservice/ResizeImage/$value?Format='jpg'&Quality=85&ImageId='4853697'&EntityType='LinearSchedule'&EntityId='788a7dd9-9b12-446f-91b4-c8ac9fec95e5'&Width=1280&Height=720&device=web_browser&subscriptions=Anonymous&segmentationTags=all", + image: + "https://production.togglestatic.com/shain/v1/dataservice/ResizeImage/$value?Format='jpg'&Quality=85&ImageId='4853697'&EntityType='LinearSchedule'&EntityId='788a7dd9-9b12-446f-91b4-c8ac9fec95e5'&Width=1280&Height=720&device=web_browser&subscriptions=Anonymous&segmentationTags=all", episode: 2, season: 3, rating: { diff --git a/sites/mi.tv/mi.tv.config.js b/sites/mi.tv/mi.tv.config.js index 76eb6742..fde677db 100644 --- a/sites/mi.tv/mi.tv.config.js +++ b/sites/mi.tv/mi.tv.config.js @@ -34,7 +34,7 @@ module.exports = { title: parseTitle($item), category: parseCategory($item), description: parseDescription($item), - icon: parseIcon($item), + image: parseImage($item), start, stop }) @@ -93,11 +93,11 @@ function parseDescription($item) { return $item('a > div.content > p.synopsis').text().trim() } -function parseIcon($item) { +function parseImage($item) { const backgroundImage = $item('a > div.image-parent > div.image').css('background-image') - const [, icon] = backgroundImage.match(/url\('(.*)'\)/) || [null, null] + const [, image] = backgroundImage.match(/url\('(.*)'\)/) || [null, null] - return icon + return image } function parseItems(content) { diff --git a/sites/mi.tv/mi.tv.test.js b/sites/mi.tv/mi.tv.test.js index 801bc68f..5bd1a9f3 100644 --- a/sites/mi.tv/mi.tv.test.js +++ b/sites/mi.tv/mi.tv.test.js @@ -33,7 +33,7 @@ it('can parse response', () => { title: 'Trasnoche de 24/7', category: 'Interés general', description: 'Lo más visto de la semana en nuestra pantalla.', - icon: 'https://cdn.mitvstatic.com/programs/fallback_other_l_m.jpg' + image: 'https://cdn.mitvstatic.com/programs/fallback_other_l_m.jpg' }, { start: '2021-11-24T23:00:00.000Z', @@ -42,7 +42,7 @@ it('can parse response', () => { category: 'Noticiero', description: 'Cerramos el día con un completo resumen de los temas más relevantes con columnistas y análisis especiales para terminar el día.', - icon: 'https://cdn.mitvstatic.com/programs/fallback_other_l_m.jpg' + image: 'https://cdn.mitvstatic.com/programs/fallback_other_l_m.jpg' }, { start: '2021-11-25T01:00:00.000Z', @@ -51,7 +51,7 @@ it('can parse response', () => { category: 'Cultural', description: 'La energía tiene mucho para mostrar. Este programa reúne a las principales empresas y protagonistas de la actividad que esta revolucionando la región.', - icon: 'https://cdn.mitvstatic.com/programs/fallback_other_l_m.jpg' + image: 'https://cdn.mitvstatic.com/programs/fallback_other_l_m.jpg' } ]) }) diff --git a/sites/mon-programme-tv.be/mon-programme-tv.be.config.js b/sites/mon-programme-tv.be/mon-programme-tv.be.config.js index 436270f7..23307f4f 100644 --- a/sites/mon-programme-tv.be/mon-programme-tv.be.config.js +++ b/sites/mon-programme-tv.be/mon-programme-tv.be.config.js @@ -34,7 +34,7 @@ module.exports = { title: parseTitle($item), description: parseDescription($item), category: parseCategory($item), - icon: parseIcon($item), + image: parseImage($item), start, stop }) @@ -85,7 +85,7 @@ function parseCategory($item) { return $item('.type').text().trim() } -function parseIcon($item) { +function parseImage($item) { return $item('.image img').data('src') } diff --git a/sites/mon-programme-tv.be/mon-programme-tv.be.test.js b/sites/mon-programme-tv.be/mon-programme-tv.be.test.js index de0d4631..c6dc381a 100644 --- a/sites/mon-programme-tv.be/mon-programme-tv.be.test.js +++ b/sites/mon-programme-tv.be/mon-programme-tv.be.test.js @@ -32,7 +32,7 @@ it('can parse response', () => { stop: '2023-01-19T05:55:00.000Z', title: 'LN Matin', category: 'Magazine Actualité', - icon: 'https://dnsmptv-img.pragma-consult.be/imgs/picto/132/Reportage_1.jpg' + image: 'https://dnsmptv-img.pragma-consult.be/imgs/picto/132/Reportage_1.jpg' }) expect(results[1]).toMatchObject({ @@ -40,7 +40,7 @@ it('can parse response', () => { stop: '2023-01-19T06:00:00.000Z', title: 'Météo', category: 'Météo', - icon: 'https://dnsmptv-img.pragma-consult.be/imgs/picto/132/Meteo.jpg' + image: 'https://dnsmptv-img.pragma-consult.be/imgs/picto/132/Meteo.jpg' }) expect(results[8]).toMatchObject({ @@ -49,7 +49,7 @@ it('can parse response', () => { title: 'Le journal', description: "L'information de la mi-journée avec des JT...", category: 'Journal', - icon: 'https://dnsmptv-img.pragma-consult.be/imgs/picto/132/journal.jpg' + image: 'https://dnsmptv-img.pragma-consult.be/imgs/picto/132/journal.jpg' }) }) diff --git a/sites/mtel.ba/mtel.ba.config.js b/sites/mtel.ba/mtel.ba.config.js index dcd9add8..2da967bd 100644 --- a/sites/mtel.ba/mtel.ba.config.js +++ b/sites/mtel.ba/mtel.ba.config.js @@ -26,7 +26,7 @@ module.exports = { title: item.title, description: item.description, category: item.category, - icon: item.image, + image: item.image, start: parseStart(item).toJSON(), stop: parseStop(item).toJSON() }) diff --git a/sites/mtel.ba/mtel.ba.test.js b/sites/mtel.ba/mtel.ba.test.js index d9e2a9b6..5fe0d8d6 100644 --- a/sites/mtel.ba/mtel.ba.test.js +++ b/sites/mtel.ba/mtel.ba.test.js @@ -32,7 +32,7 @@ it('can parse response', () => { start: '2021-11-09T22:29:00.000Z', stop: '2021-11-09T23:46:00.000Z', title: 'Šuma', - icon: 'https://mtel.ba/oec/images/epg/60881491.jpg', + image: 'https://mtel.ba/oec/images/epg/60881491.jpg', description: 'Krajem decembra 1947. godine jugoslovenski predsjednik Josip Broz Tito prvi put je posjetio Rumuniju. Da bi učvrstili novo socijalističko prijateljstvo, rumunski zvaničnici su poklonili Titu sliku velikog rumunskog umjetnika Jona Andreskua pod nazivom Šuma. Mnogo godina kasnije ta slika je umješana u napetu špijunsku priču i otkriva tajnu koja će uzdrmati temelje i Jugoslavije i Rumunije. Film je svjedok kompleksnosti i raznovrsnosti glasova koji čine ono što zovemo stvarnošću.', category: 'Televizijski film' diff --git a/sites/mts.rs/mts.rs.config.js b/sites/mts.rs/mts.rs.config.js index 8be45462..251cae94 100644 --- a/sites/mts.rs/mts.rs.config.js +++ b/sites/mts.rs/mts.rs.config.js @@ -28,7 +28,7 @@ module.exports = { title: item.title, category: item.category, description: item.description, - icon: item.image, + image: item.image, start: parseStart(item), stop: parseStop(item) }) diff --git a/sites/mts.rs/mts.rs.test.js b/sites/mts.rs/mts.rs.test.js index 7fff1104..220dd9a1 100644 --- a/sites/mts.rs/mts.rs.test.js +++ b/sites/mts.rs/mts.rs.test.js @@ -36,7 +36,8 @@ it('can parse response', () => { stop: '2021-11-07T00:43:00.000Z', title: 'Zaboravljeni zlo\u010din', category: 'Bioskopski film', - icon: 'https://mts.rs/oec/images/epg/2_abb81cc24d8ce957eece50f991a31e59780e4e53_E7D8ECDE568E84E3C86CCDBDB647355E.jpg', + image: + 'https://mts.rs/oec/images/epg/2_abb81cc24d8ce957eece50f991a31e59780e4e53_E7D8ECDE568E84E3C86CCDBDB647355E.jpg', description: 'Novinarka-fotoreporter, D\u017ein, istra\u017euje okrutno i senzacionalno, nere\u0161eno ubistvo sekirom iz davne 1873. godine. Ubistvo koje koincidira sa nedavnim identi\u010dnim brutalnim dvostrukim ubistvom. Zaplet se odvija izme\u0111u pri\u010de o\u010devica iz toga doba - pri\u010de iz novinske arhive i D\u017einine privatne borbe sa ljubomorom i sumnjom koje prate njen brak.' } diff --git a/sites/musor.tv/musor.tv.config.js b/sites/musor.tv/musor.tv.config.js index 6a58e6b4..d8e75543 100644 --- a/sites/musor.tv/musor.tv.config.js +++ b/sites/musor.tv/musor.tv.config.js @@ -27,7 +27,7 @@ module.exports = { programs.push({ title: parseTitle($item), description: parseDescription($item), - icon: parseIcon($item), + image: parseImage($item), start, stop }) @@ -59,7 +59,7 @@ module.exports = { } } -function parseIcon($item) { +function parseImage($item) { const imgSrc = $item('div.smartpe_screenshot > img').attr('src') return imgSrc ? `https:${imgSrc}` : null diff --git a/sites/nostv.pt/nostv.pt.config.js b/sites/nostv.pt/nostv.pt.config.js index 0f829594..a823d165 100644 --- a/sites/nostv.pt/nostv.pt.config.js +++ b/sites/nostv.pt/nostv.pt.config.js @@ -10,15 +10,20 @@ const headers = { 'X-Core-Contentratinglimit': '0', 'X-Core-Deviceid': '', 'X-Core-Devicetype': 'web', - 'Origin': 'https://nostv.pt', - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' + Origin: 'https://nostv.pt', + 'User-Agent': + 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' } module.exports = { site: 'nostv.pt', days: 2, url({ channel, date }) { - return `https://tyr-prod.apigee.net/nostv/ott/schedule/range/contents/guest?channels=${channel.site_id}&minDate=${date.format('YYYY-MM-DD')}T00:00:00Z&maxDate=${date.format('YYYY-MM-DD')}T23:59:59Z&isDateInclusive=true&client_id=${headers['X-Apikey']}` + return `https://tyr-prod.apigee.net/nostv/ott/schedule/range/contents/guest?channels=${ + channel.site_id + }&minDate=${date.format('YYYY-MM-DD')}T00:00:00Z&maxDate=${date.format( + 'YYYY-MM-DD' + )}T23:59:59Z&isDateInclusive=true&client_id=${headers['X-Apikey']}` }, request: { headers }, parser({ content }) { @@ -32,9 +37,9 @@ module.exports = { description: item.Metadata?.Description, season: item.Metadata?.Season, episode: item.Metadata?.Episode, - icon: item.Images ? - `https://mage.stream.nos.pt/v1/nostv_mage/Images?sourceUri=${item.Images[0].Url}&profile=ott_1_452x340&client_id=${headers['X-Apikey']}` : - null, + image: item.Images + ? `https://mage.stream.nos.pt/v1/nostv_mage/Images?sourceUri=${item.Images[0].Url}&profile=ott_1_452x340&client_id=${headers['X-Apikey']}` + : null, start: dayjs.utc(item.UtcDateTimeStart), stop: dayjs.utc(item.UtcDateTimeEnd) }) @@ -45,7 +50,10 @@ module.exports = { }, async channels() { const result = await axios - .get(`https://tyr-prod.apigee.net/nostv/ott/channels/guest?client_id=${headers['X-Apikey']}`, { headers }) + .get( + `https://tyr-prod.apigee.net/nostv/ott/channels/guest?client_id=${headers['X-Apikey']}`, + { headers } + ) .then(r => r.data) .catch(console.error) diff --git a/sites/nostv.pt/nostv.pt.test.js b/sites/nostv.pt/nostv.pt.test.js index 76259a56..47297845 100644 --- a/sites/nostv.pt/nostv.pt.test.js +++ b/sites/nostv.pt/nostv.pt.test.js @@ -22,12 +22,11 @@ it('can generate valid url', () => { it('can parse response', () => { const content = fs.readFileSync(path.resolve(__dirname, '__data__/data.json')) - const results = parser({ content }) - .map(p => { - p.start = p.start.toJSON() - p.stop = p.stop.toJSON() - return p - }) + const results = parser({ content }).map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) expect(results[0]).toMatchObject({ start: '2023-12-11T16:30:00.000Z', @@ -37,7 +36,8 @@ it('can parse response', () => { 'A história de dois melhores amigos veterinários e o seu extraordinário trabalho na Austrália.', season: 1, episode: 12, - icon: 'https://mage.stream.nos.pt/v1/nostv_mage/Images?sourceUri=http://vip.pam.local.internal/PAM.Images/Store/8329ed1aec5d4c0faa2056972256ff9f&profile=ott_1_452x340&client_id=xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI' + image: + 'https://mage.stream.nos.pt/v1/nostv_mage/Images?sourceUri=http://vip.pam.local.internal/PAM.Images/Store/8329ed1aec5d4c0faa2056972256ff9f&profile=ott_1_452x340&client_id=xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI' }) }) diff --git a/sites/novacyprus.com/novacyprus.com.config.js b/sites/novacyprus.com/novacyprus.com.config.js index 0eb06083..6bf63c84 100644 --- a/sites/novacyprus.com/novacyprus.com.config.js +++ b/sites/novacyprus.com/novacyprus.com.config.js @@ -27,7 +27,7 @@ module.exports = { programs.push({ title: item.title, description: item.description, - icon: parseIcon(item), + image: parseImage(item), start, stop }) @@ -55,7 +55,7 @@ function parseStart(item) { return dayjs.tz(item.datetime, 'YYYY-MM-DD HH:mm:ss', 'Asia/Nicosia') } -function parseIcon(item) { +function parseImage(item) { return item.mediaItems.length ? item.mediaItems[0].CdnUrl : null } diff --git a/sites/novacyprus.com/novacyprus.com.test.js b/sites/novacyprus.com/novacyprus.com.test.js index 45645807..095b5998 100644 --- a/sites/novacyprus.com/novacyprus.com.test.js +++ b/sites/novacyprus.com/novacyprus.com.test.js @@ -32,7 +32,8 @@ it('can parse response', () => { stop: '2021-11-17T06:10:00.000Z', title: 'Δεσμοί Αίματος', description: 'Θρίλερ Μυστηρίου', - icon: 'http://cache-forthnet.secure.footprint.net/linear/3/0/305608_COMMOBLOOX_GUIDE_STILL.jpg' + image: + 'http://cache-forthnet.secure.footprint.net/linear/3/0/305608_COMMOBLOOX_GUIDE_STILL.jpg' } ]) }) diff --git a/sites/nuevosiglo.com.uy/nuevosiglo.com.uy.config.js b/sites/nuevosiglo.com.uy/nuevosiglo.com.uy.config.js index 961d04cd..37429ac8 100644 --- a/sites/nuevosiglo.com.uy/nuevosiglo.com.uy.config.js +++ b/sites/nuevosiglo.com.uy/nuevosiglo.com.uy.config.js @@ -33,7 +33,7 @@ module.exports = { programs.push({ title: details.main_title, description: details.short_argument, - icon: parseIcon(details), + image: parseImage(details), actors: parseActors(details), rating: parseRating(details), date: details.year, @@ -87,7 +87,7 @@ function parseActors(details) { return details.actors.split(', ') } -function parseIcon(details) { +function parseImage(details) { return details.image ? `https://img-ns.s3.amazonaws.com/grid_data/${details.image}` : null } diff --git a/sites/nuevosiglo.com.uy/nuevosiglo.com.uy.test.js b/sites/nuevosiglo.com.uy/nuevosiglo.com.uy.test.js index 9d4e27fb..fbd2bf02 100644 --- a/sites/nuevosiglo.com.uy/nuevosiglo.com.uy.test.js +++ b/sites/nuevosiglo.com.uy/nuevosiglo.com.uy.test.js @@ -51,7 +51,7 @@ it('can parse response', async () => { title: 'Jurassic World: Dominion', description: 'Años después de la destrucción de Isla Nublar, los dinosaurios viven y cazan junto a los humanos. Este equilibrio determinará, si los humanos seguirán siendo los depredadores máximos en un planeta que comparten con las criaturas temibles.', - icon: 'https://img-ns.s3.amazonaws.com/grid_data/23354476.jpg', + image: 'https://img-ns.s3.amazonaws.com/grid_data/23354476.jpg', date: '2022', rating: { system: 'MPAA', @@ -66,7 +66,7 @@ it('can parse response', async () => { title: 'Black Adam', description: 'Black Adam es liberado de su tumba casi cinco mil años después de haber sido encarcelado y recibir sus poderes de los antiguos dioses. Ahora está listo para desatar su forma única de justicia en el mundo.', - icon: 'https://img-ns.s3.amazonaws.com/grid_data/24638423.jpg', + image: 'https://img-ns.s3.amazonaws.com/grid_data/24638423.jpg', date: '2022', rating: { system: 'MPAA', diff --git a/sites/pickx.be/pickx.be.config.js b/sites/pickx.be/pickx.be.config.js index e7eb3f10..37bbb1f8 100644 --- a/sites/pickx.be/pickx.be.config.js +++ b/sites/pickx.be/pickx.be.config.js @@ -2,33 +2,34 @@ const axios = require('axios') const dayjs = require('dayjs') const utc = require('dayjs/plugin/utc') -let apiVersion; -let isApiVersionFetched = false; +let apiVersion +let isApiVersionFetched = false -(async () => { +;(async () => { try { - await fetchApiVersion(); - isApiVersionFetched = true; - + await fetchApiVersion() + isApiVersionFetched = true } catch (error) { - console.error('Error during script initialization:', error); + console.error('Error during script initialization:', error) } -})(); +})() dayjs.extend(utc) - + module.exports = { site: 'pickx.be', days: 2, apiVersion: function () { - return apiVersion; + return apiVersion }, - fetchApiVersion: fetchApiVersion, // Export fetchApiVersion + fetchApiVersion: fetchApiVersion, // Export fetchApiVersion url: async function ({ channel, date }) { while (!isApiVersionFetched) { - await new Promise(resolve => setTimeout(resolve, 100)); // Wait for 100 milliseconds + await new Promise(resolve => setTimeout(resolve, 100)) // Wait for 100 milliseconds } - return `https://px-epg.azureedge.net/airings/${apiVersion}/${date.format('YYYY-MM-DD')}/channel/${channel.site_id}?timezone=Europe%2FBrussels`; + return `https://px-epg.azureedge.net/airings/${apiVersion}/${date.format( + 'YYYY-MM-DD' + )}/channel/${channel.site_id}?timezone=Europe%2FBrussels` }, request: { headers: { @@ -45,10 +46,12 @@ module.exports = { title: item.program.title, sub_title: item.program.episodeTitle, description: item.program.description, - category: item.program.translatedCategory?.[channel.lang] ? - item.program.translatedCategory[channel.lang] : item.program.category.split('.')[1], - icon: item.program.posterFileName ? - `https://experience-cache.proximustv.be/posterserver/poster/EPG/w-166_h-110/${item.program.posterFileName}` : null, + category: item.program.translatedCategory?.[channel.lang] + ? item.program.translatedCategory[channel.lang] + : item.program.category.split('.')[1], + image: item.program.posterFileName + ? `https://experience-cache.proximustv.be/posterserver/poster/EPG/w-166_h-110/${item.program.posterFileName}` + : null, season: item.program.seasonNumber, episode: item.program.episodeNumber, actors: item.program.actors, @@ -61,19 +64,18 @@ module.exports = { return programs }, - async channels({ lang = ''}) { + async channels({ lang = '' }) { const query = { operationName: 'getChannels', variables: { language: lang, queryParams: {}, - 'id': '0', + id: '0', params: { shouldReadFromCache: true } }, - query: - `query getChannels($language: String!, $queryParams: ChannelQueryParams, $id: String, $params: ChannelParams) { + query: `query getChannels($language: String!, $queryParams: ChannelQueryParams, $id: String, $params: ChannelParams) { channels(language: $language, queryParams: $queryParams, id: $id, params: $params) { id channelReferenceNumber @@ -118,21 +120,25 @@ module.exports = { .then(r => r.data) .catch(console.error) - return result?.data?.channels - .filter(channel => !channel.radio && (!lang || channel.language === (lang === 'de' ? 'ger' : lang))) - .map(channel => { - return { - lang: channel.language === 'ger' ? 'de' : channel.language, - site_id: channel.id, - name: channel.name - } - }) || [] + return ( + result?.data?.channels + .filter( + channel => + !channel.radio && (!lang || channel.language === (lang === 'de' ? 'ger' : lang)) + ) + .map(channel => { + return { + lang: channel.language === 'ger' ? 'de' : channel.language, + site_id: channel.id, + name: channel.name + } + }) || [] + ) } } function fetchApiVersion() { return new Promise(async (resolve, reject) => { try { - // https://px-epg.azureedge.net/version is deprecated // probably the version url will be changed around over time @@ -145,25 +151,26 @@ function fetchApiVersion() { //const versionUrl = 'https://www.pickx.be/api/s-626d8fdabfb1d44e5a614cd69f4b45d6843fdb63566fc80ea4f97f40e4ea3152'; //the new strategy to break the provider is to leave old version url's available and to return invalid results on those endpoints - const versionUrl = 'https://www.pickx.be//api/s-cefaf96e249e53648c4895c279e7a621233c50b4357d62b0bdf6bff45f31b5c0'; + const versionUrl = + 'https://www.pickx.be//api/s-cefaf96e249e53648c4895c279e7a621233c50b4357d62b0bdf6bff45f31b5c0' const response = await axios.get(versionUrl, { headers: { - 'Origin': 'https://www.pickx.be', - 'Referer': 'https://www.pickx.be/' + Origin: 'https://www.pickx.be', + Referer: 'https://www.pickx.be/' } - }); + }) if (response.status === 200) { - apiVersion = response.data.version; - resolve(); + apiVersion = response.data.version + resolve() } else { - console.error(`Failed to fetch API version. Status: ${response.status}`); - reject(`Failed to fetch API version. Status: ${response.status}`); + console.error(`Failed to fetch API version. Status: ${response.status}`) + reject(`Failed to fetch API version. Status: ${response.status}`) } } catch (error) { - console.error('Error fetching API version:', error.message); - reject(error); + console.error('Error fetching API version:', error.message) + reject(error) } - }); + }) } diff --git a/sites/pickx.be/pickx.be.test.js b/sites/pickx.be/pickx.be.test.js index 9326d7ce..eef0a82f 100644 --- a/sites/pickx.be/pickx.be.test.js +++ b/sites/pickx.be/pickx.be.test.js @@ -4,10 +4,8 @@ const path = require('path') const dayjs = require('dayjs') const utc = require('dayjs/plugin/utc') - dayjs.extend(utc) - const date = dayjs.utc('2023-12-13').startOf('d') const channel = { lang: 'fr', @@ -16,11 +14,13 @@ const channel = { } it('can generate valid url', async () => { - await fetchApiVersion(); - const generatedUrl = await url({ channel, date }); - const resolvedApiVersion = apiVersion(); - expect(generatedUrl).toBe(`https://px-epg.azureedge.net/airings/${resolvedApiVersion}/2023-12-13/channel/UID0118?timezone=Europe%2FBrussels`); -}); + await fetchApiVersion() + const generatedUrl = await url({ channel, date }) + const resolvedApiVersion = apiVersion() + expect(generatedUrl).toBe( + `https://px-epg.azureedge.net/airings/${resolvedApiVersion}/2023-12-13/channel/UID0118?timezone=Europe%2FBrussels` + ) +}) it('can generate valid request headers', () => { expect(request.headers).toMatchObject({ @@ -41,10 +41,10 @@ it('can parse response', () => { start: '2023-12-12T23:55:00.000Z', stop: '2023-12-13T00:15:00.000Z', title: 'Le 22h30', - description: - 'Le journal de vivre ici.', + description: 'Le journal de vivre ici.', category: 'Info', - icon: 'https://experience-cache.proximustv.be/posterserver/poster/EPG/w-166_h-110/250_250_4B990CC58066A7B2A660AFA0BDDE5C41.jpg' + image: + 'https://experience-cache.proximustv.be/posterserver/poster/EPG/w-166_h-110/250_250_4B990CC58066A7B2A660AFA0BDDE5C41.jpg' }) }) diff --git a/sites/plex.tv/plex.tv.config.js b/sites/plex.tv/plex.tv.config.js index 22d810d0..bb7eb56a 100644 --- a/sites/plex.tv/plex.tv.config.js +++ b/sites/plex.tv/plex.tv.config.js @@ -24,7 +24,7 @@ module.exports = { title: item.title, description: item.summary, categories: parseCategories(item), - icon: item.art, + image: item.art, start: parseStart(item), stop: parseStop(item) }) diff --git a/sites/plex.tv/plex.tv.test.js b/sites/plex.tv/plex.tv.test.js index 7edd7411..a189c691 100644 --- a/sites/plex.tv/plex.tv.test.js +++ b/sites/plex.tv/plex.tv.test.js @@ -43,7 +43,7 @@ it('can parse response', () => { title: 'Violet & Daisy', description: 'Two teenage assassins accept what they think will be a quick-and-easy job, until an unexpected target throws them off their plan.', - icon: 'https://provider-static.plex.tv/epg/images/ott_channels/arts/darkmatter-tv-about.jpg', + image: 'https://provider-static.plex.tv/epg/images/ott_channels/arts/darkmatter-tv-about.jpg', categories: ['Movies'] }) }) diff --git a/sites/programacion-tv.elpais.com/programacion-tv.elpais.com.config.js b/sites/programacion-tv.elpais.com/programacion-tv.elpais.com.config.js index cf20319e..2ac993f7 100644 --- a/sites/programacion-tv.elpais.com/programacion-tv.elpais.com.config.js +++ b/sites/programacion-tv.elpais.com/programacion-tv.elpais.com.config.js @@ -31,7 +31,7 @@ module.exports = { sub_title: details.episode_title, description: details.episode_description || item.description, category: parseCategory(details), - icon: parseIcon(details), + image: parseImage(details), director: parseList(details.director), actors: parseList(details.actors), writer: parseList(details.script), @@ -70,7 +70,7 @@ function parseList(str) { return typeof str === 'string' ? str.split(', ') : [] } -function parseIcon(details) { +function parseImage(details) { const url = new URL(details.image, 'https://programacion-tv.elpais.com/') return url.href diff --git a/sites/programacion-tv.elpais.com/programacion-tv.elpais.com.test.js b/sites/programacion-tv.elpais.com/programacion-tv.elpais.com.test.js index d6daa74f..1cfff4f5 100644 --- a/sites/programacion-tv.elpais.com/programacion-tv.elpais.com.test.js +++ b/sites/programacion-tv.elpais.com/programacion-tv.elpais.com.test.js @@ -57,7 +57,7 @@ it('can parse response', async () => { category: 'Ocio-Cultura/Cocina', season: 1, episode: 23, - icon: 'https://programacion-tv.elpais.com/imagenes/programas/2099957.jpg' + image: 'https://programacion-tv.elpais.com/imagenes/programas/2099957.jpg' } ]) }) diff --git a/sites/programacion.tcc.com.uy/programacion.tcc.com.uy.config.js b/sites/programacion.tcc.com.uy/programacion.tcc.com.uy.config.js index b72115f1..5a42c02b 100644 --- a/sites/programacion.tcc.com.uy/programacion.tcc.com.uy.config.js +++ b/sites/programacion.tcc.com.uy/programacion.tcc.com.uy.config.js @@ -28,7 +28,7 @@ module.exports = { date: item.year, season: item.season_number, episode: item.episode_number, - icon: parseIcon(item), + image: parseImage(item), start: parseStart(item), stop: parseStop(item) }) @@ -78,7 +78,7 @@ function parseCategories(item) { .filter(Boolean) } -function parseIcon(item) { +function parseImage(item) { const uri = item.images[0] ? item.images[0].image_media.file : null return uri ? `https:${uri}` : null diff --git a/sites/programacion.tcc.com.uy/programacion.tcc.com.uy.test.js b/sites/programacion.tcc.com.uy/programacion.tcc.com.uy.test.js index cf98b613..f2600af1 100644 --- a/sites/programacion.tcc.com.uy/programacion.tcc.com.uy.test.js +++ b/sites/programacion.tcc.com.uy/programacion.tcc.com.uy.test.js @@ -36,7 +36,7 @@ it('can parse response', () => { season: 3, episode: 3, categories: [], - icon: 'https://zpapi.zetatv.com.uy/media/images/2b45d2675389f2e4f7f6fe0655ccc968.jpg', + image: 'https://zpapi.zetatv.com.uy/media/images/2b45d2675389f2e4f7f6fe0655ccc968.jpg', description: 'Cada episodio relata un lugar y una historia diferente pero siguiendo la línea de una investigación basada en una leyenda la cual es guiada por una pareja. Estos dos personajes no son necesariamente ambos policías, pero se ven obligados a colaborar a pesar de los primeros informes difíciles.' }) @@ -48,7 +48,7 @@ it('can parse response', () => { season: null, episode: null, categories: ['Drama'], - icon: 'https://zpapi.zetatv.com.uy/media/images/8cab42d88691edaa8a4001b91f809d91.jpg', + image: 'https://zpapi.zetatv.com.uy/media/images/8cab42d88691edaa8a4001b91f809d91.jpg', description: 'Basada en la novela de Charles Dickens, cuenta la historia del pintor Finn que persigue obsesionado a su amor de la niñez, la bella y rica Estella. Gracias a un misterioso benefactor, Finn es enviado a Nueva York, donde se reúne con la hermosa y fría joven.' }) @@ -60,7 +60,7 @@ it('can parse response', () => { season: null, episode: null, categories: ['Comedia', 'Drama'], - icon: 'https://zpapi.zetatv.com.uy/media/images/51684d91ed33cb9b0c1863b7a9b097e9.jpg', + image: 'https://zpapi.zetatv.com.uy/media/images/51684d91ed33cb9b0c1863b7a9b097e9.jpg', description: 'Una pareja de lesbianas conciben a un niño y una niña por inseminacion artificial. Al paso del tiempo, los chicos deciden conocer a su verdadero padre a espaldas de sus madres. Tras localizarlo intentan integrar toda una familia. Podran lograrlo?.' }) diff --git a/sites/programme-tv.net/programme-tv.net.config.js b/sites/programme-tv.net/programme-tv.net.config.js index ea651af4..21810bef 100644 --- a/sites/programme-tv.net/programme-tv.net.config.js +++ b/sites/programme-tv.net/programme-tv.net.config.js @@ -29,13 +29,13 @@ module.exports = { items.forEach(item => { const $item = cheerio.load(item) const title = parseTitle($item) - const icon = parseIcon($item) + const image = parseImage($item) const category = parseCategory($item) const start = parseStart($item, date) const duration = parseDuration($item) const stop = start.add(duration, 'ms') - programs.push({ title, icon, category, start, stop }) + programs.push({ title, image, category, start, stop }) }) return programs @@ -88,13 +88,13 @@ function parseDuration($item) { return durationParser(duration) } -function parseIcon($item) { +function parseImage($item) { const img = $item('.mainBroadcastCard-imageContent').first().find('img') const value = img.attr('srcset') || img.data('srcset') const obj = value ? srcset.parse(value).find(i => i.width === 128) : {} if (obj.url) { - obj.url = obj.url.replace('128x180', '960x540'); + obj.url = obj.url.replace('128x180', '960x540') } return obj.url diff --git a/sites/programme-tv.net/programme-tv.net.test.js b/sites/programme-tv.net/programme-tv.net.test.js index 27bd7f78..3f59862d 100644 --- a/sites/programme-tv.net/programme-tv.net.test.js +++ b/sites/programme-tv.net/programme-tv.net.test.js @@ -39,7 +39,8 @@ it('can parse response', () => { stop: '2023-11-27T05:30:00.000Z', title: 'Programmes de la nuit', category: 'Autre', - icon: 'https://www.programme-tv.net/imgre/fit/~2~program~978eb86d5b99cee0.jpg/960x540/quality/80/programmes-de-la-nuit.jpg' + image: + 'https://www.programme-tv.net/imgre/fit/~2~program~978eb86d5b99cee0.jpg/960x540/quality/80/programmes-de-la-nuit.jpg' }) expect(results[27]).toMatchObject({ @@ -47,7 +48,8 @@ it('can parse response', () => { stop: '2023-11-27T23:45:00.000Z', title: 'Coup de foudre chez le Père Noël', category: 'Téléfilm', - icon: 'https://www.programme-tv.net/imgre/fit/~2~program~5a4e78779c4a3fac.jpg/960x540/quality/80/coup-de-foudre-chez-le-pere-noel.jpg' + image: + 'https://www.programme-tv.net/imgre/fit/~2~program~5a4e78779c4a3fac.jpg/960x540/quality/80/coup-de-foudre-chez-le-pere-noel.jpg' }) }) diff --git a/sites/programme-tv.vini.pf/programme-tv.vini.pf.config.js b/sites/programme-tv.vini.pf/programme-tv.vini.pf.config.js index c6a75b59..6d17bb8b 100644 --- a/sites/programme-tv.vini.pf/programme-tv.vini.pf.config.js +++ b/sites/programme-tv.vini.pf/programme-tv.vini.pf.config.js @@ -35,7 +35,7 @@ module.exports = { title: item.titreP, description: item.desc, category: item.categorieP, - icon: item.srcP, + image: item.srcP, start: dayjs.unix(item.timestampDeb), stop: dayjs.unix(item.timestampFin) }) diff --git a/sites/programme-tv.vini.pf/programme-tv.vini.pf.test.js b/sites/programme-tv.vini.pf/programme-tv.vini.pf.test.js index 231999ad..013682c9 100644 --- a/sites/programme-tv.vini.pf/programme-tv.vini.pf.test.js +++ b/sites/programme-tv.vini.pf/programme-tv.vini.pf.test.js @@ -62,7 +62,8 @@ it('can parse response', done => { category: 'Magazine', description: "Pour faire face à la crise du logement, aux loyers toujours plus élevés, à la solitude ou pour les gardes d'enfants, les colocations ont le vent en poupe, Pour mieux comprendre ce nouveau phénomène, une équipe a partagé le quotidien de quatre foyers : une retraitée qui héberge des étudiants, des mamans solos, enceintes, qui partagent un appartement associatif, trois générations de la même famille sur un domaine viticole et une étudiante qui intègre une colocation XXL.", - icon: 'https://programme-tv.vini.pf/sites/default/files/img-icones/52ada51ed86b7e7bc11eaee83ff2192785989d77.jpg' + image: + 'https://programme-tv.vini.pf/sites/default/files/img-icones/52ada51ed86b7e7bc11eaee83ff2192785989d77.jpg' }, { start: '2021-11-21T01:10:00.000Z', @@ -71,7 +72,8 @@ it('can parse response', done => { category: 'Magazine', description: 'Un documentaire français réalisé en 2019, Cindy Sander, Myriam Abel, Mario, Michal ou encore Magali Vaé ont fait les grandes heures des premières émissions de télécrochet modernes, dans les années 2000, Des années après leur passage, que reste-t-il de leur notoriété ? Comment ces candidats ont-ils vécu leur soudaine médiatisation ? Quels rapports entretenaient-ils avec les autres participants et les membres du jury, souvent intransigeants ?', - icon: 'https://programme-tv.vini.pf/sites/default/files/img-icones/6e64cfbc55c1f4cbd11e3011401403d4dc08c6d2.jpg' + image: + 'https://programme-tv.vini.pf/sites/default/files/img-icones/6e64cfbc55c1f4cbd11e3011401403d4dc08c6d2.jpg' }, { start: '2021-11-21T02:30:00.000Z', @@ -80,7 +82,8 @@ it('can parse response', done => { category: 'Magazine', description: "50'INSIDE, c'est toute l'actualité des stars résumée, chaque samedi, Le rendez-vous glamour pour retrouver toujours,,", - icon: 'https://programme-tv.vini.pf/sites/default/files/img-icones/3d7e252312dacb5fb7a1a786fa0022ca1be15499.jpg' + image: + 'https://programme-tv.vini.pf/sites/default/files/img-icones/3d7e252312dacb5fb7a1a786fa0022ca1be15499.jpg' } ]) done() diff --git a/sites/raiplay.it/raiplay.it.config.js b/sites/raiplay.it/raiplay.it.config.js index 27b562d6..4030d21d 100644 --- a/sites/raiplay.it/raiplay.it.config.js +++ b/sites/raiplay.it/raiplay.it.config.js @@ -35,7 +35,7 @@ module.exports = { url: parseURL(item), start, stop, - icon: parseIcon(item) + image: parseImage(item) }) }) @@ -47,7 +47,7 @@ function parseStart(item, date) { return dayjs.tz(`${date.format('YYYY-MM-DD')} ${item.hour}`, 'YYYY-MM-DD HH:mm', 'Europe/Rome') } -function parseIcon(item) { +function parseImage(item) { let cover = null if (item.image) { cover = `https://www.raiplay.it${item.image}` diff --git a/sites/raiplay.it/raiplay.it.test.js b/sites/raiplay.it/raiplay.it.test.js index 3e820074..348aed04 100644 --- a/sites/raiplay.it/raiplay.it.test.js +++ b/sites/raiplay.it/raiplay.it.test.js @@ -37,7 +37,7 @@ it('can parse response', () => { season: '3', episode: '5', sub_title: 'La prima volta', - icon: 'https://www.raiplay.it/dl/img/2020/03/09/1583748471860_dddddd.jpg', + image: 'https://www.raiplay.it/dl/img/2020/03/09/1583748471860_dddddd.jpg', url: 'https://www.raiplay.it/dirette/rai2/The-Good-Doctor-S3E5---La-prima-volta-2f81030d-803b-456a-9ea5-40233234fd9d.html' } ]) diff --git a/sites/reportv.com.ar/reportv.com.ar.config.js b/sites/reportv.com.ar/reportv.com.ar.config.js index 2ce83d07..51c89d23 100644 --- a/sites/reportv.com.ar/reportv.com.ar.config.js +++ b/sites/reportv.com.ar/reportv.com.ar.config.js @@ -45,7 +45,7 @@ module.exports = { programs.push({ title: parseTitle($item), category: parseCategory($item), - icon: details.icon, + image: details.image, description: details.description, directors: details.directors, actors: details.actors, @@ -95,7 +95,7 @@ async function loadProgramDetails($item) { const $ = cheerio.load(content) return Promise.resolve({ - icon: parseIcon($), + image: parseImage($), actors: parseActors($), directors: parseDirectors($), description: parseDescription($) @@ -132,7 +132,7 @@ function parseDescription($) { return $('#Sinopsis > div').text().trim() } -function parseIcon($) { +function parseImage($) { const src = $('#ImgProg').attr('src') const url = new URL(src, 'https://www.reportv.com.ar/buscador/') diff --git a/sites/reportv.com.ar/reportv.com.ar.test.js b/sites/reportv.com.ar/reportv.com.ar.test.js index 933e985f..19fa99bb 100644 --- a/sites/reportv.com.ar/reportv.com.ar.test.js +++ b/sites/reportv.com.ar/reportv.com.ar.test.js @@ -74,7 +74,7 @@ it('can parse response', async () => { stop: '2022-10-03T05:00:00.000Z', title: '¿Quién tiene la razón?', category: 'Talk Show', - icon: 'https://www.reportv.com.ar/buscador/img/Programas/4401882.jpg', + image: 'https://www.reportv.com.ar/buscador/img/Programas/4401882.jpg', actors: ['Nancy Álvarez'], description: 'Espacio que dará de qué hablar cuando la doctora Nancy Álvarez y Carmen Jara, acompañadas de un jurado implacable, lleguen a escuchar y a resolver los problemas de las partes en conflicto para luego decidir quién tiene la razón.' @@ -85,7 +85,7 @@ it('can parse response', async () => { stop: '2022-10-04T04:00:00.000Z', title: 'Valeria', category: 'Comedia', - icon: 'https://www.reportv.com.ar/buscador/img/Programas/18788047.jpg', + image: 'https://www.reportv.com.ar/buscador/img/Programas/18788047.jpg', directors: ['Inma Torrente'], actors: [ 'Diana Gómez', diff --git a/sites/rotana.net/rotana.net.config.js b/sites/rotana.net/rotana.net.config.js index 0528a966..912e8b3f 100644 --- a/sites/rotana.net/rotana.net.config.js +++ b/sites/rotana.net/rotana.net.config.js @@ -11,7 +11,8 @@ dayjs.extend(utc) dayjs.extend(customParseFormat) const headers = { - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 OPR/104.0.0.0' + 'User-Agent': + 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 OPR/104.0.0.0' } const cookies = {} @@ -64,10 +65,10 @@ async function parseProgram(item, channel, options = {}) { const top = item.find('.iq-accordion-block') const info = top.find('.iq-accordion-title .big-title span') if (info.length) { - const [ time, title ] = info.text().split('\n') - const [ d, m, y ] = item._date.split('-') + const [time, title] = info.text().split('\n') + const [d, m, y] = item._date.split('-') const start = dayjs.tz(`${y}-${m}-${d} ${time.trim()}`, 'YYYY-MM-DD HH:mm', 'Asia/Riyadh') - let description, icon, stop + let description, image, stop if (deep) { const pid = top.attr('id').split('-')[1] if (pid) { @@ -89,7 +90,7 @@ async function parseProgram(item, channel, options = {}) { } const img = $('.row > div > img') if (img.length) { - icon = img.attr('src') + image = img.attr('src') } } if (item._next) { @@ -102,7 +103,7 @@ async function parseProgram(item, channel, options = {}) { return { title: title?.trim(), description: description?.trim(), - icon: icon, + image, start: raw ? start : start?.toISOString(), stop: raw ? stop : stop?.toISOString() } @@ -125,7 +126,7 @@ function parseItems(content, date) { if (lastId === expectedId) { // set next item if (result.length) { - result[result.length - 1]._next = $item; + result[result.length - 1]._next = $item } result.push($item) } else if (result.length && !result[result.length - 1]._next) { @@ -146,4 +147,4 @@ function parseCookies(headers) { }) } return cookies.length ? cookies.join('; ') : null -} \ No newline at end of file +} diff --git a/sites/rotana.net/rotana.net.test.js b/sites/rotana.net/rotana.net.test.js index cb64373c..0a2b0cd7 100644 --- a/sites/rotana.net/rotana.net.test.js +++ b/sites/rotana.net/rotana.net.test.js @@ -63,7 +63,7 @@ it('can parse english response', async () => { title: 'Katkout', description: 'In a comic framework, the events of the film revolve around (Katkoot) Al-Saedi, whose aunt, the eldest of the Al-Saedi family, tries to force him to kill himself in order to ransom his family. A time...', - icon: 'https://imgsrv.rotana.net/spider_storage/1398X1000/1690882129.webp?w=450&fit=max' + image: 'https://imgsrv.rotana.net/spider_storage/1398X1000/1690882129.webp?w=450&fit=max' }) }) @@ -79,7 +79,7 @@ it('can parse arabic response', async () => { title: 'كتكوت', description: 'في إطار كوميدي تدور أحداث الفيلم، حول (كتكوت) الصعيدي الذي تحاول عمته كبيرة العائلة الصعيدية إجباره على تقديم نفسه للقتل ليفدي عائلته، ولكنه يهرب وتخطفه جهة أمنية لاكتشاف شبه كبير بينه وبين (يوسف خوري...', - icon: 'https://imgsrv.rotana.net/spider_storage/1398X1000/1690882129.webp?w=450&fit=max' + image: 'https://imgsrv.rotana.net/spider_storage/1398X1000/1690882129.webp?w=450&fit=max' }) }) diff --git a/sites/rthk.hk/rthk.hk.config.js b/sites/rthk.hk/rthk.hk.config.js index cf500571..f9efcc69 100644 --- a/sites/rthk.hk/rthk.hk.config.js +++ b/sites/rthk.hk/rthk.hk.config.js @@ -33,7 +33,7 @@ module.exports = { title: parseTitle($item), sub_title: parseSubTitle($item), categories: parseCategories($item), - icon: parseIcon($item), + image: parseImage($item), start: parseStart($item, date), stop: parseStop($item, date) }) @@ -43,7 +43,7 @@ module.exports = { } } -function parseIcon($item) { +function parseImage($item) { return $item('.single-wrap').data('p') } diff --git a/sites/rthk.hk/rthk.hk.test.js b/sites/rthk.hk/rthk.hk.test.js index 2a108e92..19541dfc 100644 --- a/sites/rthk.hk/rthk.hk.test.js +++ b/sites/rthk.hk/rthk.hk.test.js @@ -49,7 +49,7 @@ it('can parse response', () => { title: '問天', sub_title: '第十四集', categories: ['戲劇'], - icon: 'https://www.rthk.hk/assets/images/rthk/dtt31/thegreataerospace/10239_1920_s.jpg' + image: 'https://www.rthk.hk/assets/images/rthk/dtt31/thegreataerospace/10239_1920_s.jpg' }) }) @@ -68,7 +68,7 @@ it('can parse response in English', () => { title: 'The Great Aerospace', sub_title: 'Episode 14', categories: ['戲劇'], - icon: 'https://www.rthk.hk/assets/images/rthk/dtt31/thegreataerospace/10239_1920_s.jpg' + image: 'https://www.rthk.hk/assets/images/rthk/dtt31/thegreataerospace/10239_1920_s.jpg' }) }) diff --git a/sites/rtp.pt/rtp.pt.config.js b/sites/rtp.pt/rtp.pt.config.js index adfcdc80..a2f1e008 100644 --- a/sites/rtp.pt/rtp.pt.config.js +++ b/sites/rtp.pt/rtp.pt.config.js @@ -38,7 +38,7 @@ module.exports = { programs.push({ title: item.name, description: item.description, - icon: parseIcon(item), + image: parseImage(item), start, stop }) @@ -48,7 +48,7 @@ module.exports = { } } -function parseIcon(item) { +function parseImage(item) { const last = item.image.pop() if (!last) return null return last.src diff --git a/sites/rtp.pt/rtp.pt.test.js b/sites/rtp.pt/rtp.pt.test.js index b7fcae10..7feeb1f6 100644 --- a/sites/rtp.pt/rtp.pt.test.js +++ b/sites/rtp.pt/rtp.pt.test.js @@ -32,7 +32,7 @@ it('can parse response', () => { stop: '2022-12-03T00:00:00.000Z', title: 'Telejornal Madeira', description: 'Informação de proximidade. De confiança!', - icon: 'https://cdn-images.rtp.pt/EPG/imagens/15790_43438_8820.png?w=384&h=216' + image: 'https://cdn-images.rtp.pt/EPG/imagens/15790_43438_8820.png?w=384&h=216' }) }) diff --git a/sites/ruv.is/ruv.is.config.js b/sites/ruv.is/ruv.is.config.js index 9406ab26..7bc6024a 100644 --- a/sites/ruv.is/ruv.is.config.js +++ b/sites/ruv.is/ruv.is.config.js @@ -41,7 +41,7 @@ module.exports = { programs.push({ title: item.title, description: item.description, - icon: parseIcon(item), + image: parseImage(item), start, stop }) @@ -51,7 +51,7 @@ module.exports = { } } -function parseIcon(item) { +function parseImage(item) { return item.image.replace('$$IMAGESIZE$$', '480') } diff --git a/sites/ruv.is/ruv.is.test.js b/sites/ruv.is/ruv.is.test.js index 02e5691a..ed52d287 100644 --- a/sites/ruv.is/ruv.is.test.js +++ b/sites/ruv.is/ruv.is.test.js @@ -33,7 +33,8 @@ it('can parse response', () => { title: 'Heimaleikfimi', description: 'Góð ráð og æfingar sem tilvalið er að gera heima. Íris Rut Garðarsdóttir sjúkraþjálfari hefur umsjón með leikfiminni. e.', - icon: 'https://d38kdhuogyllre.cloudfront.net/fit-in/480x/filters:quality(65)/hd_posters/91pvig-3p3hig.jpg' + image: + 'https://d38kdhuogyllre.cloudfront.net/fit-in/480x/filters:quality(65)/hd_posters/91pvig-3p3hig.jpg' }) }) diff --git a/sites/sat.tv/sat.tv.config.js b/sites/sat.tv/sat.tv.config.js index da48d648..c0568c5a 100644 --- a/sites/sat.tv/sat.tv.config.js +++ b/sites/sat.tv/sat.tv.config.js @@ -49,7 +49,7 @@ module.exports = { programs.push({ title: parseTitle($item), description: parseDescription($item), - icon: parseIcon($item), + image: parseImage($item), start, stop }) @@ -130,7 +130,7 @@ module.exports = { } } -function parseIcon($item) { +function parseImage($item) { const src = $item('.event-logo img:not(.no-img)').attr('src') return src ? `https://sat.tv${src}` : null diff --git a/sites/sat.tv/sat.tv.test.js b/sites/sat.tv/sat.tv.test.js index a5aa0c29..8e3cfda7 100644 --- a/sites/sat.tv/sat.tv.test.js +++ b/sites/sat.tv/sat.tv.test.js @@ -54,7 +54,7 @@ it('can parse response', () => { title: 'تعظيم البلد الحرام', description: `الناس, دين, ثقافة يلقي صانع الفيلم الضوء على مشروع تعظيم البلد الحرام في مكة من العائلة الملكية في المملكة العربية السعودية، والذي يهدف لإبراز حرمته لدى المسلمين حول العالم.`, - icon: null + image: null }) expect(results[34]).toMatchObject({ @@ -63,7 +63,8 @@ it('can parse response', () => { title: 'الأخبار', description: `نشرة .يطرح أهم القضايا والأحداث على الساحة السعودية والعالمية`, - icon: 'https://sat.tv/wp-content/themes/twentytwenty-child/data_lineups/nilesat/images3/epg-3077892.jpg' + image: + 'https://sat.tv/wp-content/themes/twentytwenty-child/data_lineups/nilesat/images3/epg-3077892.jpg' }) }) @@ -87,7 +88,8 @@ it('can parse response in english', () => { title: 'News', description: `Newscast The most important issues and events on the Saudi and the world.`, - icon: 'https://sat.tv/wp-content/themes/twentytwenty-child/data_lineups/nilesat/images3/epg-3077892.jpg' + image: + 'https://sat.tv/wp-content/themes/twentytwenty-child/data_lineups/nilesat/images3/epg-3077892.jpg' }) expect(results[31]).toMatchObject({ @@ -98,7 +100,8 @@ The most important issues and events on the Saudi and the world.`, 2022 Abdelhamid's family struggles to deal with the challenges of life that keep flowing one by one. they manage to stay strong-armed with their love and trust for each other. Sayed Ragab, Sawsan Badr, Medhat Saleh, Nermine Al Feqy, Mohamed Adel, Khaled Kamal, Rania Farid, Hani Kamal, Hani Kamal`, - icon: 'https://sat.tv/wp-content/themes/twentytwenty-child/data_lineups/nilesat/images3/epg-3157177.jpg' + image: + 'https://sat.tv/wp-content/themes/twentytwenty-child/data_lineups/nilesat/images3/epg-3157177.jpg' }) }) diff --git a/sites/sky.com/sky.com.config.js b/sites/sky.com/sky.com.config.js index 0cda319e..2e2b78bb 100644 --- a/sites/sky.com/sky.com.config.js +++ b/sites/sky.com/sky.com.config.js @@ -18,7 +18,7 @@ module.exports = { description: item.d, start: dayjs.unix(item.s), stop: dayjs.unix(item.s + item.m[1]), - icon: item.img ? `http://epgstatic.sky.com/epgdata/1.0/paimage/46/1/${item.img}` : null + image: item.img ? `http://epgstatic.sky.com/epgdata/1.0/paimage/46/1/${item.img}` : null }) }) diff --git a/sites/sky.com/sky.com.test.js b/sites/sky.com/sky.com.test.js index d868afbd..9e776c5b 100644 --- a/sites/sky.com/sky.com.test.js +++ b/sites/sky.com/sky.com.test.js @@ -31,13 +31,15 @@ it('can parse response', () => { start: '2021-12-14T01:50:00.000Z', stop: '2021-12-14T02:20:00.000Z', title: 'Question of Sport', - icon: 'http://epgstatic.sky.com/epgdata/1.0/paimage/46/1/lisa/5.2.2/linear/channel/7f80ef03-3d8a-4f73-bf7d-6b03f410c7a8/2002' + image: + 'http://epgstatic.sky.com/epgdata/1.0/paimage/46/1/lisa/5.2.2/linear/channel/7f80ef03-3d8a-4f73-bf7d-6b03f410c7a8/2002' }, { start: '2021-12-14T02:20:00.000Z', stop: '2021-12-14T02:25:00.000Z', title: 'Weather for the Week Ahead', - icon: 'http://epgstatic.sky.com/epgdata/1.0/paimage/46/1/lisa/5.2.2/linear/channel/8fcf08b7-4081-499a-bf63-d100908e2d75/2002' + image: + 'http://epgstatic.sky.com/epgdata/1.0/paimage/46/1/lisa/5.2.2/linear/channel/8fcf08b7-4081-499a-bf63-d100908e2d75/2002' } ]) }) diff --git a/sites/sky.de/sky.de.config.js b/sites/sky.de/sky.de.config.js index d680cd02..e91451bf 100644 --- a/sites/sky.de/sky.de.config.js +++ b/sites/sky.de/sky.de.config.js @@ -30,7 +30,7 @@ module.exports = { stop: dayjs(item.bedt), season: item.sn, episode: item.en, - icon: item.pu ? `http://sky.de${item.pu}` : null + image: item.pu ? `http://sky.de${item.pu}` : null }) }) diff --git a/sites/sky.de/sky.de.test.js b/sites/sky.de/sky.de.test.js index 448b20e1..24835919 100644 --- a/sites/sky.de/sky.de.test.js +++ b/sites/sky.de/sky.de.test.js @@ -43,7 +43,7 @@ it('can parse response', () => { stop: '2022-02-26T23:30:00.000Z', season: '4', episode: '11', - icon: 'http://sky.de/static/img/program_guide/1522936_s.jpg' + image: 'http://sky.de/static/img/program_guide/1522936_s.jpg' }, { title: 'King of Queens', @@ -53,7 +53,7 @@ it('can parse response', () => { stop: '2022-02-26T23:55:00.000Z', season: '4', episode: '12', - icon: 'http://sky.de/static/img/program_guide/1522937_s.jpg' + image: 'http://sky.de/static/img/program_guide/1522937_s.jpg' } ]) }) diff --git a/sites/taiwanplus.com/taiwanplus.com.config.js b/sites/taiwanplus.com/taiwanplus.com.config.js index e65d004b..d4ec5913 100644 --- a/sites/taiwanplus.com/taiwanplus.com.config.js +++ b/sites/taiwanplus.com/taiwanplus.com.config.js @@ -46,7 +46,7 @@ module.exports = { ? dayjs.utc(scheduleDate.schedule[i + 1].dateTime, 'YYYY/MM/DD HH:mm') : dayjs.utc(program.dateTime, 'YYYY/MM/DD HH:mm').add(1, 'day').startOf('day'), description: program.description, - icon: program.image, + image: program.image, category: program.categoryName, rating: program.ageRating }) diff --git a/sites/taiwanplus.com/taiwanplus.com.test.js b/sites/taiwanplus.com/taiwanplus.com.test.js index 59f67129..57784598 100644 --- a/sites/taiwanplus.com/taiwanplus.com.test.js +++ b/sites/taiwanplus.com/taiwanplus.com.test.js @@ -28,7 +28,7 @@ it('can parse response', () => { stop: dayjs.utc('2023/08/21 00:00', 'YYYY/MM/DD HH:mm'), description: 'From blockchain to Buddha statues, Taiwan’s culture is a kaleidoscope of old and new just waiting to be discovered.', - icon: 'https://prod-img.taiwanplus.com/live-schedule/Single/S30668_20230810104937.webp', + image: 'https://prod-img.taiwanplus.com/live-schedule/Single/S30668_20230810104937.webp', category: 'TaiwanPlus ✕ Discovery', rating: '0+' } diff --git a/sites/tapdmv.com/tapdmv.com.config.js b/sites/tapdmv.com/tapdmv.com.config.js index cfe4f899..01581631 100644 --- a/sites/tapdmv.com/tapdmv.com.config.js +++ b/sites/tapdmv.com/tapdmv.com.config.js @@ -22,7 +22,7 @@ module.exports = { title: item.program.trim(), description: item.description, category: item.genre, - icon: item.thumbnailImage, + image: item.thumbnailImage, start: parseStart(item), stop: parseStop(item) }) diff --git a/sites/tapdmv.com/tapdmv.com.test.js b/sites/tapdmv.com/tapdmv.com.test.js index 54a7f6f6..be9d8d03 100644 --- a/sites/tapdmv.com/tapdmv.com.test.js +++ b/sites/tapdmv.com/tapdmv.com.test.js @@ -34,7 +34,7 @@ it('can parse response', () => { description: 'In Italy, a woman becomes involved in a series of unauthorized exorcisms during her mission to discover what happened to her mother, who allegedly murdered three people during her own exorcism.', category: 'Horror', - icon: 'https://s3.ap-southeast-1.amazonaws.com/epg.tapdmv.com/tapactionflix.png' + image: 'https://s3.ap-southeast-1.amazonaws.com/epg.tapdmv.com/tapactionflix.png' } ]) }) diff --git a/sites/teliatv.ee/teliatv.ee.config.js b/sites/teliatv.ee/teliatv.ee.config.js index a77a596a..b6393c9b 100644 --- a/sites/teliatv.ee/teliatv.ee.config.js +++ b/sites/teliatv.ee/teliatv.ee.config.js @@ -18,7 +18,7 @@ module.exports = { items.forEach(item => { programs.push({ title: item.name, - icon: parseIcon(item), + image: parseImage(item), start: dayjs(item.startAt), stop: dayjs(item.endAt) }) @@ -42,7 +42,7 @@ module.exports = { } } -function parseIcon(item) { +function parseImage(item) { return item.images.webGuideItemLarge ? `https://inet-static.mw.elion.ee${item.images.webGuideItemLarge}` : null diff --git a/sites/teliatv.ee/teliatv.ee.test.js b/sites/teliatv.ee/teliatv.ee.test.js index 8bc58e7d..2643046c 100644 --- a/sites/teliatv.ee/teliatv.ee.test.js +++ b/sites/teliatv.ee/teliatv.ee.test.js @@ -43,7 +43,8 @@ it('can parse response', () => { start: '2021-11-19T22:05:00.000Z', stop: '2021-11-19T22:55:00.000Z', title: 'Inimjaht', - icon: 'https://inet-static.mw.elion.ee/resized/ri93Qj4OLXXvg7QAsUOcKMnIb3g=/570x330/filters:format(jpeg)/inet-static.mw.elion.ee/epg_images/9/b/17e48b3966e65c02.jpg' + image: + 'https://inet-static.mw.elion.ee/resized/ri93Qj4OLXXvg7QAsUOcKMnIb3g=/570x330/filters:format(jpeg)/inet-static.mw.elion.ee/epg_images/9/b/17e48b3966e65c02.jpg' } ]) }) diff --git a/sites/telsu.fi/telsu.fi.config.js b/sites/telsu.fi/telsu.fi.config.js index 4aae8452..057cccd1 100644 --- a/sites/telsu.fi/telsu.fi.config.js +++ b/sites/telsu.fi/telsu.fi.config.js @@ -33,7 +33,7 @@ module.exports = { programs.push({ title: parseTitle($item), description: parseDescription($item), - icon: parseIcon($item), + image: parseImage($item), start, stop }) @@ -69,7 +69,7 @@ function parseDescription($item) { return $item('.t > div').clone().children().remove().end().text().trim() } -function parseIcon($item) { +function parseImage($item) { const imgSrc = $item('.t > div > div.ps > a > img').attr('src') return imgSrc ? `https://www.telsu.fi${imgSrc}` : null diff --git a/sites/telsu.fi/telsu.fi.test.js b/sites/telsu.fi/telsu.fi.test.js index ca005a08..99119899 100644 --- a/sites/telsu.fi/telsu.fi.test.js +++ b/sites/telsu.fi/telsu.fi.test.js @@ -31,7 +31,7 @@ it('can parse response', () => { title: 'Antiikkikaksintaistelu', description: 'Kausi 6, osa 5/12. Antiikkikaksintaistelu jatkuu Løkkenissä. Uusi taistelupari Rikke Fog ja Lasse Franck saavat kumpikin 10 000 kruunua ja viisi tuntia aikaa ostaa alueelta hyvää tavaraa halvalla.', - icon: 'https://www.telsu.fi/s/antiikkikaksintaistelu_11713730.jpg' + image: 'https://www.telsu.fi/s/antiikkikaksintaistelu_11713730.jpg' }) }) diff --git a/sites/toonamiaftermath.com/toonamiaftermath.com.config.js b/sites/toonamiaftermath.com/toonamiaftermath.com.config.js index be0cac53..4be2308d 100644 --- a/sites/toonamiaftermath.com/toonamiaftermath.com.config.js +++ b/sites/toonamiaftermath.com/toonamiaftermath.com.config.js @@ -29,7 +29,7 @@ module.exports = { programs.push({ title: item.name, sub_title: parseEpisode(item), - icon: parseIcon(item), + image: parseImage(item), start: dayjs(item.startDate), stop: dayjs(item.endDate) }) @@ -55,6 +55,6 @@ function parseEpisode(item) { return item && item.info && item.info.episode ? item.info.episode : null } -function parseIcon(item) { +function parseImage(item) { return item && item.info && item.info.image ? item.info.image : null } diff --git a/sites/toonamiaftermath.com/toonamiaftermath.com.test.js b/sites/toonamiaftermath.com/toonamiaftermath.com.test.js index 455031cd..139a557b 100644 --- a/sites/toonamiaftermath.com/toonamiaftermath.com.test.js +++ b/sites/toonamiaftermath.com/toonamiaftermath.com.test.js @@ -51,7 +51,7 @@ it('can parse response', () => { stop: '2022-11-29T17:20:54.031Z', title: 'X-Men', sub_title: 'Reunion (Part 1)', - icon: 'https://i.imgur.com/ZSZ0x1m.gif' + image: 'https://i.imgur.com/ZSZ0x1m.gif' }) }) diff --git a/sites/tv-programme.telecablesat.fr/tv-programme.telecablesat.fr.config.js b/sites/tv-programme.telecablesat.fr/tv-programme.telecablesat.fr.config.js index c6233050..87f97693 100644 --- a/sites/tv-programme.telecablesat.fr/tv-programme.telecablesat.fr.config.js +++ b/sites/tv-programme.telecablesat.fr/tv-programme.telecablesat.fr.config.js @@ -50,7 +50,7 @@ module.exports = { programs.push({ title: parseTitle($item), description: parseDescription($item), - icon: parseIcon($item), + image: parseImage($item), start, stop }) @@ -92,7 +92,7 @@ function parseStart($item, date) { }).toUTC() } -function parseIcon($item) { +function parseImage($item) { const imgSrc = $item('img').attr('src') return imgSrc ? `https:${imgSrc}` : null diff --git a/sites/tv-programme.telecablesat.fr/tv-programme.telecablesat.fr.test.js b/sites/tv-programme.telecablesat.fr/tv-programme.telecablesat.fr.test.js index e556ae46..7a0af792 100644 --- a/sites/tv-programme.telecablesat.fr/tv-programme.telecablesat.fr.test.js +++ b/sites/tv-programme.telecablesat.fr/tv-programme.telecablesat.fr.test.js @@ -67,7 +67,8 @@ it('can parse response', async () => { title: 'Tagesschau', description: 'Die Tagesschau ist eine Institution in der deutschen Fernsehlandschaft. Seit 1952 wird kurz und bündig von aktuellen Geschehnissen in Deutschland und der Welt berichtet. Bis heute ist die Redaktion der sachlichen Berichterstattung treu geblieben und...', - icon: 'https://tv.cdnartwhere.eu/cache/i2/Dc5BDoMgEADAv3Cuwoqy4Fu4LLho24hEaNK06d_rcW7zFYEqi1lsrZU6e-nlXrqyHe2oXVxyT5_Xybys3GduXsYjN7pnPqdkI0CkJbk4gnKWMQFAQLQUtHZesuEwOgWa7DCkKV4cGFEBG0eQrCJSwY3YP8oqbmKn-rwexuBb20n8_g.jpg' + image: + 'https://tv.cdnartwhere.eu/cache/i2/Dc5BDoMgEADAv3Cuwoqy4Fu4LLho24hEaNK06d_rcW7zFYEqi1lsrZU6e-nlXrqyHe2oXVxyT5_Xybys3GduXsYjN7pnPqdkI0CkJbk4gnKWMQFAQLQUtHZesuEwOgWa7DCkKV4cGFEBG0eQrCJSwY3YP8oqbmKn-rwexuBb20n8_g.jpg' }) expect(results[36]).toMatchObject({ @@ -75,7 +76,8 @@ it('can parse response', async () => { stop: '2023-12-01T05:30:00.000Z', title: 'ZDF-Morgenmagazin', description: 'Für einen guten Start in den Tag', - icon: 'https://tv.cdnartwhere.eu/cache/i2/Dc5BDoMgEADAv3CuIiIu-BYuu7Bo24hEaNK06d_rbY7zFYSVxSK21kpdvPRyL13ZjnbULsTc4-d1MseV-8zNy3DkhvfMp0k2KBUwJhcmNTjLkJRSBGCRtHZe2gQTYXRhJNCoL1NyyiTiSI6IhtHADOT6R1nFTexYn9djnuGtrRG_Pw.jpg' + image: + 'https://tv.cdnartwhere.eu/cache/i2/Dc5BDoMgEADAv3CuIiIu-BYuu7Bo24hEaNK06d_rbY7zFYSVxSK21kpdvPRyL13ZjnbULsTc4-d1MseV-8zNy3DkhvfMp0k2KBUwJhcmNTjLkJRSBGCRtHZe2gQTYXRhJNCoL1NyyiTiSI6IhtHADOT6R1nFTexYn9djnuGtrRG_Pw.jpg' }) }) diff --git a/sites/tv.blue.ch/tv.blue.ch.config.js b/sites/tv.blue.ch/tv.blue.ch.config.js index c1c72a90..0ae7acba 100644 --- a/sites/tv.blue.ch/tv.blue.ch.config.js +++ b/sites/tv.blue.ch/tv.blue.ch.config.js @@ -23,7 +23,7 @@ module.exports = { programs.push({ title, description: parseDescription(item), - icon: parseIcon(item), + image: parseImage(item), start: parseStart(item), stop: parseStop(item) }) @@ -55,7 +55,7 @@ function parseDescription(item) { return item.Content.Description.Summary } -function parseIcon(item) { +function parseImage(item) { const image = item.Content.Nodes ? item.Content.Nodes.Items.find(i => i.Kind === 'Image') : null const path = image ? image.ContentPath : null diff --git a/sites/tv.blue.ch/tv.blue.ch.test.js b/sites/tv.blue.ch/tv.blue.ch.test.js index 755b6609..e01ec286 100644 --- a/sites/tv.blue.ch/tv.blue.ch.test.js +++ b/sites/tv.blue.ch/tv.blue.ch.test.js @@ -33,7 +33,8 @@ it('can parse response', () => { title: 'Weekend on the Rocks', description: ' - «R.E.S.P.E.C.T», lieber Charles Nguela. Der Comedian tourt fleissig durch die Schweiz, macht für uns aber einen Halt, um in der neuen Ausgabe von «Weekend on the Rocks» mit Moderatorin Vania Spescha über die Entertainment-News der Woche zu plaudern.', - icon: 'https://services.sg101.prd.sctv.ch/content/images/tv/broadcast/1221/t1221ddc59247d45_landscape_w1920.webp' + image: + 'https://services.sg101.prd.sctv.ch/content/images/tv/broadcast/1221/t1221ddc59247d45_landscape_w1920.webp' } ]) }) diff --git a/sites/tv.lv/tv.lv.config.js b/sites/tv.lv/tv.lv.config.js index 1053b9f5..c7989235 100644 --- a/sites/tv.lv/tv.lv.config.js +++ b/sites/tv.lv/tv.lv.config.js @@ -18,7 +18,7 @@ module.exports = { title: item.title, description: item.description_long, category: item.categorystring, - icon: item.image, + image: item.image, start, stop }) diff --git a/sites/tv.magenta.at/tv.magenta.at.config.js b/sites/tv.magenta.at/tv.magenta.at.config.js index 2b7cae79..b56c02e9 100644 --- a/sites/tv.magenta.at/tv.magenta.at.config.js +++ b/sites/tv.magenta.at/tv.magenta.at.config.js @@ -61,7 +61,7 @@ module.exports = { description: parseDescription(detail), date: parseDate(item), category: parseCategory(item), - icon: detail.poster_image_url, + image: detail.poster_image_url, actors: parseRoles(detail, 'Schauspieler'), directors: parseRoles(detail, 'Regisseur'), producers: parseRoles(detail, 'Produzent'), diff --git a/sites/tv.movistar.com.pe/tv.movistar.com.pe.config.js b/sites/tv.movistar.com.pe/tv.movistar.com.pe.config.js index 1d0a83ce..47aee387 100644 --- a/sites/tv.movistar.com.pe/tv.movistar.com.pe.config.js +++ b/sites/tv.movistar.com.pe/tv.movistar.com.pe.config.js @@ -16,7 +16,7 @@ module.exports = { programs.push({ title: item.Title, description: item.Description, - icon: parseIcon(item), + image: parseImage(item), start: parseTime(item.Start), stop: parseTime(item.End) }) @@ -42,7 +42,7 @@ module.exports = { } } -function parseIcon(item) { +function parseImage(item) { return item.Images?.VideoFrame?.[0]?.Url } diff --git a/sites/tv.movistar.com.pe/tv.movistar.com.pe.test.js b/sites/tv.movistar.com.pe/tv.movistar.com.pe.test.js index c6f5e020..06f2aa9a 100644 --- a/sites/tv.movistar.com.pe/tv.movistar.com.pe.test.js +++ b/sites/tv.movistar.com.pe/tv.movistar.com.pe.test.js @@ -33,7 +33,8 @@ it('can parse response', () => { title: 'Willax noticias edición central', description: 'Edición central con el desarrollo y cobertura noticiosa de todos los acontecimientos nacionales e internacionales.', - icon: 'http://media.gvp.telefonica.com/storagearea0/IMAGES/00/13/00/13003906_281B2DAB18B01955.jpg' + image: + 'http://media.gvp.telefonica.com/storagearea0/IMAGES/00/13/00/13003906_281B2DAB18B01955.jpg' }) }) diff --git a/sites/tv.nu/tv.nu.config.js b/sites/tv.nu/tv.nu.config.js index 99feceac..ae33f360 100644 --- a/sites/tv.nu/tv.nu.config.js +++ b/sites/tv.nu/tv.nu.config.js @@ -15,7 +15,7 @@ module.exports = { programs.push({ title: item.title, description: item.description, - icon: item.imageLandscape, + image: item.imageLandscape, category: item.genres, season: item.seasonNumber || null, episode: item.episodeNumber || null, @@ -30,7 +30,7 @@ module.exports = { const axios = require('axios') // prettier-ignore - const modules = [ 'ch-51', 'ch-52', 'ch-60', 'ch-27', 'ch-63', 'ch-65', 'ch-64', 'ch-66', 'ch-67', 'ch-68', 'ch-70', 'ch-88', 'ch-45', 'ch-132', 'ch-30228', 'ch-49', 'ch-53', 'ch-30233', 'ch-55', 'ch-93', 'ch-47', 'ch-4', 'ch-134', 'ch-105', 'ch-104', 'ch-131', 'ch-125', 'ch-126', 'ch-30215', 'ch-151', 'ch-122', 'ch-123', 'ch-124', 'ch-30194', 'ch-101', 'ch-106', 'ch-108', 'ch-107', 'ch-136', 'ch-137', 'ch-140', 'ch-120', 'ch-139', 'ch-74', 'ch-71', 'ch-76', 'ch-33', 'ch-18', 'ch-6', 'ch-30197', 'ch-30152', 'ch-146', 'ch-142', 'ch-128', 'ch-30211', 'ch-46', 'ch-162', 'ch-75', 'ch-119', 'ch-57', 'ch-82', 'ch-21', 'ch-22', 'ch-26', 'ch-145', 'ch-38', 'ch-10', 'ch-23', 'ch-9', 'ch-129', 'ch-69', 'ch-12', 'ch-3', 'ch-7', 'ch-81', 'ch-72', 'ch-2', 'ch-111', 'ch-16', 'ch-43', 'ch-80', 'ch-141', 'ch-143', 'ch-164', 'ch-147', 'ch-58', 'ch-39', 'ch-36', 'ch-15', 'ch-154', 'ch-40', 'ch-159', 'ch-30123', 'ch-30132', 'ch-30130', 'ch-30133', 'ch-30125', 'ch-30127', 'ch-30126', 'ch-30134', 'ch-30128', 'ch-30129', 'ch-30124', 'ch-30138', 'ch-30147', 'ch-30146', 'ch-30145', 'ch-30149', 'ch-30151', 'ch-30150', 'ch-30137', 'ch-30136', 'ch-30139', 'ch-30140', 'ch-30142', 'ch-30141', 'ch-161', 'ch-35', 'ch-34', 'ch-32', 'ch-30', 'ch-54', 'ch-112', 'ch-1', 'ch-86', 'ch-84', 'ch-28', 'ch-25', 'ch-13', 'ch-14', 'ch-11', 'ch-8', 'ch-5', 'ch-20', 'ch-24', 'ch-19', 'ch-30168', 'ch-30175', 'ch-30154', 'ch-30225', 'ch-30178', 'ch-30184', 'ch-30185', 'ch-30186', 'ch-30187', 'ch-30189', 'ch-30191', 'ch-30192', 'ch-30216', 'ch-30193', 'ch-30195', 'ch-30196', 'ch-30200', 'ch-30209', 'ch-30231', 'ch-30213', 'ch-30230', 'ch-30214', 'ch-30226', 'ch-56', 'ch-153', 'ch-148', 'ch-41', 'ch-37', 'ch-30157', 'ch-30158', 'ch-30232', 'ch-30221', 'ch-30222', 'ch-30223', 'ch-30234', 'ch-91', 'ch-100', 'ch-30235', 'ch-30236', 'ch-30237', 'ch-30239', 'ch-30240', 'ch-30241', 'ch-30242', 'ch-30249', 'ch-30256', 'ch-30253', 'ch-30250', 'ch-30257', 'ch-30255', 'ch-30251', 'ch-30252', 'ch-30254', 'ch-30258', 'ch-30259', 'ch-30260', 'ch-30261', 'ch-30262', 'ch-30263', 'ch-30264', 'ch-30265', 'ch-30372', 'ch-30373', 'ch-30374', 'ch-30375', 'ch-30376'] + const modules = ['ch-51', 'ch-52', 'ch-60', 'ch-27', 'ch-63', 'ch-65', 'ch-64', 'ch-66', 'ch-67', 'ch-68', 'ch-70', 'ch-88', 'ch-45', 'ch-132', 'ch-30228', 'ch-49', 'ch-53', 'ch-30233', 'ch-55', 'ch-93', 'ch-47', 'ch-4', 'ch-134', 'ch-105', 'ch-104', 'ch-131', 'ch-125', 'ch-126', 'ch-30215', 'ch-151', 'ch-122', 'ch-123', 'ch-124', 'ch-30194', 'ch-101', 'ch-106', 'ch-108', 'ch-107', 'ch-136', 'ch-137', 'ch-140', 'ch-120', 'ch-139', 'ch-74', 'ch-71', 'ch-76', 'ch-33', 'ch-18', 'ch-6', 'ch-30197', 'ch-30152', 'ch-146', 'ch-142', 'ch-128', 'ch-30211', 'ch-46', 'ch-162', 'ch-75', 'ch-119', 'ch-57', 'ch-82', 'ch-21', 'ch-22', 'ch-26', 'ch-145', 'ch-38', 'ch-10', 'ch-23', 'ch-9', 'ch-129', 'ch-69', 'ch-12', 'ch-3', 'ch-7', 'ch-81', 'ch-72', 'ch-2', 'ch-111', 'ch-16', 'ch-43', 'ch-80', 'ch-141', 'ch-143', 'ch-164', 'ch-147', 'ch-58', 'ch-39', 'ch-36', 'ch-15', 'ch-154', 'ch-40', 'ch-159', 'ch-30123', 'ch-30132', 'ch-30130', 'ch-30133', 'ch-30125', 'ch-30127', 'ch-30126', 'ch-30134', 'ch-30128', 'ch-30129', 'ch-30124', 'ch-30138', 'ch-30147', 'ch-30146', 'ch-30145', 'ch-30149', 'ch-30151', 'ch-30150', 'ch-30137', 'ch-30136', 'ch-30139', 'ch-30140', 'ch-30142', 'ch-30141', 'ch-161', 'ch-35', 'ch-34', 'ch-32', 'ch-30', 'ch-54', 'ch-112', 'ch-1', 'ch-86', 'ch-84', 'ch-28', 'ch-25', 'ch-13', 'ch-14', 'ch-11', 'ch-8', 'ch-5', 'ch-20', 'ch-24', 'ch-19', 'ch-30168', 'ch-30175', 'ch-30154', 'ch-30225', 'ch-30178', 'ch-30184', 'ch-30185', 'ch-30186', 'ch-30187', 'ch-30189', 'ch-30191', 'ch-30192', 'ch-30216', 'ch-30193', 'ch-30195', 'ch-30196', 'ch-30200', 'ch-30209', 'ch-30231', 'ch-30213', 'ch-30230', 'ch-30214', 'ch-30226', 'ch-56', 'ch-153', 'ch-148', 'ch-41', 'ch-37', 'ch-30157', 'ch-30158', 'ch-30232', 'ch-30221', 'ch-30222', 'ch-30223', 'ch-30234', 'ch-91', 'ch-100', 'ch-30235', 'ch-30236', 'ch-30237', 'ch-30239', 'ch-30240', 'ch-30241', 'ch-30242', 'ch-30249', 'ch-30256', 'ch-30253', 'ch-30250', 'ch-30257', 'ch-30255', 'ch-30251', 'ch-30252', 'ch-30254', 'ch-30258', 'ch-30259', 'ch-30260', 'ch-30261', 'ch-30262', 'ch-30263', 'ch-30264', 'ch-30265', 'ch-30372', 'ch-30373', 'ch-30374', 'ch-30375', 'ch-30376'] let channels = [] diff --git a/sites/tv.nu/tv.nu.test.js b/sites/tv.nu/tv.nu.test.js index 50ef8dcb..e5f9802a 100644 --- a/sites/tv.nu/tv.nu.test.js +++ b/sites/tv.nu/tv.nu.test.js @@ -33,7 +33,7 @@ it('can parse response', () => { title: 'CSI: Den Tätern auf der Spur', description: 'Hellseherin Sedona Wiley wird tot aufgefunden. Die Ermittlungen führen zu einem alten Mord. Gordon Wallace wurde vor 15 Jahren beschuldigt, seine Frau getötet zu haben, jedoch wurde nie eine Leiche gefunden.', - icon: 'https://new.static.tv.nu/13119997', + image: 'https://new.static.tv.nu/13119997', category: ['Action', 'Kriminaldrama', 'Mysterium', 'Spänning', 'Thriller'], season: 6, episode: 19 diff --git a/sites/tv.post.lu/tv.post.lu.config.js b/sites/tv.post.lu/tv.post.lu.config.js index 74162f9a..6d7a49be 100644 --- a/sites/tv.post.lu/tv.post.lu.config.js +++ b/sites/tv.post.lu/tv.post.lu.config.js @@ -15,7 +15,7 @@ module.exports = { title: item.title, description: item.description, category: item.program_type, - icon: item.image_url, + image: item.image_url, start: dayjs.unix(item.tsStart), stop: dayjs.unix(item.tsEnd) }) diff --git a/sites/tv.post.lu/tv.post.lu.test.js b/sites/tv.post.lu/tv.post.lu.test.js index a55f57ce..a113a2e5 100644 --- a/sites/tv.post.lu/tv.post.lu.test.js +++ b/sites/tv.post.lu/tv.post.lu.test.js @@ -33,7 +33,8 @@ it('can parse response', () => { description: 'Das Flaggschiff unter den deutschen Nachrichtensendungen ist gleichzeitig die "dienstälteste" noch bestehende Sendung im deutschen Fernsehen. In bis zu 20 am Tag produzierten Sendungen wird die Komplexität des Weltgeschehens verständlich erklärt und in komprimierter Form über aktuelle politische, wirtschaftliche, soziale, kulturelle, sportliche und sonstige Ereignisse berichtet.', category: 'Nachrichten', - icon: 'https://mp-photos-cdn.azureedge.net/container3cc71e4948ac40ab803c26e0abc2e3e5/original/e6eb49013a822f5c6eb2e7701e69a1f80aa0b947.jpg', + image: + 'https://mp-photos-cdn.azureedge.net/container3cc71e4948ac40ab803c26e0abc2e3e5/original/e6eb49013a822f5c6eb2e7701e69a1f80aa0b947.jpg', start: '2023-01-16T00:05:00.000Z', stop: '2023-01-16T00:10:00.000Z' }) diff --git a/sites/tv.trueid.net/tv.trueid.net.config.js b/sites/tv.trueid.net/tv.trueid.net.config.js index 8be8ef7d..f0736044 100644 --- a/sites/tv.trueid.net/tv.trueid.net.config.js +++ b/sites/tv.trueid.net/tv.trueid.net.config.js @@ -16,7 +16,7 @@ module.exports = { programs.push({ title: item.title, description: parseDescription(item, channel.lang), - icon: parseIcon(item), + image: parseImage(item), start: parseStart(item), stop: parseStop(item) }) @@ -26,8 +26,9 @@ module.exports = { }, async channels({ token, lang = en }) { const axios = require('axios') - const ACCESS_TOKEN = token ? token : - 'MTM4MDY0NGUwZjFmYjZiMTRjODI4OTRhMGM2ODJkMTQ3ZTAxNWM5ZDoxZmI2YjE0YzgyODk0YTBjNjgyZDE0N2UwMTVjOWQ=' + const ACCESS_TOKEN = token + ? token + : 'MTM4MDY0NGUwZjFmYjZiMTRjODI4OTRhMGM2ODJkMTQ3ZTAxNWM5ZDoxZmI2YjE0YzgyODk0YTBjNjgyZDE0N2UwMTVjOWQ=' const data = await axios .get(`https://tv.trueid.net/api/channel/getChannelListByAllCate?lang=${lang}&country=th`, { @@ -52,10 +53,10 @@ module.exports = { function parseDescription(item, lang) { const description = item.info?.[`synopsis_${lang}`] - return description && description !== '.' ? description : null; + return description && description !== '.' ? description : null } -function parseIcon(item) { +function parseImage(item) { return item.info?.image || null } @@ -68,6 +69,6 @@ function parseStop(item) { } function parseItems(content) { - const data = content ? JSON.parse(content) : null; + const data = content ? JSON.parse(content) : null return data?.pageProps?.epgList || [] } diff --git a/sites/tv.trueid.net/tv.trueid.net.test.js b/sites/tv.trueid.net/tv.trueid.net.test.js index 7f1d590a..02386c7b 100644 --- a/sites/tv.trueid.net/tv.trueid.net.test.js +++ b/sites/tv.trueid.net/tv.trueid.net.test.js @@ -19,7 +19,9 @@ const data = fs.readFileSync(path.resolve(__dirname, '__data__/data.json')) it('can generate valid url', () => { const result = url({ channel, date }) - expect(result).toBe('https://tv.trueid.net/_next/data/1380644e0f1fb6b14c82894a0c682d147e015c9d/th-en.json?channelSlug=true-movie-hits&path=true-movie-hits') + expect(result).toBe( + 'https://tv.trueid.net/_next/data/1380644e0f1fb6b14c82894a0c682d147e015c9d/th-en.json?channelSlug=true-movie-hits&path=true-movie-hits' + ) }) it('can parse English response', () => { @@ -34,7 +36,7 @@ it('can parse English response', () => { title: 'The Last Witch Hunter', description: 'A young man is all that stands between humanity and the most horrifying witches in history.', - icon: 'https://bms.dmpcdn.com/uploads/pic/381f853da5f4a310bf248357fed21a57.jpg' + image: 'https://bms.dmpcdn.com/uploads/pic/381f853da5f4a310bf248357fed21a57.jpg' }) }) @@ -50,7 +52,7 @@ it('can parse Thai response', () => { title: 'The Last Witch Hunter', description: 'หนุ่มนักล่าแม่มดถูกสาปให้เป็นอมตะจนกระทั่งราชินีแม่มดได้ฟื้นคืนชีพขึ้นมาจึงมีเพียงเขาคนเดียวเท่านั้นที่จะสามารถกอบกู้มวลมนุษยชาติได้', - icon: 'https://bms.dmpcdn.com/uploads/pic/381f853da5f4a310bf248357fed21a57.jpg' + image: 'https://bms.dmpcdn.com/uploads/pic/381f853da5f4a310bf248357fed21a57.jpg' }) }) diff --git a/sites/tv.yettel.hu/tv.yettel.hu.config.js b/sites/tv.yettel.hu/tv.yettel.hu.config.js index 95760b90..464fe503 100644 --- a/sites/tv.yettel.hu/tv.yettel.hu.config.js +++ b/sites/tv.yettel.hu/tv.yettel.hu.config.js @@ -18,7 +18,7 @@ module.exports = { programs.push({ title: item.Title, description: item.ShortDescription, - icon: parseIcon(item), + image: parseImage(item), start: parseStart(item), stop: parseStop(item) }) @@ -45,7 +45,7 @@ module.exports = { } } -function parseIcon(item) { +function parseImage(item) { if (Array.isArray(item.Images.Cover) && item.Images.Cover.length) { return item.Images.Cover[0].Url } diff --git a/sites/tv.yettel.hu/tv.yettel.hu.test.js b/sites/tv.yettel.hu/tv.yettel.hu.test.js index 5bccc5a2..b41b000d 100644 --- a/sites/tv.yettel.hu/tv.yettel.hu.test.js +++ b/sites/tv.yettel.hu/tv.yettel.hu.test.js @@ -67,7 +67,8 @@ it('can parse response', () => { title: 'Ma reggel', description: 'A Ma reggel az MTVA saját gyártású, minden hétköznap jelentkező reggeli politikai és közéleti témákkal foglalkozó műsora.', - icon: 'https://static.mytvback.com/userfiles/c/0/c01d48a36b913a7afb0dcb5edba33849_thum_100x144.jpg' + image: + 'https://static.mytvback.com/userfiles/c/0/c01d48a36b913a7afb0dcb5edba33849_thum_100x144.jpg' } ]) }) diff --git a/sites/tv24.se/tv24.se.config.js b/sites/tv24.se/tv24.se.config.js index 832d6ec0..76d92535 100644 --- a/sites/tv24.se/tv24.se.config.js +++ b/sites/tv24.se/tv24.se.config.js @@ -33,7 +33,7 @@ module.exports = { title: parseTitle($item), description: details.description, actors: details.actors, - icon: details.icon, + image: details.image, category: details.category, sub_title: details.sub_title, season: details.season, @@ -89,7 +89,7 @@ async function loadProgramDetails($item) { const $ = cheerio.load(data.contentBefore + data.contentAfter) return Promise.resolve({ - icon: parseIcon($), + image: parseImage($), actors: parseActors($), description: parseDescription($), category: parseCategory($), @@ -99,7 +99,7 @@ async function loadProgramDetails($item) { }) } -function parseIcon($) { +function parseImage($) { const style = $('.image > .actual').attr('style') const [, url] = style.match(/background-image: url\('([^']+)'\)/) diff --git a/sites/tv24.se/tv24.se.test.js b/sites/tv24.se/tv24.se.test.js index 8462e855..bfeeb206 100644 --- a/sites/tv24.se/tv24.se.test.js +++ b/sites/tv24.se/tv24.se.test.js @@ -48,7 +48,7 @@ it('can parse response', async () => { start: '2022-08-26T04:00:00.000Z', stop: '2022-08-26T07:10:00.000Z', title: 'Morgonstudion', - icon: 'https://jrsy.tmsimg.com/assets/p14436175_i_h9_ad.jpg', + image: 'https://jrsy.tmsimg.com/assets/p14436175_i_h9_ad.jpg', description: 'Dagens viktigaste nyheter och analyser med ständiga uppdateringar. Vi sänder direkt inrikes- och utrikesnyheter inklusive sport, kultur och nöje. Dessutom intervjuer med aktuella gäster. Nyhetssammanfattningar varje kvart med start kl 06.00.', actors: ['Carolina Neurath', 'Karin Magnusson', 'Pelle Nilsson', 'Ted Wigren'] @@ -58,7 +58,7 @@ it('can parse response', async () => { start: '2022-08-27T05:20:00.000Z', stop: '2022-08-27T05:50:00.000Z', title: 'Uppdrag granskning', - icon: 'https://jrsy.tmsimg.com/assets/p22818697_e_h9_aa.jpg', + image: 'https://jrsy.tmsimg.com/assets/p22818697_e_h9_aa.jpg', description: 'När samtliga sex män frias för ännu en skjutning växer vreden inom polisen. Ökningen av skjutningar i Sverige ligger i topp i Europa - och nu är våldsspiralen på väg mot ett nattsvart rekord. Hur blev Sverige landet där mördare går fria?', actors: ['Karin Mattisson', 'Ali Fegan'], diff --git a/sites/tv2go.t-2.net/tv2go.t-2.net.config.js b/sites/tv2go.t-2.net/tv2go.t-2.net.config.js index 2391d951..9b77abec 100644 --- a/sites/tv2go.t-2.net/tv2go.t-2.net.config.js +++ b/sites/tv2go.t-2.net/tv2go.t-2.net.config.js @@ -47,7 +47,7 @@ const config = { title: item.name, category: parseCategory(item), description: parseDescription(item), - icon: parseIcon(item), + image: parseImage(item), start: parseStart(item), stop: parseStop(item) }) @@ -93,7 +93,7 @@ function parseStop(item) { return dayjs(parseInt(item.endTimestamp)) } -function parseIcon(item) { +function parseImage(item) { return item.images && item.images[0] ? `https://tv2go.t-2.net${item.images[0].url}` : null } diff --git a/sites/tv2go.t-2.net/tv2go.t-2.net.test.js b/sites/tv2go.t-2.net/tv2go.t-2.net.test.js index 4b452050..23f82839 100644 --- a/sites/tv2go.t-2.net/tv2go.t-2.net.test.js +++ b/sites/tv2go.t-2.net/tv2go.t-2.net.test.js @@ -52,7 +52,7 @@ it('can parse response', () => { category: ['Informativni'], description: 'Dnevnik Slovencev v Italiji je informativna oddaja, v kateri novinarji poročajo predvsem o dnevnih dogodkih med Slovenci v Italiji.', - icon: 'https://tv2go.t-2.net/static/media/img/epg/max_crop/EPG_IMG_2927405.jpg' + image: 'https://tv2go.t-2.net/static/media/img/epg/max_crop/EPG_IMG_2927405.jpg' } ]) }) diff --git a/sites/tvgids.nl/tvgids.nl.config.js b/sites/tvgids.nl/tvgids.nl.config.js index 05cfd85a..4df42207 100644 --- a/sites/tvgids.nl/tvgids.nl.config.js +++ b/sites/tvgids.nl/tvgids.nl.config.js @@ -32,7 +32,7 @@ module.exports = { programs.push({ title: parseTitle($item), description: parseDescription($item), - icon: parseIcon($item), + image: parseImage($item), start, stop }) @@ -68,7 +68,7 @@ function parseDescription($item) { return $item('.program__text').text().trim() } -function parseIcon($item) { +function parseImage($item) { return $item('.program__thumbnail').data('src') } diff --git a/sites/tvgids.nl/tvgids.nl.test.js b/sites/tvgids.nl/tvgids.nl.test.js index c837157c..790fb41f 100644 --- a/sites/tvgids.nl/tvgids.nl.test.js +++ b/sites/tvgids.nl/tvgids.nl.test.js @@ -35,7 +35,7 @@ it('can parse response', () => { start: '2023-06-12T21:57:00.000Z', stop: '2023-06-12T22:58:00.000Z', title: 'Op1', - icon: 'https://tvgidsassets.nl/v301/upload/o/carrousel/op1-451542641.jpg', + image: 'https://tvgidsassets.nl/v301/upload/o/carrousel/op1-451542641.jpg', description: "Talkshow met wisselende presentatieduo's, live vanuit Amsterdam." }) @@ -43,7 +43,7 @@ it('can parse response', () => { start: '2023-06-14T00:18:00.000Z', stop: '2023-06-14T00:48:00.000Z', title: 'NOS Journaal', - icon: 'https://tvgidsassets.nl/v301/upload/n/carrousel/nos-journaal-452818771.jpg', + image: 'https://tvgidsassets.nl/v301/upload/n/carrousel/nos-journaal-452818771.jpg', description: 'Met het laatste nieuws, gebeurtenissen van nationaal en internationaal belang en de weersverwachting voor vandaag.' }) diff --git a/sites/tvguide.myjcom.jp/tvguide.myjcom.jp.config.js b/sites/tvguide.myjcom.jp/tvguide.myjcom.jp.config.js index cb6c2580..9140f5e8 100644 --- a/sites/tvguide.myjcom.jp/tvguide.myjcom.jp.config.js +++ b/sites/tvguide.myjcom.jp/tvguide.myjcom.jp.config.js @@ -24,7 +24,7 @@ module.exports = { title: item.title, description: item.commentary, category: parseCategory(item), - icon: parseIcon(item), + image: parseImage(item), start: parseStart(item), stop: parseStop(item) }) @@ -70,7 +70,7 @@ module.exports = { } } -function parseIcon(item) { +function parseImage(item) { return item.imgPath ? `https://tvguide.myjcom.jp${item.imgPath}` : null } diff --git a/sites/tvguide.myjcom.jp/tvguide.myjcom.jp.test.js b/sites/tvguide.myjcom.jp/tvguide.myjcom.jp.test.js index f6ea526a..9506861a 100644 --- a/sites/tvguide.myjcom.jp/tvguide.myjcom.jp.test.js +++ b/sites/tvguide.myjcom.jp/tvguide.myjcom.jp.test.js @@ -33,7 +33,8 @@ it('can parse response', () => { title: '[5.1]フードロア:タマリンド', description: 'HBO(R)アジア製作。日本の齊藤工などアジアの監督が、各国の食をテーマに描いたアンソロジーシリーズ。(全8話)(19年 シンガポール 56分)', - icon: 'https://tvguide.myjcom.jp/monomedia/si/2022/20220114/7305523/image/7743d17b655b8d2274ca58b74f2f095c.jpg', + image: + 'https://tvguide.myjcom.jp/monomedia/si/2022/20220114/7305523/image/7743d17b655b8d2274ca58b74f2f095c.jpg', category: 'ドラマ' } ]) diff --git a/sites/tvheute.at/tvheute.at.config.js b/sites/tvheute.at/tvheute.at.config.js index 8ce8e552..4862eec1 100644 --- a/sites/tvheute.at/tvheute.at.config.js +++ b/sites/tvheute.at/tvheute.at.config.js @@ -16,7 +16,7 @@ module.exports = { programs.push({ title: parseTitle(item), description: parseDescription(item), - icon: parseIcon(item), + image: parseImage(item), category: parseCategory(item), start: parseStart(item).toJSON(), stop: parseStop(item).toJSON() @@ -68,7 +68,7 @@ function parseCategory(item) { return $('.station-col > .type').text() } -function parseIcon(item) { +function parseImage(item) { const $ = cheerio.load(item) const imgSrc = $('.title-col .image img').data('src-desktop') diff --git a/sites/tvheute.at/tvheute.at.test.js b/sites/tvheute.at/tvheute.at.test.js index c9666ece..cb52784c 100644 --- a/sites/tvheute.at/tvheute.at.test.js +++ b/sites/tvheute.at/tvheute.at.test.js @@ -26,7 +26,7 @@ it('can parse response', () => { category: 'Kids', description: 'Roger hat sich Ärger mit Dr. Bellows eingehandelt, der ihn für einen Monat strafversetzen möchte. Einmal mehr hadert Roger mit dem Schicksal, dass er keinen eigenen Flaschengeist besitzt, der ihm aus der Patsche helfen kann. Jeannie schlägt vor, ihm Cousine Marilla zu schicken. Doch Tony ist strikt dagegen. Als ein Zaubererpärchen im exotischen Bühnenoutfit für die Zeit von Rogers Abwesenheit sein Apartment in Untermiete bezieht, glaubt Roger, Jeannie habe ihm ihre Verwandte doch noch gesandt.', - icon: 'https://tvheute.at/images/orf1/monchhichi_kids--1895216560-00.jpg' + image: 'https://tvheute.at/images/orf1/monchhichi_kids--1895216560-00.jpg' }, { start: '2021-11-08T17:00:00.000Z', diff --git a/sites/tvmi.mt/tvmi.mt.config.js b/sites/tvmi.mt/tvmi.mt.config.js index dc8bb8f6..e2692031 100644 --- a/sites/tvmi.mt/tvmi.mt.config.js +++ b/sites/tvmi.mt/tvmi.mt.config.js @@ -30,7 +30,7 @@ module.exports = { programs.push({ title: parseTitle($item), description: parseDescription($item), - icon: parseIcon($item), + image: parseImage($item), start, stop }) @@ -52,7 +52,7 @@ function parseDescription($item) { .trim() } -function parseIcon($item) { +function parseImage($item) { const bg = $item('div > div:nth-child(1) > div > div,a > div:nth-child(1) > div').data('bg') return bg ? `https:${bg}` : null diff --git a/sites/tvmi.mt/tvmi.mt.test.js b/sites/tvmi.mt/tvmi.mt.test.js index e52c52ae..7ce6f899 100644 --- a/sites/tvmi.mt/tvmi.mt.test.js +++ b/sites/tvmi.mt/tvmi.mt.test.js @@ -31,14 +31,16 @@ it('can parse response', () => { title: 'Bizzilla', description: 'Storja ta’ tliet familji, tnejn minnhom miżżewġin bejniethom, u familja oħra li għalkemm mhijiex, b’daqshekk ma jfissirx li mhijiex parti ntegrali fil-kompliċitá li ilha għaddejja bejniethom għal dawn l-aħħar tletin sena.', - icon: 'https://dist4.tvmi.mt/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjMyNjEwNywiYXVkIjoiMTg4LjI0Mi40OC45MyIsImV4cCI6MTY2NzAxNjM1OH0.N4de761te_pRvWwSUnF6httRAzdukup5syejwXTUv8g/vod/663927/image.jpg' + image: + 'https://dist4.tvmi.mt/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjMyNjEwNywiYXVkIjoiMTg4LjI0Mi40OC45MyIsImV4cCI6MTY2NzAxNjM1OH0.N4de761te_pRvWwSUnF6httRAzdukup5syejwXTUv8g/vod/663927/image.jpg' }) expect(results[1]).toMatchObject({ start: '2022-10-29T04:00:00.000Z', stop: '2022-10-29T04:30:00.000Z', title: 'The Adventures of Puss in Boots', - icon: 'https://dist4.tvmi.mt/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjMyNjEwNywiYXVkIjoiMTg4LjI0Mi40OC45MyIsImV4cCI6MTY2NzAxNjM1OH0.N4de761te_pRvWwSUnF6httRAzdukup5syejwXTUv8g/vod/747336/image.jpg' + image: + 'https://dist4.tvmi.mt/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjMyNjEwNywiYXVkIjoiMTg4LjI0Mi40OC45MyIsImV4cCI6MTY2NzAxNjM1OH0.N4de761te_pRvWwSUnF6httRAzdukup5syejwXTUv8g/vod/747336/image.jpg' }) }) diff --git a/sites/tvmusor.hu/tvmusor.hu.config.js b/sites/tvmusor.hu/tvmusor.hu.config.js index 373e4774..efbf120f 100644 --- a/sites/tvmusor.hu/tvmusor.hu.config.js +++ b/sites/tvmusor.hu/tvmusor.hu.config.js @@ -38,7 +38,7 @@ module.exports = { title: item.j, category: item.h, description: item.c, - icon: parseIcon(item), + image: parseImage(item), start, stop }) @@ -66,7 +66,7 @@ module.exports = { } } -function parseIcon(item) { +function parseImage(item) { return item.z ? `http://www.tvmusor.hu/images/events/408/${item.z}` : null } diff --git a/sites/tvmusor.hu/tvmusor.hu.test.js b/sites/tvmusor.hu/tvmusor.hu.test.js index 439cd662..abb3266d 100644 --- a/sites/tvmusor.hu/tvmusor.hu.test.js +++ b/sites/tvmusor.hu/tvmusor.hu.test.js @@ -47,7 +47,8 @@ it('can parse response', () => { title: 'Rövidpályás Úszó Országos Bajnokság', category: 'sportműsor', description: 'Forma-1 magazin. Hírek, információk, érdekességek a Forma-1 világából.', - icon: 'http://www.tvmusor.hu/images/events/408/f1e45193930943d9ee29769e0afa902aff0e4a90-better-call-saul.jpg' + image: + 'http://www.tvmusor.hu/images/events/408/f1e45193930943d9ee29769e0afa902aff0e4a90-better-call-saul.jpg' }) expect(results[1]).toMatchObject({ diff --git a/sites/tvpassport.com/tvpassport.com.config.js b/sites/tvpassport.com/tvpassport.com.config.js index 0a76ee07..c8d28d3f 100644 --- a/sites/tvpassport.com/tvpassport.com.config.js +++ b/sites/tvpassport.com/tvpassport.com.config.js @@ -41,7 +41,7 @@ module.exports = { title, sub_title, description: parseDescription($item), - icon: parseIcon($item), + image: parseImage($item), category: parseCategory($item), rating: parseRating($item), actors: parseActors($item), @@ -102,7 +102,7 @@ function parseDescription($item) { return $item('*').data('description') } -function parseIcon($item) { +function parseImage($item) { const showpicture = $item('*').data('showpicture') const url = new URL(showpicture, 'https://cdn.tvpassport.com/image/show/960x540/') diff --git a/sites/tvpassport.com/tvpassport.com.test.js b/sites/tvpassport.com/tvpassport.com.test.js index 67928511..df9a7d63 100644 --- a/sites/tvpassport.com/tvpassport.com.test.js +++ b/sites/tvpassport.com/tvpassport.com.test.js @@ -41,7 +41,7 @@ it('can parse response', () => { title: 'Charlie Moore: No Offense', sub_title: 'Under the Influencer', category: ['Sports', 'Outdoors'], - icon: 'https://cdn.tvpassport.com/image/show/960x540/69103.jpg', + image: 'https://cdn.tvpassport.com/image/show/960x540/69103.jpg', rating: { system: 'MPA', value: 'TV-G' diff --git a/sites/tvplus.com.tr/tvplus.com.tr.config.js b/sites/tvplus.com.tr/tvplus.com.tr.config.js index 2bf55421..cae79755 100644 --- a/sites/tvplus.com.tr/tvplus.com.tr.config.js +++ b/sites/tvplus.com.tr/tvplus.com.tr.config.js @@ -45,7 +45,7 @@ module.exports = { title: item.name, category: item.genres, description: item.introduce, - icon: parseIcon(item), + image: parseImage(item), start: start.toJSON(), stop: stop.toJSON() }) @@ -79,7 +79,7 @@ module.exports = { } } -function parseIcon(item) { +function parseImage(item) { return item.pictures && item.pictures.length ? item.pictures[0].href : null } diff --git a/sites/tvplus.com.tr/tvplus.com.tr.test.js b/sites/tvplus.com.tr/tvplus.com.tr.test.js index d17a3642..1764a179 100644 --- a/sites/tvplus.com.tr/tvplus.com.tr.test.js +++ b/sites/tvplus.com.tr/tvplus.com.tr.test.js @@ -35,7 +35,8 @@ it('can parse response', () => { stop: '2021-11-07T01:00:00.000Z', title: '24 Portre', category: 'Yaşam', - icon: 'https://izmottvsc23.tvplus.com.tr:33207/CPS/images/universal/film/program/202111/20211104/35/20211104000026695lh5.jpg', + image: + 'https://izmottvsc23.tvplus.com.tr:33207/CPS/images/universal/film/program/202111/20211104/35/20211104000026695lh5.jpg', description: 'Kendi alanında büyük başarılar elde etmiş insanların kendi ağzından hayat hikayeleri ekrana geliyor.' } diff --git a/sites/tvprofil.com/tvprofil.com.config.js b/sites/tvprofil.com/tvprofil.com.config.js index 0da8aba1..52ce6046 100644 --- a/sites/tvprofil.com/tvprofil.com.config.js +++ b/sites/tvprofil.com/tvprofil.com.config.js @@ -25,9 +25,9 @@ module.exports = { const start = parseStart($item) const duration = parseDuration($item) const stop = start.add(duration, 's') - const icon = parseIcon($item) + const image = parseImage($item) - programs.push({ title, category, start, stop, icon }) + programs.push({ title, category, start, stop, image }) }) return programs @@ -101,7 +101,7 @@ module.exports = { } } -function parseIcon($item) { +function parseImage($item) { return $item(':root').data('image') } diff --git a/sites/virginmediatelevision.ie/virginmediatelevision.ie.config.js b/sites/virginmediatelevision.ie/virginmediatelevision.ie.config.js index 23c8c34c..ad225963 100644 --- a/sites/virginmediatelevision.ie/virginmediatelevision.ie.config.js +++ b/sites/virginmediatelevision.ie/virginmediatelevision.ie.config.js @@ -33,7 +33,7 @@ module.exports = { title: parseTitle($item), description: parseDescription($item), sub_title: parseSubTitle($item), - icon: parseIcon($item), + image: parseImage($item), start, stop }) @@ -55,7 +55,7 @@ function parseSubTitle($item) { return $item('.info').data('subtitle') } -function parseIcon($item) { +function parseImage($item) { return $item('.info').data('image') } diff --git a/sites/virginmediatelevision.ie/virginmediatelevision.ie.test.js b/sites/virginmediatelevision.ie/virginmediatelevision.ie.test.js index f08491b0..ad5c067a 100644 --- a/sites/virginmediatelevision.ie/virginmediatelevision.ie.test.js +++ b/sites/virginmediatelevision.ie/virginmediatelevision.ie.test.js @@ -36,7 +36,7 @@ it('can parse response', () => { sub_title: '', description: 'A detective sergeant and expert in the field of serial killers working for the Missing Persons Bureau tries to protect the general public from evil.', - icon: 'https://bcboltvirgin.akamaized.net/player/shows/1498_517x291_1528141264.jpg' + image: 'https://bcboltvirgin.akamaized.net/player/shows/1498_517x291_1528141264.jpg' }) }) diff --git a/sites/vtm.be/vtm.be.config.js b/sites/vtm.be/vtm.be.config.js index 21fddf2f..c919c8ad 100644 --- a/sites/vtm.be/vtm.be.config.js +++ b/sites/vtm.be/vtm.be.config.js @@ -24,7 +24,7 @@ module.exports = { title: item.title, description: item.synopsis, category: item.genre, - icon: item.imageUrl, + image: item.imageUrl, start: dayjs(item.from).toJSON(), stop: dayjs(item.to).toJSON() }) diff --git a/sites/vtm.be/vtm.be.test.js b/sites/vtm.be/vtm.be.test.js index 22677264..0ea8d2b2 100644 --- a/sites/vtm.be/vtm.be.test.js +++ b/sites/vtm.be/vtm.be.test.js @@ -25,7 +25,8 @@ it('can parse response', () => { start: '2021-11-10T23:45:00.000Z', stop: '2021-11-11T00:20:00.000Z', title: 'Wooninspiraties', - icon: 'https://images4.persgroep.net/rcs/z5qrZHumkjuN5rWzoaRJ_BTdL7A/diocontent/209688322/_fill/600/400?appId=da11c75db9b73ea0f41f0cd0da631c71', + image: + 'https://images4.persgroep.net/rcs/z5qrZHumkjuN5rWzoaRJ_BTdL7A/diocontent/209688322/_fill/600/400?appId=da11c75db9b73ea0f41f0cd0da631c71', description: 'Een team gaat op pad om inspiratie op te doen over alles wat met wonen en leven te maken heeft; Ze trekken heel het land door om de laatste trends en tips op het gebied van wonen te achterhalen.', category: 'Magazine' diff --git a/sites/watch.sportsnet.ca/watch.sportsnet.ca.config.js b/sites/watch.sportsnet.ca/watch.sportsnet.ca.config.js index 70f80d1f..88e3db99 100644 --- a/sites/watch.sportsnet.ca/watch.sportsnet.ca.config.js +++ b/sites/watch.sportsnet.ca/watch.sportsnet.ca.config.js @@ -18,7 +18,7 @@ module.exports = { programs.push({ title: item.item.title, description: item.item.shortDescription, - icon: parseIcon(item), + image: parseImage(item), start: parseStart(item), stop: parseStop(item) }) @@ -47,7 +47,7 @@ module.exports = { } } -function parseIcon(item) { +function parseImage(item) { if (!item.item || !item.item.images) return null return item.item.images.tile diff --git a/sites/watch.sportsnet.ca/watch.sportsnet.ca.test.js b/sites/watch.sportsnet.ca/watch.sportsnet.ca.test.js index b1879d64..130e27ac 100644 --- a/sites/watch.sportsnet.ca/watch.sportsnet.ca.test.js +++ b/sites/watch.sportsnet.ca/watch.sportsnet.ca.test.js @@ -33,7 +33,8 @@ it('can parse response', () => { title: 'Calgary Flames at Colorado Avalanche', description: 'Johnny Gaudreau and the Flames pay a visit to the Avalanche. Calgary won 4-3 in overtime March 5.', - icon: "https://production-static.sportsnet-static.com/shain/v1/dataservice/ResizeImage/$value?Format='jpg'&Quality=85&ImageId='785305'&EntityType='LinearSchedule'&EntityId='826cb731-9de4-4cf3-bcca-d548d8a33d16'&Width=3840&Height=2160" + image: + "https://production-static.sportsnet-static.com/shain/v1/dataservice/ResizeImage/$value?Format='jpg'&Quality=85&ImageId='785305'&EntityType='LinearSchedule'&EntityId='826cb731-9de4-4cf3-bcca-d548d8a33d16'&Width=3840&Height=2160" } ]) }) diff --git a/sites/watchyour.tv/watchyour.tv.test.js b/sites/watchyour.tv/watchyour.tv.test.js index a97815e0..ef1dd98b 100644 --- a/sites/watchyour.tv/watchyour.tv.test.js +++ b/sites/watchyour.tv/watchyour.tv.test.js @@ -17,7 +17,7 @@ it('can generate valid url', () => { it('can parse response', () => { const content = - '[{"name":"TVS Classic Sports","icon":"https://www.watchyour.tv/epg/channellogos/tvs-classic-sports.png","language":"English","id":"735","shows":[{"name":"1979 WVU vs Penn State","category":"Sports","start_day":"2022-10-03","start":"04:00:00","end_day":"2022-10-03","end":"06:00:45","duration":"121","url":"http://rpn1.bozztv.com/36bay2/gusa-tvs/index-1664769600-7245.m3u8?token=f7410a9414f61579dced17ac1bbdb971","icon":"https://example.com/image.png","timezone":"+0000","tms":"1664769600"},{"name":"1958 NCAA University of Kentucky vs Seattle U","category":"Sports","start_day":"2022-10-04","start":"00:58:50","end_day":"2022-10-04","end":"01:44:11","duration":"46","url":"http://rpn1.bozztv.com/36bay2/gusa-tvs/index.m3u8?token=93e7b201f544c87296076b73f9d880ae","icon":"","timezone":"+0000","tms":"1664845130"}]}]' + '[{"name":"TVS Classic Sports","icon":"https://www.watchyour.tv/epg/channellogos/tvs-classic-sports.png","language":"English","id":"735","shows":[{"name":"1979 WVU vs Penn State","category":"Sports","start_day":"2022-10-03","start":"04:00:00","end_day":"2022-10-03","end":"06:00:45","duration":"121","url":"http://rpn1.bozztv.com/36bay2/gusa-tvs/index-1664769600-7245.m3u8?token=f7410a9414f61579dced17ac1bbdb971","icon":"https://example.com/icon.png","timezone":"+0000","tms":"1664769600"},{"name":"1958 NCAA University of Kentucky vs Seattle U","category":"Sports","start_day":"2022-10-04","start":"00:58:50","end_day":"2022-10-04","end":"01:44:11","duration":"46","url":"http://rpn1.bozztv.com/36bay2/gusa-tvs/index.m3u8?token=93e7b201f544c87296076b73f9d880ae","icon":"","timezone":"+0000","tms":"1664845130"}]}]' const result = parser({ content, date, channel }).map(p => { p.start = p.start.toJSON() p.stop = p.stop.toJSON() @@ -29,7 +29,7 @@ it('can parse response', () => { start: '2022-10-03T04:00:00.000Z', stop: '2022-10-03T06:01:00.000Z', title: '1979 WVU vs Penn State', - icon: 'https://example.com/image.png', + icon: 'https://example.com/icon.png', category: 'Sports' } ]) diff --git a/sites/web.magentatv.de/web.magentatv.de.config.js b/sites/web.magentatv.de/web.magentatv.de.config.js index c26a4bc3..55c9b61c 100644 --- a/sites/web.magentatv.de/web.magentatv.de.config.js +++ b/sites/web.magentatv.de/web.magentatv.de.config.js @@ -47,7 +47,7 @@ module.exports = { programs.push({ title: item.name, description: item.introduce, - icon: parseIcon(item), + image: parseImage(item), category: parseCategory(item), start: parseStart(item), stop: parseStop(item) @@ -102,7 +102,7 @@ function parseCategory(item) { : [] } -function parseIcon(item) { +function parseImage(item) { if (!Array.isArray(item.pictures) || !item.pictures.length) return null return item.pictures[0].href diff --git a/sites/web.magentatv.de/web.magentatv.de.test.js b/sites/web.magentatv.de/web.magentatv.de.test.js index c3377a3c..632c1054 100644 --- a/sites/web.magentatv.de/web.magentatv.de.test.js +++ b/sites/web.magentatv.de/web.magentatv.de.test.js @@ -66,7 +66,8 @@ it('can parse response', () => { title: 'Twenty Foot Plus', description: 'Die besten Big-Wave-Surfer werden bei ihrer Suche nach der nächsten großen Welle begleitet.', - icon: 'http://ngiss.t-online.de/cm1s/media/gracenote/2/4/p24832950_e_h9_aa_2023-06-22T10_12_01.jpg', + image: + 'http://ngiss.t-online.de/cm1s/media/gracenote/2/4/p24832950_e_h9_aa_2023-06-22T10_12_01.jpg', category: ['Sport'] } ]) diff --git a/sites/webtv.delta.nl/webtv.delta.nl.config.js b/sites/webtv.delta.nl/webtv.delta.nl.config.js index f887d578..961a3706 100644 --- a/sites/webtv.delta.nl/webtv.delta.nl.config.js +++ b/sites/webtv.delta.nl/webtv.delta.nl.config.js @@ -16,7 +16,7 @@ module.exports = { const details = await loadProgramDetails(item) programs.push({ title: item.title, - icon: item.images.thumbnail.url, + image: item.images.thumbnail.url, description: details.description, start: parseStart(item).toJSON(), stop: parseStop(item).toJSON() diff --git a/sites/webtv.delta.nl/webtv.delta.nl.test.js b/sites/webtv.delta.nl/webtv.delta.nl.test.js index 1ff1205d..1b95868c 100644 --- a/sites/webtv.delta.nl/webtv.delta.nl.test.js +++ b/sites/webtv.delta.nl/webtv.delta.nl.test.js @@ -41,7 +41,7 @@ it('can parse response', done => { title: 'NOS Journaal', description: 'Nederlands lifestyleprogramma uit 2022 (ook in HD) met dagelijkse inspiratie voor een lekker leven in en om het huis.\nPresentatrice Froukje de Both, kok Hugo Kennis en een team van experts, onder wie tuinman Tom Groot, geven praktische tips op het gebied van wonen, lifestyle, tuinieren en koken. Daarmee kun je zelf direct aan de slag om je leven leuker én gezonder te maken. Afl. 15 van seizoen 4.', - icon: 'https://cdn.gvidi.tv/img/booxmedia/e19c/static/NOS%20Journaal5.jpg' + image: 'https://cdn.gvidi.tv/img/booxmedia/e19c/static/NOS%20Journaal5.jpg' } ]) done() diff --git a/sites/worldfishingnetwork.com/worldfishingnetwork.com.config.js b/sites/worldfishingnetwork.com/worldfishingnetwork.com.config.js index a1b99fee..b50e1f8f 100644 --- a/sites/worldfishingnetwork.com/worldfishingnetwork.com.config.js +++ b/sites/worldfishingnetwork.com/worldfishingnetwork.com.config.js @@ -33,7 +33,7 @@ module.exports = { title: parseTitle($item), sub_title: parseSubTitle($item), description: parseDescription($item), - icon: parseIcon($item), + image: parseImage($item), start, stop }) @@ -55,7 +55,7 @@ function parseDescription($item) { return $item('.show-title > p').text().trim() } -function parseIcon($item) { +function parseImage($item) { const url = $item('.show-img > img').attr('src') return url ? `https:${url}` : null diff --git a/sites/worldfishingnetwork.com/worldfishingnetwork.com.test.js b/sites/worldfishingnetwork.com/worldfishingnetwork.com.test.js index 463d8ebd..8629089e 100644 --- a/sites/worldfishingnetwork.com/worldfishingnetwork.com.test.js +++ b/sites/worldfishingnetwork.com/worldfishingnetwork.com.test.js @@ -29,7 +29,7 @@ it('can parse response', () => { sub_title: 'Challenge Cup Sudden Death Round 2', description: 'Nine anglers race to a target weight on Lake Wylie in the Lucas Oil Challenge Cup, presented by B&W Trailer Hitches, Rock Hill, South Carolina. Only four will move on to the Championship Round.', - icon: 'https://content.osgnetworks.tv/shows/major-league-fishing-thumbnail.jpg' + image: 'https://content.osgnetworks.tv/shows/major-league-fishing-thumbnail.jpg' }) expect(results[41]).toMatchObject({ @@ -39,7 +39,7 @@ it('can parse response', () => { sub_title: 'Flint Wilderness Walleye', description: 'Mark Romanack and Bryan Darland fish walleye on Klotz Lake in the famed Flint Wilderness of Ontario', - icon: 'https://content.osgnetworks.tv/shows/fishin-411-thumbnail.jpg' + image: 'https://content.osgnetworks.tv/shows/fishin-411-thumbnail.jpg' }) }) diff --git a/sites/www3.nhk.or.jp/www3.nhk.or.jp.config.js b/sites/www3.nhk.or.jp/www3.nhk.or.jp.config.js index 6f5fb38f..4a7f59f0 100644 --- a/sites/www3.nhk.or.jp/www3.nhk.or.jp.config.js +++ b/sites/www3.nhk.or.jp/www3.nhk.or.jp.config.js @@ -37,7 +37,7 @@ module.exports = { start: parseStart(item), stop: parseStop(item), description: item.description, - icon: parseIcon(item), + image: parseImage(item), sub_title: item.subtitle }) }) @@ -63,6 +63,6 @@ function parseStop(item) { return dayjs.unix(parseInt(item.endDate) / 1000) } -function parseIcon(item) { +function parseImage(item) { return 'https://www.nhk.or.jp' + item.thumbnail } diff --git a/sites/www3.nhk.or.jp/www3.nhk.or.jp.test.js b/sites/www3.nhk.or.jp/www3.nhk.or.jp.test.js index 820230f8..ffe55139 100644 --- a/sites/www3.nhk.or.jp/www3.nhk.or.jp.test.js +++ b/sites/www3.nhk.or.jp/www3.nhk.or.jp.test.js @@ -29,7 +29,8 @@ it('can parse response', () => { stop: dayjs(1682727000000), description: "NHK WORLD-JAPAN's flagship hourly news program delivers the latest world news, business and weather, with a focus on Japan and the rest of Asia.", - icon: 'https://www.nhk.or.jp/nhkworld/upld/thumbnails/en/tv/regular_program/340aed63308aafd1178172abf6325231_large.jpg', + image: + 'https://www.nhk.or.jp/nhkworld/upld/thumbnails/en/tv/regular_program/340aed63308aafd1178172abf6325231_large.jpg', sub_title: '' } ]) diff --git a/yarn.lock b/yarn.lock index 9513a2e6..e8cd5a6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1467,11 +1467,11 @@ brace-expansion@^2.0.1: balanced-match "^1.0.0" braces@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + version "3.0.3" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" browserslist@^4.21.9, "browserslist@>= 4.21.0": version "4.21.9" @@ -2137,10 +2137,10 @@ entities@^4.2.0, entities@^4.3.0, entities@^4.4.0: resolved "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz" integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== -epg-grabber@^0.36.1: - version "0.36.1" - resolved "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.36.1.tgz" - integrity sha512-i11ZtCjUWg8lNEq6K2IesSIBDhjPpcT2Mkge7249jK95bOfslvTKM6w+nt2DNamtdMcu512dVpcU9SphyjR4OA== +epg-grabber@^0.37.1: + version "0.37.1" + resolved "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.37.1.tgz" + integrity sha512-Q5gFLhrQGe+ou97Rs/VBRLgtYxSsnwzUEXs/V0cVmJhwpQedwMlG4VyEcc1TUDm53A+61T5fTtpmCsNUVb9N3g== dependencies: axios "^1.6.1" axios-cache-interceptor "^0.10.3" @@ -2461,10 +2461,10 @@ file-uri-to-path@1.0.0: resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" @@ -2502,9 +2502,9 @@ fn.name@1.x.x: integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== follow-redirects@^1.15.0: - version "1.15.0" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz" - integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== + version "1.15.6" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== foreground-child@^3.1.0: version "3.1.1" @@ -4661,9 +4661,9 @@ tabletojson@^2.0.7: got "^11.8.2" tar@^6.1.11: - version "6.2.0" - resolved "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz" - integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + version "6.2.1" + resolved "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0"