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 ñ