diff --git a/sites/beinsports.com/beinsports.com.config.js b/sites/beinsports.com/beinsports.com.config.js index f6cc721b..3c9066d1 100644 --- a/sites/beinsports.com/beinsports.com.config.js +++ b/sites/beinsports.com/beinsports.com.config.js @@ -19,9 +19,11 @@ module.exports = { } }, url: function ({ date, channel }) { - return `https://www.beinsports.com/api/opta/tv-event?&startBefore=${date.add(1, 'd').format( - "YYYY-MM-DDTHH:mm:ss.SSS")}Z&endAfter=${date.format( - "YYYY-MM-DDTHH:mm:ss.SSS")}Z&channelIds=${channel.site_id}` + return `https://www.beinsports.com/api/opta/tv-event?&startBefore=${date + .add(1, 'd') + .format('YYYY-MM-DDTHH:mm:ss.SSS')}Z&endAfter=${date.format( + 'YYYY-MM-DDTHH:mm:ss.SSS' + )}Z&channelIds=${channel.site_id}` }, parser: function ({ content }) { let programs = [] @@ -39,6 +41,20 @@ module.exports = { }) } return programs + }, + async channels({ region, lang }) { + const data = await axios + .get(`https://www.beinsports.com/api/opta/tv-channel?region=${lang}-${region}`, this.request) + .then(r => r.data) + .catch(console.log) + + return data.rows.map(item => { + return { + lang, + site_id: item.id, + name: item.name + } + }) } } diff --git a/sites/beinsports.com/beinsports.com.test.js b/sites/beinsports.com/beinsports.com.test.js index 66b0b8d9..66c9768a 100644 --- a/sites/beinsports.com/beinsports.com.test.js +++ b/sites/beinsports.com/beinsports.com.test.js @@ -1,5 +1,11 @@ -// npm run channels:parse -- --config=./sites/beinsports.com/beinsports.com.config.js --output=./sites/beinsports.com/beinsports.com_qa-ar.channels.xml --set=lang:ar --set=region:ar -// npm run grab -- --site=beinsports.com +// npm run channels:parse -- --config=./sites/beinsports.com/beinsports.com.config.js --output=./sites/beinsports.com/beinsports.com_mena-ar.channels.xml --set=region:mena --set=lang:ar +// npm run channels:parse -- --config=./sites/beinsports.com/beinsports.com.config.js --output=./sites/beinsports.com/beinsports.com_mena-en.channels.xml --set=region:mena --set=lang:en +// npm run channels:parse -- --config=./sites/beinsports.com/beinsports.com.config.js --output=./sites/beinsports.com/beinsports.com_fr-fr.channels.xml --set=region:fr --set=lang:fr +// npm run channels:parse -- --config=./sites/beinsports.com/beinsports.com.config.js --output=./sites/beinsports.com/beinsports.com_my-en.channels.xml --set=region:my --set=lang:en +// npm run channels:parse -- --config=./sites/beinsports.com/beinsports.com.config.js --output=./sites/beinsports.com/beinsports.com_us-en.channels.xml --set=region:us --set=lang:en +// npm run channels:parse -- --config=./sites/beinsports.com/beinsports.com.config.js --output=./sites/beinsports.com/beinsports.com_us-es.channels.xml --set=region:us --set=lang:es +// npm run channels:parse -- --config=./sites/beinsports.com/beinsports.com.config.js --output=./sites/beinsports.com/beinsports.com_au-en.channels.xml --set=region:au --set=lang:en +// npm run channels:parse -- --config=./sites/beinsports.com/beinsports.com.config.js --output=./sites/beinsports.com/beinsports.com_nz-en.channels.xml --set=region:nz --set=lang:en // npm run grab -- --site=beinsports.com const { parser, url } = require('./beinsports.com.config.js') @@ -21,8 +27,8 @@ it('can generate valid url', () => { ) }) -const content ='{"count":1,"rows":[{"data":{"eventId":"2028126","eventDate":"2023-10-21T10:30:00","utcEventDate":"2023-10-20T23:30:00","duration":"90","programId":"106230","programTypeId":"5","title":"ATP 500"},"duration":5400000,"title":"Tokyo Day 5 QF 2","startDate":"2023-10-20T23:30:00.000Z","endDate":"2023-10-21T01:00:00.000Z","description":"Exclusive coverage of the 2023 ATP Tour on beIN SPORTS","channelId":"164C0EDA-EBCE-4AA6-9DDA-D603E0948B9F"}]}' - +const content = + '{"count":1,"rows":[{"data":{"eventId":"2028126","eventDate":"2023-10-21T10:30:00","utcEventDate":"2023-10-20T23:30:00","duration":"90","programId":"106230","programTypeId":"5","title":"ATP 500"},"duration":5400000,"title":"Tokyo Day 5 QF 2","startDate":"2023-10-20T23:30:00.000Z","endDate":"2023-10-21T01:00:00.000Z","description":"Exclusive coverage of the 2023 ATP Tour on beIN SPORTS","channelId":"164C0EDA-EBCE-4AA6-9DDA-D603E0948B9F"}]}' it('can parse response', () => { const result = parser({ content, channel, date }).map(p => { @@ -39,8 +45,8 @@ it('can parse response', () => { description: 'Exclusive coverage of the 2023 ATP Tour on beIN SPORTS' } ]) -}) - +}) + it('can handle empty guide', () => { const result = parser({ content: '[]' diff --git a/sites/beinsports.com/beinsports.com_au-en.channels.xml b/sites/beinsports.com/beinsports.com_au-en.channels.xml new file mode 100644 index 00000000..f3c576f8 --- /dev/null +++ b/sites/beinsports.com/beinsports.com_au-en.channels.xml @@ -0,0 +1,6 @@ + + + beIN SPORTS 2 + beIN SPORTS 1 + beIN SPORTS 3 + diff --git a/sites/beinsports.com/beinsports.com_au.channels.xml b/sites/beinsports.com/beinsports.com_au.channels.xml deleted file mode 100644 index 7ad2b6d1..00000000 --- a/sites/beinsports.com/beinsports.com_au.channels.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - BeIn Sports 1 Australia - BeIn Sports 2 Australia - BeIn Sports 3 Australia - diff --git a/sites/beinsports.com/beinsports.com_fr-fr.channels.xml b/sites/beinsports.com/beinsports.com_fr-fr.channels.xml new file mode 100644 index 00000000..0e3e6aed --- /dev/null +++ b/sites/beinsports.com/beinsports.com_fr-fr.channels.xml @@ -0,0 +1,13 @@ + + + beIN SPORTS 1 + beIN SPORTS 2 + beIN SPORTS 3 + beIN SPORTS MAX 4 + beIN SPORTS MAX 5 + beIN SPORTS MAX 6 + beIN SPORTS MAX 7 + beIN SPORTS MAX 8 + beIN SPORTS MAX 9 + beIN SPORTS MAX 10 + diff --git a/sites/beinsports.com/beinsports.com_fr.channels.xml b/sites/beinsports.com/beinsports.com_fr.channels.xml deleted file mode 100644 index b477a2dd..00000000 --- a/sites/beinsports.com/beinsports.com_fr.channels.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - BeIN Sports 1 HD France - BeIN Sports 2 HD France - BeIN Sports 3 France - BeIN Sports Max 4 France - BeIN Sports Max 5 France - BeIN Sports Max 6 France - BeIN Sports Max 7 France - BeIN Sports Max 8 France - BeIN Sports Max 9 France - BeIN Sports Max 10 France - diff --git a/sites/beinsports.com/beinsports.com_mena-ar.channels.xml b/sites/beinsports.com/beinsports.com_mena-ar.channels.xml new file mode 100644 index 00000000..7d5c151d --- /dev/null +++ b/sites/beinsports.com/beinsports.com_mena-ar.channels.xml @@ -0,0 +1,33 @@ + + + + + + + + + + beIN 4K + beIN SPORTS + beIN SPORTS 2 + beIN SPORTS 3 + beIN SPORTS 4 + beIN SPORTS 5 + beIN SPORTS 6 + beIN SPORTS 7 + beIN SPORTS 8 + beIN SPORTS AFC + beIN SPORTS AFC 1 + beIN SPORTS AFC 2 + beIN SPORTS AFC 3 + beIN SPORTS MAX 1 + beIN SPORTS MAX 2 + beIN SPORTS MAX 3 + beIN SPORTS MAX 4 + beIN SPORTS MAX 5 + beIN SPORTS MAX 6 + beIN SPORTS NBA + beIN SPORTS NEWS + beIN SPORTS XTRA 1 + beIN SPORTS XTRA 2 + diff --git a/sites/beinsports.com/beinsports.com_mena-en.channels.xml b/sites/beinsports.com/beinsports.com_mena-en.channels.xml new file mode 100644 index 00000000..05ac99d4 --- /dev/null +++ b/sites/beinsports.com/beinsports.com_mena-en.channels.xml @@ -0,0 +1,33 @@ + + + + + + + + + beIN 4K + beIN SPORTS + beIN SPORTS 1 + beIN SPORTS 2 + beIN SPORTS 3 + beIN SPORTS 4 + beIN SPORTS 5 + beIN SPORTS 6 + beIN SPORTS 7 + beIN SPORTS 8 + beIN SPORTS AFC + beIN SPORTS AFC 1 + beIN SPORTS AFC 2 + beIN SPORTS AFC 3 + beIN SPORTS MAX 1 + beIN SPORTS MAX 2 + beIN SPORTS MAX 3 + beIN SPORTS MAX 4 + beIN SPORTS MAX 5 + beIN SPORTS MAX 6 + beIN SPORTS NBA + beIN SPORTS NEWS + beIN SPORTS XTRA 1 + beIN SPORTS XTRA 2 + diff --git a/sites/beinsports.com/beinsports.com_my-en.channels.xml b/sites/beinsports.com/beinsports.com_my-en.channels.xml new file mode 100644 index 00000000..c71d3bfe --- /dev/null +++ b/sites/beinsports.com/beinsports.com_my-en.channels.xml @@ -0,0 +1,6 @@ + + + + beIN SPORTS + diff --git a/sites/beinsports.com/beinsports.com_my.channels.xml b/sites/beinsports.com/beinsports.com_my.channels.xml deleted file mode 100644 index a39915f1..00000000 --- a/sites/beinsports.com/beinsports.com_my.channels.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - BeIN Sports 1 - - - diff --git a/sites/beinsports.com/beinsports.com_nz-en.channels.xml b/sites/beinsports.com/beinsports.com_nz-en.channels.xml new file mode 100644 index 00000000..f6b75159 --- /dev/null +++ b/sites/beinsports.com/beinsports.com_nz-en.channels.xml @@ -0,0 +1,5 @@ + + + + diff --git a/sites/beinsports.com/beinsports.com_us-en.channels.xml b/sites/beinsports.com/beinsports.com_us-en.channels.xml index ca00d229..26cd7886 100644 --- a/sites/beinsports.com/beinsports.com_us-en.channels.xml +++ b/sites/beinsports.com/beinsports.com_us-en.channels.xml @@ -1,13 +1,16 @@ - BeIN Sports USA - BeIN Sports Español - BeIN Sports Xtra USA - BeIN SPORTS XTRA ñ - BeIN Sports 3 USA - BeIN Sports 4 USA - BeIN Sports 5 USA - BeIN Sports 6 USA - BeIN Sports 7 USA - BeIN Sports 8 USA + + beIN SPORTS 3 + beIN SPORTS 4 + beIN SPORTS 5 + beIN SPORTS 6 + beIN SPORTS 7 + beIN SPORTS 8 + beIN SPORTS Español + beIN SPORTS + beIN SPORTS XTRA + beIN SPORTS XTRA ñ diff --git a/sites/beinsports.com/beinsports.com_us-es.channels.xml b/sites/beinsports.com/beinsports.com_us-es.channels.xml index 1b6d52a6..3cb62c5b 100644 --- a/sites/beinsports.com/beinsports.com_us-es.channels.xml +++ b/sites/beinsports.com/beinsports.com_us-es.channels.xml @@ -1,13 +1,16 @@ - BeIN Sports USA - BeIN Sports Español - BeIN Sports Xtra USA - BeIN SPORTS XTRA ñ - BeIN Sports 3 USA - BeIN Sports 4 USA - BeIN Sports 5 USA - BeIN Sports 6 USA - BeIN Sports 7 USA - BeIN Sports 8 USA + + beIN SPORTS 3 + beIN SPORTS 4 + beIN SPORTS 5 + beIN SPORTS 6 + beIN SPORTS 7 + beIN SPORTS 8 + beIN SPORTS Español + beIN SPORTS + beIN SPORTS XTRA + beIN SPORTS XTRA ñ