diff --git a/sites/canalplus.com/canalplus.com.config.js b/sites/canalplus.com/canalplus.com.config.js index 28623677..147a6bf5 100644 --- a/sites/canalplus.com/canalplus.com.config.js +++ b/sites/canalplus.com/canalplus.com.config.js @@ -4,28 +4,29 @@ const utc = require('dayjs/plugin/utc') dayjs.extend(utc) +const globalHeaders = { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8', + 'Accept-Language': 'fr-FR,fr;q=0.6', + 'Accept-Encoding': 'gzip, deflate, br', + 'Pragma': 'no-cache', + 'Priority': 'u=0, i', + 'Sec-CH-UA': '"Not:A-Brand";v="99", "Brave";v="145", "Chromium";v="145"', + 'sec-ch-ua-mobile': '?0', + 'sec-ch-ua-platform': '"Windows"', + 'sec-fetch-dest': 'document', + 'sec-fetch-mode': 'navigate', + 'sec-fetch-site': 'none', + 'sec-fetch-user': '?1', + 'sec-gpc': '1', + 'upgrade-insecure-requests': '1' +} + let canalToken = null module.exports = { site: 'canalplus.com', days: 2, - headers: { - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36', - 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8', - 'Accept-Language': 'fr-FR,fr;q=0.6', - 'Accept-Encoding': 'gzip, deflate, br', - 'Pragma': 'no-cache', - 'Priority': 'u=0, i', - 'Sec-CH-UA': '"Not:A-Brand";v="99", "Brave";v="145", "Chromium";v="145"', - 'sec-ch-ua-mobile': '?0', - 'sec-ch-ua-platform': '"Windows"', - 'sec-fetch-dest': 'document', - 'sec-fetch-mode': 'navigate', - 'sec-fetch-site': 'none', - 'sec-fetch-user': '?1', - 'sec-gpc': '1', - 'upgrade-insecure-requests': '1' - }, url: async function ({ channel, date }) { if(canalToken === null) canalToken = await parseToken() @@ -35,6 +36,11 @@ module.exports = { return `https://hodor.canalplus.pro/api/v2/${path}/channels/${canalToken}/${site_id}/broadcasts/day/${diff}` }, + request:{ + headers() { + return globalHeaders + } + }, async parser({ content }) { let programs = [] const items = parseItems(content) @@ -90,6 +96,7 @@ module.exports = { ht: 'cpant/ht', mf: 'cpant/mf', mg: 'cpafr/mg', + mg_alt: 'cpmdg', ml: 'cpafr/ml', mq: 'cpant/mq', mr: 'cpafr/mr', @@ -99,7 +106,6 @@ module.exports = { pf: 'cppyf/pf', pl: 'cppol', re: 'cpreu/re', - re_mg: 'cpmdg', rw: 'cpafr/rw', sl: 'cpafr/sl', sn: 'cpafr/sn', @@ -143,28 +149,12 @@ async function parseToken(country) { const tokenData = await axios.get( `https://hodor.canalplus.pro/api/v2/${path}/authenticate.json/webapp/6.0?experiments=beta-test-one-tv-guide:control`, { - headers: { - 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8', - 'Accept-Encoding': 'gzip, deflate, br, zstd', - 'Accept-Language': 'fr-FR,fr;q=0.6', - 'Cache-Control': 'no-cache', - 'Pragma': 'no-cache', - 'Priority': 'u=0, i', - 'Sec-CH-UA': '"Not:A-Brand";v="99", "Brave";v="145", "Chromium";v="145"', - 'Sec-CH-UA-Mobile': '?0', - 'Sec-CH-UA-Platform': '"Windows"', - 'Sec-Fetch-Dest': 'document', - 'Sec-Fetch-Mode': 'navigate', - 'Sec-Fetch-Site': 'none', - 'Sec-Fetch-User': '?1', - 'Sec-GPC': '1', - 'Upgrade-Insecure-Requests': '1', - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36' - } - }) + headers: globalHeaders, + timeout: 5000 + }).then(r => r.data).catch(console.error) - canalToken = tokenData.data.token - return tokenData.data.token + canalToken = tokenData.token + return tokenData.token } function parseStart(item) { @@ -189,7 +179,7 @@ async function loadProgramDetails(item) { if (!item.onClick || !item.onClick.URLPage) return {} return await axios - .get(item.onClick.URLPage) + .get(item.onClick.URLPage, { headers: globalHeaders }) .then(r => r.data) .catch(console.error) } diff --git a/sites/canalplus.com/canalplus.com.test.js b/sites/canalplus.com/canalplus.com.test.js index 43c2fb0b..9dc0bd53 100644 --- a/sites/canalplus.com/canalplus.com.test.js +++ b/sites/canalplus.com/canalplus.com.test.js @@ -16,9 +16,9 @@ const channel = { it('can generate valid url for today', done => { axios.get.mockImplementation(url => { - if (url === 'https://www.canalplus.com/bi/programme-tv/') { + if (url.includes('authenticate.json')) { return Promise.resolve({ - data: fs.readFileSync(path.resolve(__dirname, '__data__/programme-tv.html')) + data: { token: 'f000c6f4ebf44647682b3a0fa66d7d99' } }) } else { return Promise.resolve({ data: '' }) @@ -38,9 +38,9 @@ it('can generate valid url for today', done => { it('can generate valid url for tomorrow', done => { axios.get.mockImplementation(url => { - if (url === 'https://www.canalplus.com/bi/programme-tv/') { + if (url.includes('authenticate.json')) { return Promise.resolve({ - data: fs.readFileSync(path.resolve(__dirname, '__data__/programme-tv.html')) + data: { token: 'f000c6f4ebf44647682b3a0fa66d7d99' } }) } else { return Promise.resolve({ data: '' }) diff --git a/sites/canalplus.com/canalplus.com_mg_alt.channels.xml b/sites/canalplus.com/canalplus.com_mg_alt.channels.xml new file mode 100644 index 00000000..f9ecf511 --- /dev/null +++ b/sites/canalplus.com/canalplus.com_mg_alt.channels.xml @@ -0,0 +1,229 @@ + + + MBC 1 + 13EME RUE + MBC 2 + ACTION + ANTENNE REUNION + MBC 3 + ARTE France + BBC NEWS + W-SPORT + MBC 4 + CANAL J + MBC 5 + MBC 11 + CANAL+ CINEMA(S) + MBC HD + PUNCH TV + CANAL+ + SPORT EN FRANCE + CANAL+ SPORT HD + CNN + CINE+ FESTIVAL + CINE+ EMOTION + CINE+ FAMILY + CINE+ FRISSON + OCS HD + EUROPE 1 TV + COMEDIE+ + E! ENTERTAINMENT + EQUIDIA + SS EPL + SS LA LIGA + SS FOOTBALL HD + EUROSPORT 1 HD + EUROSPORT 2 + SS FOOTBALL PLUS HD + AL JAZEERA ENG + FRANCE 3 + FRANCE 5 + BET (ENG) + CNEWS + TELEMUNDO DSTV + INFOSPORT+ + UNIVERSAL + MNET MOVIES 3 + MNET MOVIES 4 + LCI + LCP ASSEMBLEE NATIONALE + L'EQUIPE + M6 HD + DISCOVERY CHANNEL DSTV + ZEE WORLD DSTV + NICKELODEON DSTV + RFM TV + NICKELODEON JR (DSTV) + MEZZO + BRAVO + MTV France + AFR MAGIC EPIC + TFX + AFR MAGIC SHOW DSTV + GASYSPORT TV + PARIS PREMIERE + BEIN SPORTS MAX 6 + PLANETE+ + PLANETE+ AVENTURE + BEIN SPORTS MAX 7 + BEIN SPORTS MAX 8 + RTL9 + SYFY + SEASONS + SERIE CLUB + BEIN SPORTS MAX 9 + BEIN SPORTS MAX 10 + CANAL+ FAMILY + CANAL+ POP + CANAL+ MAGIC + MANGAS + PASSION BOLLYWOOD + REUNION 1ERE + TVM 2 + MALAGASY TV + KULTURA TV + REAL TV + MADI TV + TEVA + TF1 + T18 + MIEUX + TMC + CANAL+ CAN HD + EUROPE 2 POP TV + ACTIVATION NETFLIX + TRACE URBAN + SS WWE HD + TV BREIZH + TV5 MONDE (Afrique) + NATIONAL GEOGRAPHIC ENG + TV5 MONDE FR + STUDIO UNIVERSAL + XXL + FRANCE 24 + BEIN SPORTS 1 HD + ZEE CINEMA HD + ZING + ZEE TV + CANAL+ SPORT 2 HD + PIWI+ + GAME ONE + USHUAÏA TV + W9 + PLANETE+ CRIME + GULLI + MTV HITS + TELETOON+ + CANAL+ SPORT 3 HD + KANALAUSTRAL.TV + DORCEL HD + HISTOIRE + CANAL EVENEMENT INDO + AFRICA 24 + DISCOVERY CHANNEL + FRANCE 2 + TVMalgache + ORTComores + FRANCE 4 + TELE KREOL + MAYOTTE 1ERE + STARPLUS + TRACE AFRICA + CSTAR + COLORS + NICKELODEON + BEIN SPORTS 2 HD + CANAL+ BOX OFFICE + KTO + IQRAA + PENTHOUSE BLACK + STARGOLD + VOIR+ OCEAN INDIEN + PARAMOUNT NETWORK + HUSTLER + INFOSPORT+ AFR + CGTN-FRANCAIS + CANAL+ SERIES + CINE+ CLASSIC + TV PLUS + KOLO TV + VIVA + MTV India + MBC SAT + BEIN SPORTS 3 HD + ENGLISH CLUB TV + CANAL+ SPORT 4 + CANAL+ SPORT 5 HD + CANAL+ KIDS HD + RECORD + GOLF+ HD + A+ + NOLLYWOOD TV france + RMC LIFE + CARTOON NETWORK + BOOMERANG + CANAL+ SPORT 360 HD + CANAL+ FOOT + NOVELAS TV + BEIN SPORTS MAX 4 + BEIN SPORTS MAX 5 + SONY MAX + AUTOMOTO + TREK + PRIVATE + TF1 SERIES FILMS + 6TER + CANAL+ SPORT 1 HD + TEST DROM + TEST + C+ ACTION CENTRE + MUSEUM TV + MBS + DREAMIN + WARNER TV + WARNER TV NEXT + FRANCE INFO: + CUISINES + RTA + OLYMPIA TV + CANAL+ PREMIER LEAGUE + EVENEMENT 4K + NOVEGASY + TRACE VANILLA + LUDIKIDS OI + ZEE THIRAI + VIXEN + NICKELODEON JR + UTSAV BHARAT + NATHAN+ + BFM TV + BFM BUSINESS + RMC STORY + KWEZI + CANAL+ DOCS + CHEVAL TV + MEZZO LIVE + RMC DECOUVERTE + CARTOONITO + TLC + DISCOVERY INVESTIGATION + CANAL+LIVE 1 + CANAL+LIVE 2 + CANAL+LIVE 3 + CANAL+LIVE 4 + CANAL+LIVE 5 + CANAL+LIVE 6 + CANAL+LIVE 7 + CANAL+LIVE 8 + CANAL+LIVE 9 + CANAL+LIVE 10 + CANAL+LIVE 11 + CANAL+LIVE 12 + CANAL+LIVE 13 + CANAL+LIVE 14 + CANAL+LIVE 15 + CANAL+LIVE 16 + CANAL+LIVE 17 + CANAL+LIVE 18 + TCM CINEMA + diff --git a/sites/canalplus.com/canalplus.com_re_mg.channels.xml b/sites/canalplus.com/canalplus.com_re_mg.channels.xml deleted file mode 100644 index e76408c2..00000000 --- a/sites/canalplus.com/canalplus.com_re_mg.channels.xml +++ /dev/null @@ -1,229 +0,0 @@ - - - MBC 1 - 13EME RUE - MBC 2 - ACTION - ANTENNE REUNION - MBC 3 - ARTE France - BBC NEWS - W-SPORT - MBC 4 - CANAL J - MBC 5 - MBC 11 - CANAL+ CINEMA(S) - MBC HD - PUNCH TV - CANAL+ - SPORT EN FRANCE - CANAL+ SPORT HD - CNN - CINE+ FESTIVAL - CINE+ EMOTION - CINE+ FAMILY - CINE+ FRISSON - OCS HD - EUROPE 1 TV - COMEDIE+ - E! ENTERTAINMENT - EQUIDIA - SS EPL - SS LA LIGA - SS FOOTBALL HD - EUROSPORT 1 HD - EUROSPORT 2 - SS FOOTBALL PLUS HD - AL JAZEERA ENG - FRANCE 3 - FRANCE 5 - BET (ENG) - CNEWS - TELEMUNDO DSTV - INFOSPORT+ - UNIVERSAL - MNET MOVIES 3 - MNET MOVIES 4 - LCI - LCP ASSEMBLEE NATIONALE - L'EQUIPE - M6 HD - DISCOVERY CHANNEL DSTV - ZEE WORLD DSTV - NICKELODEON DSTV - RFM TV - NICKELODEON JR (DSTV) - MEZZO - BRAVO - MTV France - AFR MAGIC EPIC - TFX - AFR MAGIC SHOW DSTV - GASYSPORT TV - PARIS PREMIERE - BEIN SPORTS MAX 6 - PLANETE+ - PLANETE+ AVENTURE - BEIN SPORTS MAX 7 - BEIN SPORTS MAX 8 - RTL9 - SYFY - SEASONS - SERIE CLUB - BEIN SPORTS MAX 9 - BEIN SPORTS MAX 10 - CANAL+ FAMILY - CANAL+ POP - CANAL+ MAGIC - MANGAS - PASSION BOLLYWOOD - REUNION 1ERE - TVM 2 - MALAGASY TV - KULTURA TV - REAL TV - MADI TV - TEVA - TF1 - T18 - MIEUX - TMC - CANAL+ CAN HD - EUROPE 2 POP TV - ACTIVATION NETFLIX - TRACE URBAN - SS WWE HD - TV BREIZH - TV5 MONDE (Afrique) - NATIONAL GEOGRAPHIC ENG - TV5 MONDE FR - STUDIO UNIVERSAL - XXL - FRANCE 24 - BEIN SPORTS 1 HD - ZEE CINEMA HD - ZING - ZEE TV - CANAL+ SPORT 2 HD - PIWI+ - GAME ONE - USHUAÏA TV - W9 - PLANETE+ CRIME - GULLI - MTV HITS - TELETOON+ - CANAL+ SPORT 3 HD - KANALAUSTRAL.TV - DORCEL HD - HISTOIRE - CANAL EVENEMENT INDO - AFRICA 24 - DISCOVERY CHANNEL - FRANCE 2 - TVMalgache - ORTComores - FRANCE 4 - TELE KREOL - MAYOTTE 1ERE - STARPLUS - TRACE AFRICA - CSTAR - COLORS - NICKELODEON - BEIN SPORTS 2 HD - CANAL+ BOX OFFICE - KTO - IQRAA - PENTHOUSE BLACK - STARGOLD - VOIR+ OCEAN INDIEN - PARAMOUNT NETWORK - HUSTLER - INFOSPORT+ AFR - CGTN-FRANCAIS - CANAL+ SERIES - CINE+ CLASSIC - TV PLUS - KOLO TV - VIVA - MTV India - MBC SAT - BEIN SPORTS 3 HD - ENGLISH CLUB TV - CANAL+ SPORT 4 - CANAL+ SPORT 5 HD - CANAL+ KIDS HD - RECORD - GOLF+ HD - A+ - NOLLYWOOD TV france - RMC LIFE - CARTOON NETWORK - BOOMERANG - CANAL+ SPORT 360 HD - CANAL+ FOOT - NOVELAS TV - BEIN SPORTS MAX 4 - BEIN SPORTS MAX 5 - SONY MAX - AUTOMOTO - TREK - PRIVATE - TF1 SERIES FILMS - 6TER - CANAL+ SPORT 1 HD - TEST DROM - TEST - C+ ACTION CENTRE - MUSEUM TV - MBS - DREAMIN - WARNER TV - WARNER TV NEXT - FRANCE INFO: - CUISINES - RTA - OLYMPIA TV - CANAL+ PREMIER LEAGUE - EVENEMENT 4K - NOVEGASY - TRACE VANILLA - LUDIKIDS OI - ZEE THIRAI - VIXEN - NICKELODEON JR - UTSAV BHARAT - NATHAN+ - BFM TV - BFM BUSINESS - RMC STORY - KWEZI - CANAL+ DOCS - CHEVAL TV - MEZZO LIVE - RMC DECOUVERTE - CARTOONITO - TLC - DISCOVERY INVESTIGATION - CANAL+LIVE 1 - CANAL+LIVE 2 - CANAL+LIVE 3 - CANAL+LIVE 4 - CANAL+LIVE 5 - CANAL+LIVE 6 - CANAL+LIVE 7 - CANAL+LIVE 8 - CANAL+LIVE 9 - CANAL+LIVE 10 - CANAL+LIVE 11 - CANAL+LIVE 12 - CANAL+LIVE 13 - CANAL+LIVE 14 - CANAL+LIVE 15 - CANAL+LIVE 16 - CANAL+LIVE 17 - CANAL+LIVE 18 - TCM CINEMA -