From 6dbe6e131c840de1386fdc9992f04493c60967cc Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Tue, 21 Nov 2023 11:40:40 +0300
Subject: [PATCH] Rename magentatv.de to web.magentatv.de
---
sites/magentatv.de/magentatv.de.channels.xml | 261 ------------------
.../web.magentatv.de.channels.xml | 261 ++++++++++++++++++
.../web.magentatv.de.config.js} | 127 ++++-----
.../web.magentatv.de.test.js} | 26 +-
4 files changed, 338 insertions(+), 337 deletions(-)
delete mode 100644 sites/magentatv.de/magentatv.de.channels.xml
create mode 100644 sites/web.magentatv.de/web.magentatv.de.channels.xml
rename sites/{magentatv.de/magentatv.de.config.js => web.magentatv.de/web.magentatv.de.config.js} (54%)
rename sites/{magentatv.de/magentatv.de.test.js => web.magentatv.de/web.magentatv.de.test.js} (74%)
diff --git a/sites/magentatv.de/magentatv.de.channels.xml b/sites/magentatv.de/magentatv.de.channels.xml
deleted file mode 100644
index 53a1479c..00000000
--- a/sites/magentatv.de/magentatv.de.channels.xml
+++ /dev/null
@@ -1,261 +0,0 @@
-
-
- 1-2-3.tv
- 13TH STREET
- SAT.1 Bayern
- SAT.1 RhlPf Hessen
- SAT.1 HH SH
- SAT.1 NDS Bremen
- 3sat
- ALEX Berlin
- allgäu.tv
- altenburg.tv
- Animal Planet
- ANIXE HD Serie
- ANIXE+
- ARD-alpha
- ARTE
-
- auto motor und sport
- Baby TV
- Baden TV
- Baden TV Süd
- BBC World
- Beate-Uhse.TV (Sky)
- beIN iZ
- beIN Movies Turk
- Bergblick
- Bibel TV
- BILD
- Blue Hustler
- BonGusto
- Boomerang
- BR Fernsehen Nord
- BR Fernsehen Süd
- Cartoon Network
- CEM TV
- CHANNEL21
- Classica (Sky)
- CNN International
- Comedy Central
- Nick/Comedy Central+1
- Crime+Investigation
- #dabeiTV
- Das Erste
- DELUXE MUSIC
- Deutsches Musik Fernsehen
- Discovery Channel
- Disney Channel
- DMAX
- DW
-
- ems TV
- eSPORTS1
- Euro D
- Euronews Deutsch
- Euronews Italiano
- Euronews Russki
- Eurosport 1
- Eurosport 2
- Eurostar TV
- Extreme Sports
- Fashion TV
- FC BAYERN.TV LIVE
- France 24 francais
- Franken Fernsehen
- Friesischer Rundfunk
- GEO Television
- Habertürk TV
- Hamburg 1
- HAUPTSTADT.TV
- Heimatkanal
- HGTV
- The HISTORY Channel
- hr-fernsehen
- HSE
- iTVN
- Jukebox
- Junior (Sky)
- Juwelo
- Kabel Eins
- Kabel Eins CLASSICS
- Kabel Eins Doku
- Kanal 7
- KiKA
- KinoweltTV
- K-TV
- LAUSITZWELLE
- L-TV
- Lust pur
- MagentaSport
- Marco Polo TV
- MDF.1 Fernsehen
- MDR-Fernsehen Sachsen
- MDR-Fernsehen Sachsen-Anhalt
- MDR-Fernsehen Thüringen
- More Than Sports TV
- MOTORVISION.TV
- MTV
- münchen.tv
- N24 Doku
- Kinomir
- National Geographic
- National Geographic Wild
- NDR Fernsehen Hamburg
- NDR Fernsehen Mecklenburg-Vorpommern
- NDR Fernsehen Niedersachsen
- NDR Fernsehen Schleswig-Holstein
- Nick Jr.
- Nicktoons (Sky)
- NIEDERBAYERN TV - DEG
- NIEDERBAYERN TV - LA
- NIEDERBAYERN TV - PA
- NITRO
- nrwision
- n-tv
- Oberpfalz TV
- OF-TV
- OK4
- OK54 Trier
- OK-TV Ludwigshafen
- OK:TV Mainz
- OK Weinstraße
- ONE
- OstWest
- Penthouse Passion
- phoenix
- Playboy Europe
- ProSieben
- ProSieben FUN
- ProSieben MAXX
- QVC
- Radio Bremen TV
- Rai 1
- Rai 2
- Rai 3
- rbb fernsehen Berlin
- rbb fernsehen Brandenburg
- Red Bull TV
- Rennsteig.TV
- RFH Regionalfernsehen Harz
- RFO
- Rhein-Main TV
- RNF
- Romance TV
- RTL Crime
- RTL
- RTL Hessen
- RTL Living
- RTL HH SH
- RTL HB NDS
- RTL Passion
- RTLup
- RTL NRW
- RTLZWEI
- RTR Planeta
- Chemnitz Fernsehen
- Dresden Fernsehen
- Leipzig Fernsehen
- salve.tv
- SAT.1
- SAT.1 emotions
- SAT.1 GOLD
- SAT.1 NRW
- ServusTV
- Shop LC
- Show Max
- Show Turk
- sixx
- SkyAtlantic
- Sky Cinema Action
- Sky Cinema Best of
- Sky Cinema Classics
- Sky Cinema Family
- Sky Cinema Fun
- Sky Cinema Mittelerde
- Sky Cinema Premieren
- Sky Cinema Premieren +24
- Sky Cinema Thriller
- Sky Comedy
- Sky Crime
- Sky Documentaries
- SkyKrimi
- Sky Nature
- Sky One
- Sky Sport 10
- Sky Sport 11
- Sky Sport 1
- Sky Sport 2
- Sky Sport 3
- Sky Sport 4
- Sky Sport 5
- Sky Sport 6
- Sky Sport 7
- Sky Sport 8
- Sky Sport 9
- Sky Sport Bundesliga 1
- Sky Sport Bundesliga 10
- Sky Sport Bundesliga 2
- Sky Sport Bundesliga 3
- Sky Sport Bundesliga 4
- Sky Sport Bundesliga 5
- Sky Sport Bundesliga 6
- Sky Sport Bundesliga 7
- Sky Sport Bundesliga 8
- Sky Sport Bundesliga 9
- Sky Sport F1
- Sky Sport News
- sonnenklar.TV
- SONY AXN
- SONY CHANNEL
- Spiegel Geschichte
- Spiegel TV Wissen
- SPORT1
- SPORT1+
- SPORTDIGITAL FUSSBALL
- SR Fernsehen
- Studio 47
- Super RTL
- SWR Fernsehen BW
- SWR Fernsehen RP
- SYFY
- tagesschau24
- TELE 5
- TeleBom/TeleDom
- TLC
- TOGGO plus
- TV8 Int
- TVA Ostbayern
- tv.berlin
- tv.ingolstadt
- TV Mainfranken
- TV Mittelrhein
- TV Oberfranken
- TV Polonia
- TV Westsachsen
- ÜLKE TV
- Universal TV
- VOX
- VOXup
- Warner TV Comedy
- Warner TV Film
- Warner TV Serie
- WDR Fernsehen Aachen
- WDR Fernsehen Bielefeld
- WDR Fernsehen Bonn
- WDR Fernsehen Dortmund
- WDR Fernsehen Duisburg
- WDR Fernsehen Düsseldorf
- WDR Fernsehen Essen
- WDR Fernsehen Köln
- WDR Fernsehen Münster
- WDR Fernsehen Siegen
- WDR Fernsehen Wuppertal
- WELT
- Welt der Wunder
- wetter.com TV
- WWTV
- ZDF
- ZDFinfo
- ZDFneo
-
diff --git a/sites/web.magentatv.de/web.magentatv.de.channels.xml b/sites/web.magentatv.de/web.magentatv.de.channels.xml
new file mode 100644
index 00000000..956c3fc3
--- /dev/null
+++ b/sites/web.magentatv.de/web.magentatv.de.channels.xml
@@ -0,0 +1,261 @@
+
+
+ 1-2-3.tv
+ 13TH STREET
+ SAT.1 Bayern
+ SAT.1 RhlPf Hessen
+ SAT.1 HH SH
+ SAT.1 NDS Bremen
+ 3sat
+ ALEX Berlin
+ allgäu.tv
+ altenburg.tv
+ Animal Planet
+ ANIXE HD Serie
+ ANIXE+
+ ARD-alpha
+ ARTE
+
+ auto motor und sport
+ Baby TV
+ Baden TV
+ Baden TV Süd
+ BBC World
+ Beate-Uhse.TV (Sky)
+ beIN iZ
+ beIN Movies Turk
+ Bergblick
+ Bibel TV
+ BILD
+ Blue Hustler
+ BonGusto
+ Boomerang
+ BR Fernsehen Nord
+ BR Fernsehen Süd
+ Cartoon Network
+ CEM TV
+ CHANNEL21
+ Classica (Sky)
+ CNN International
+ Comedy Central
+ Nick/Comedy Central+1
+ Crime+Investigation
+ #dabeiTV
+ Das Erste
+ DELUXE MUSIC
+ Deutsches Musik Fernsehen
+ Discovery Channel
+ Disney Channel
+ DMAX
+ DW
+
+ ems TV
+ eSPORTS1
+ Euro D
+ Euronews Deutsch
+ Euronews Italiano
+ Euronews Russki
+ Eurosport 1
+ Eurosport 2
+ Eurostar TV
+ Extreme Sports
+ Fashion TV
+ FC BAYERN.TV LIVE
+ France 24 francais
+ Franken Fernsehen
+ Friesischer Rundfunk
+ GEO Television
+ Habertürk TV
+ Hamburg 1
+ HAUPTSTADT.TV
+ Heimatkanal
+ HGTV
+ The HISTORY Channel
+ hr-fernsehen
+ HSE
+ iTVN
+ Jukebox
+ Junior (Sky)
+ Juwelo
+ Kabel Eins
+ Kabel Eins CLASSICS
+ Kabel Eins Doku
+ Kanal 7
+ KiKA
+ KinoweltTV
+ K-TV
+ LAUSITZWELLE
+ L-TV
+ Lust pur
+ MagentaSport
+ Marco Polo TV
+ MDF.1 Fernsehen
+ MDR-Fernsehen Sachsen
+ MDR-Fernsehen Sachsen-Anhalt
+ MDR-Fernsehen Thüringen
+ More Than Sports TV
+ MOTORVISION.TV
+ MTV
+ münchen.tv
+ N24 Doku
+ Kinomir
+ National Geographic
+ National Geographic Wild
+ NDR Fernsehen Hamburg
+ NDR Fernsehen Mecklenburg-Vorpommern
+ NDR Fernsehen Niedersachsen
+ NDR Fernsehen Schleswig-Holstein
+ Nick Jr.
+ Nicktoons (Sky)
+ NIEDERBAYERN TV - DEG
+ NIEDERBAYERN TV - LA
+ NIEDERBAYERN TV - PA
+ NITRO
+ nrwision
+ n-tv
+ Oberpfalz TV
+ OF-TV
+ OK4
+ OK54 Trier
+ OK-TV Ludwigshafen
+ OK:TV Mainz
+ OK Weinstraße
+ ONE
+ OstWest
+ Penthouse Passion
+ phoenix
+ Playboy Europe
+ ProSieben
+ ProSieben FUN
+ ProSieben MAXX
+ QVC
+ Radio Bremen TV
+ Rai 1
+ Rai 2
+ Rai 3
+ rbb fernsehen Berlin
+ rbb fernsehen Brandenburg
+ Red Bull TV
+ Rennsteig.TV
+ RFH Regionalfernsehen Harz
+ RFO
+ Rhein-Main TV
+ RNF
+ Romance TV
+ RTL Crime
+ RTL
+ RTL Hessen
+ RTL Living
+ RTL HH SH
+ RTL HB NDS
+ RTL Passion
+ RTLup
+ RTL NRW
+ RTLZWEI
+ RTR Planeta
+ Chemnitz Fernsehen
+ Dresden Fernsehen
+ Leipzig Fernsehen
+ salve.tv
+ SAT.1
+ SAT.1 emotions
+ SAT.1 GOLD
+ SAT.1 NRW
+ ServusTV
+ Shop LC
+ Show Max
+ Show Turk
+ sixx
+ SkyAtlantic
+ Sky Cinema Action
+ Sky Cinema Best of
+ Sky Cinema Classics
+ Sky Cinema Family
+ Sky Cinema Fun
+ Sky Cinema Mittelerde
+ Sky Cinema Premieren
+ Sky Cinema Premieren +24
+ Sky Cinema Thriller
+ Sky Comedy
+ Sky Crime
+ Sky Documentaries
+ SkyKrimi
+ Sky Nature
+ Sky One
+ Sky Sport 10
+ Sky Sport 11
+ Sky Sport 1
+ Sky Sport 2
+ Sky Sport 3
+ Sky Sport 4
+ Sky Sport 5
+ Sky Sport 6
+ Sky Sport 7
+ Sky Sport 8
+ Sky Sport 9
+ Sky Sport Bundesliga 1
+ Sky Sport Bundesliga 10
+ Sky Sport Bundesliga 2
+ Sky Sport Bundesliga 3
+ Sky Sport Bundesliga 4
+ Sky Sport Bundesliga 5
+ Sky Sport Bundesliga 6
+ Sky Sport Bundesliga 7
+ Sky Sport Bundesliga 8
+ Sky Sport Bundesliga 9
+ Sky Sport F1
+ Sky Sport News
+ sonnenklar.TV
+ SONY AXN
+ SONY CHANNEL
+ Spiegel Geschichte
+ Spiegel TV Wissen
+ SPORT1
+ SPORT1+
+ SPORTDIGITAL FUSSBALL
+ SR Fernsehen
+ Studio 47
+ Super RTL
+ SWR Fernsehen BW
+ SWR Fernsehen RP
+ SYFY
+ tagesschau24
+ TELE 5
+ TeleBom/TeleDom
+ TLC
+ TOGGO plus
+ TV8 Int
+ TVA Ostbayern
+ tv.berlin
+ tv.ingolstadt
+ TV Mainfranken
+ TV Mittelrhein
+ TV Oberfranken
+ TV Polonia
+ TV Westsachsen
+ ÜLKE TV
+ Universal TV
+ VOX
+ VOXup
+ Warner TV Comedy
+ Warner TV Film
+ Warner TV Serie
+ WDR Fernsehen Aachen
+ WDR Fernsehen Bielefeld
+ WDR Fernsehen Bonn
+ WDR Fernsehen Dortmund
+ WDR Fernsehen Duisburg
+ WDR Fernsehen Düsseldorf
+ WDR Fernsehen Essen
+ WDR Fernsehen Köln
+ WDR Fernsehen Münster
+ WDR Fernsehen Siegen
+ WDR Fernsehen Wuppertal
+ WELT
+ Welt der Wunder
+ wetter.com TV
+ WWTV
+ ZDF
+ ZDFinfo
+ ZDFneo
+
diff --git a/sites/magentatv.de/magentatv.de.config.js b/sites/web.magentatv.de/web.magentatv.de.config.js
similarity index 54%
rename from sites/magentatv.de/magentatv.de.config.js
rename to sites/web.magentatv.de/web.magentatv.de.config.js
index f448a65f..f8b7eb84 100644
--- a/sites/magentatv.de/magentatv.de.config.js
+++ b/sites/web.magentatv.de/web.magentatv.de.config.js
@@ -2,27 +2,26 @@ const axios = require('axios')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
-const fetch = require('node-fetch');
+const fetch = require('node-fetch')
-
-let X_CSRFTOKEN;
-let COOKIE;
-const cookiesToExtract = ['JSESSIONID', 'CSESSIONID', 'CSRFSESSION'];
-const extractedCookies = {};
+let X_CSRFTOKEN
+let COOKIE
+const cookiesToExtract = ['JSESSIONID', 'CSESSIONID', 'CSRFSESSION']
+const extractedCookies = {}
dayjs.extend(utc)
dayjs.extend(customParseFormat)
module.exports = {
- site: 'magentatv.de',
+ site: 'web.magentatv.de',
days: 2,
url: 'https://api.prod.sngtv.magentatv.de/EPG/JSON/PlayBillList',
request: {
method: 'POST',
- headers: function () {
- return setHeaders();
+ headers: function () {
+ return setHeaders()
},
-
+
data({ channel, date }) {
return {
count: -1,
@@ -98,7 +97,6 @@ module.exports = {
}
}
-
function parseCategory(item) {
return item.genres
? item.genres
@@ -129,63 +127,66 @@ function parseItems(content) {
return data.playbilllist
}
-// Function to try to fetch COOKIE and X_CSRFTOKEN
+// Function to try to fetch COOKIE and X_CSRFTOKEN
function fetchCookieAndToken() {
- return fetch("https://api.prod.sngtv.magentatv.de/EPG/JSON/Authenticate?SID=firstup&T=Windows_chrome_118", {
- "headers": {
- "accept": "application/json, text/javascript, */*; q=0.01",
- "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "Referer": "https://api.prod.sngtv.magentatv.de/EPG/",
- "Referrer-Policy": "strict-origin-when-cross-origin"
- },
- "body": "{\"terminalid\":\"00:00:00:00:00:00\",\"mac\":\"00:00:00:00:00:00\",\"terminaltype\":\"WEBTV\",\"utcEnable\":1,\"timezone\":\"Etc/GMT0\",\"userType\":3,\"terminalvendor\":\"Unknown\"}",
- "method": "POST" })
- .then(response => {
- // Check if the response status is OK (2xx)
- if (!response.ok) {
- throw new Error('HTTP request failed');
+ return fetch(
+ 'https://api.prod.sngtv.magentatv.de/EPG/JSON/Authenticate?SID=firstup&T=Windows_chrome_118',
+ {
+ headers: {
+ accept: 'application/json, text/javascript, */*; q=0.01',
+ 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
+ 'sec-fetch-dest': 'empty',
+ 'sec-fetch-mode': 'cors',
+ 'sec-fetch-site': 'same-origin',
+ 'x-requested-with': 'XMLHttpRequest',
+ Referer: 'https://api.prod.sngtv.magentatv.de/EPG/',
+ 'Referrer-Policy': 'strict-origin-when-cross-origin'
+ },
+ body: '{"terminalid":"00:00:00:00:00:00","mac":"00:00:00:00:00:00","terminaltype":"WEBTV","utcEnable":1,"timezone":"Etc/GMT0","userType":3,"terminalvendor":"Unknown"}',
+ method: 'POST'
}
-
- // Extract the set-cookie header
- const setCookieHeader = response.headers.raw()['set-cookie'];
-
- // Extract the cookies specified in cookiesToExtract
- cookiesToExtract.forEach(cookieName => {
- const regex = new RegExp(`${cookieName}=(.+?)(;|$)`);
- const match = setCookieHeader.find(header => regex.test(header));
-
- if (match) {
- const cookieValue = regex.exec(match)[1];
- extractedCookies[cookieName] = cookieValue;
+ )
+ .then(response => {
+ // Check if the response status is OK (2xx)
+ if (!response.ok) {
+ throw new Error('HTTP request failed')
}
- });
- return response.json();
- })
- .then(data => {
- if (data.csrfToken) {
- X_CSRFTOKEN = data.csrfToken
- COOKIE = `JSESSIONID=${extractedCookies.JSESSIONID}; CSESSIONID=${extractedCookies.CSESSIONID}; CSRFSESSION=${extractedCookies.CSRFSESSION}; JSESSIONID=${extractedCookies.JSESSIONID};`
- } else {
- console.log('csrfToken not found in the response.');
- }
- })
- .catch(error => {
- console.error(error);
- });
+ // Extract the set-cookie header
+ const setCookieHeader = response.headers.raw()['set-cookie']
+
+ // Extract the cookies specified in cookiesToExtract
+ cookiesToExtract.forEach(cookieName => {
+ const regex = new RegExp(`${cookieName}=(.+?)(;|$)`)
+ const match = setCookieHeader.find(header => regex.test(header))
+
+ if (match) {
+ const cookieValue = regex.exec(match)[1]
+ extractedCookies[cookieName] = cookieValue
+ }
+ })
+
+ return response.json()
+ })
+ .then(data => {
+ if (data.csrfToken) {
+ X_CSRFTOKEN = data.csrfToken
+ COOKIE = `JSESSIONID=${extractedCookies.JSESSIONID}; CSESSIONID=${extractedCookies.CSESSIONID}; CSRFSESSION=${extractedCookies.CSRFSESSION}; JSESSIONID=${extractedCookies.JSESSIONID};`
+ } else {
+ console.log('csrfToken not found in the response.')
+ }
+ })
+ .catch(error => {
+ console.error(error)
+ })
}
function setHeaders() {
- return fetchCookieAndToken()
- .then(() => {
- return {
- X_CSRFTOKEN: X_CSRFTOKEN,
- 'Content-Type': 'application/json',
- Cookie: COOKIE,
- };
- });
+ return fetchCookieAndToken().then(() => {
+ return {
+ X_CSRFTOKEN: X_CSRFTOKEN,
+ 'Content-Type': 'application/json',
+ Cookie: COOKIE
+ }
+ })
}
diff --git a/sites/magentatv.de/magentatv.de.test.js b/sites/web.magentatv.de/web.magentatv.de.test.js
similarity index 74%
rename from sites/magentatv.de/magentatv.de.test.js
rename to sites/web.magentatv.de/web.magentatv.de.test.js
index 06e4d612..4a41c58f 100644
--- a/sites/magentatv.de/magentatv.de.test.js
+++ b/sites/web.magentatv.de/web.magentatv.de.test.js
@@ -1,7 +1,7 @@
-// npm run channels:parse -- --config=./sites/magentatv.de/magentatv.de.config.js --output=./sites/magentatv.de/magentatv.de.channels.xml
-// npm run grab -- --site=magentatv.de
+// npm run channels:parse -- --config=./sites/web.magentatv.de/web.magentatv.de.config.js --output=./sites/web.magentatv.de/web.magentatv.de.channels.xml
+// npm run grab -- --site=web.magentatv.de
-const { parser, url, request } = require('./magentatv.de.config.js')
+const { parser, url, request } = require('./web.magentatv.de.config.js')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
@@ -23,17 +23,17 @@ it('can generate valid request method', () => {
})
it('can generate valid request headers', async () => {
- const headers = await request.headers();
+ const headers = await request.headers()
- expect(headers).toHaveProperty('Cookie');
- expect(headers).toHaveProperty('X_CSRFTOKEN');
-
- expect(headers.Cookie).toMatch(/JSESSIONID=[\dA-F]+;/i);
- expect(headers.Cookie).toMatch(/CSESSIONID=[\dA-F]+;/i);
- expect(headers.Cookie).toMatch(/CSRFSESSION=[\dA-F]+;/i);
- expect(headers.Cookie).toMatch(/JSESSIONID=[\dA-F]+;/i);
- expect(headers.X_CSRFTOKEN).toMatch(/[\dA-F]/i);
-});
+ expect(headers).toHaveProperty('Cookie')
+ expect(headers).toHaveProperty('X_CSRFTOKEN')
+
+ expect(headers.Cookie).toMatch(/JSESSIONID=[\dA-F]+;/i)
+ expect(headers.Cookie).toMatch(/CSESSIONID=[\dA-F]+;/i)
+ expect(headers.Cookie).toMatch(/CSRFSESSION=[\dA-F]+;/i)
+ expect(headers.Cookie).toMatch(/JSESSIONID=[\dA-F]+;/i)
+ expect(headers.X_CSRFTOKEN).toMatch(/[\dA-F]/i)
+})
it('can generate valid request data', () => {
expect(request.data({ channel, date })).toMatchObject({