mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-10 17:10:07 -04:00
Merge pull request #125 from iptv-org/fix-programme-tv-net
Fix programme-tv.net
This commit is contained in:
commit
40bf808227
4 changed files with 114 additions and 95 deletions
17
package-lock.json
generated
17
package-lock.json
generated
|
@ -18,6 +18,7 @@
|
||||||
"jsdom": "^16.5.0",
|
"jsdom": "^16.5.0",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"parse-duration": "^1.0.0",
|
"parse-duration": "^1.0.0",
|
||||||
|
"srcset": "^4.0.0",
|
||||||
"tabletojson": "^2.0.7",
|
"tabletojson": "^2.0.7",
|
||||||
"xml-js": "^1.6.11"
|
"xml-js": "^1.6.11"
|
||||||
}
|
}
|
||||||
|
@ -1361,6 +1362,17 @@
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/srcset": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/sshpk": {
|
"node_modules/sshpk": {
|
||||||
"version": "1.16.1",
|
"version": "1.16.1",
|
||||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
|
||||||
|
@ -2649,6 +2661,11 @@
|
||||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
|
"srcset": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw=="
|
||||||
|
},
|
||||||
"sshpk": {
|
"sshpk": {
|
||||||
"version": "1.16.1",
|
"version": "1.16.1",
|
||||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
"jsdom": "^16.5.0",
|
"jsdom": "^16.5.0",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"parse-duration": "^1.0.0",
|
"parse-duration": "^1.0.0",
|
||||||
|
"srcset": "^4.0.0",
|
||||||
"tabletojson": "^2.0.7",
|
"tabletojson": "^2.0.7",
|
||||||
"xml-js": "^1.6.11"
|
"xml-js": "^1.6.11"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<site site="programme-tv.net">
|
<site site="programme-tv.net">
|
||||||
<channels>
|
<channels>
|
||||||
<channel site_id="13eme-rue-26" xmltv_id="13emeRue.us">13ème Rue</channel>
|
|
||||||
<channel site_id="6ter-202" xmltv_id="6ter.fr">6ter</channel>
|
<channel site_id="6ter-202" xmltv_id="6ter.fr">6ter</channel>
|
||||||
<channel site_id="aplus-international-france-383" xmltv_id="APlus.fr">A+</channel>
|
<channel site_id="13eme-rue-26" xmltv_id="13emeRue.us">13ème Rue</channel>
|
||||||
<channel site_id="ab-1-31" xmltv_id="AB1.fr">AB 1</channel>
|
|
||||||
<channel site_id="ab-3-138" xmltv_id="AB3.fr">AB 3</channel>
|
<channel site_id="ab-3-138" xmltv_id="AB3.fr">AB 3</channel>
|
||||||
|
<channel site_id="ab-1-31" xmltv_id="AB1.fr">AB 1</channel>
|
||||||
<channel site_id="action-32" xmltv_id="Action.fr">Action</channel>
|
<channel site_id="action-32" xmltv_id="Action.fr">Action</channel>
|
||||||
<channel site_id="al-jazeera-english-196" xmltv_id="AljazeeraEnglish.qa">Aljazeera English</channel>
|
<channel site_id="al-jazeera-english-196" xmltv_id="AljazeeraEnglish.qa">Aljazeera English</channel>
|
||||||
<channel site_id="altice-studio-398" xmltv_id="AlticeStudio.fr">Altice Studio</channel>
|
<channel site_id="altice-studio-398" xmltv_id="AlticeStudio.fr">Altice Studio</channel>
|
||||||
<channel site_id="animaux-33" xmltv_id="Animaux.fr">Animaux</channel>
|
<channel site_id="animaux-33" xmltv_id="Animaux.fr">Animaux</channel>
|
||||||
|
<channel site_id="aplus-international-france-383" xmltv_id="APlus.fr">A+</channel>
|
||||||
<channel site_id="arte-337" xmltv_id="ARTEFrancais.fr">ARTE Français</channel>
|
<channel site_id="arte-337" xmltv_id="ARTEFrancais.fr">ARTE Français</channel>
|
||||||
<channel site_id="automoto-89" xmltv_id="Automotolachaine.fr">Automoto la chaîne</channel>
|
<channel site_id="automoto-89" xmltv_id="Automotolachaine.fr">Automoto la chaîne</channel>
|
||||||
<channel site_id="b-one-339" xmltv_id="BOneTV.cd">B-One TV</channel>
|
<channel site_id="b-one-339" xmltv_id="BOneTV.cd">B-One TV</channel>
|
||||||
<channel site_id="baby-tv-229" xmltv_id="BabyTVEurope.uk">Baby TV Europe</channel>
|
<channel site_id="baby-tv-229" xmltv_id="BabyTVEurope.uk">Baby TV Europe</channel>
|
||||||
<channel site_id="bbc-entertainment-194" xmltv_id="BBCEntertainmentEurope.uk">BBC Entertainment Europe</channel>
|
|
||||||
<channel site_id="bbc4-247" xmltv_id="BBCFour.uk">BBC Four</channel>
|
|
||||||
<channel site_id="bbc-1-230" xmltv_id="BBCOne.uk">BBC One</channel>
|
|
||||||
<channel site_id="bbc-2-231" xmltv_id="BBCTwo.uk">BBC Two</channel>
|
<channel site_id="bbc-2-231" xmltv_id="BBCTwo.uk">BBC Two</channel>
|
||||||
<channel site_id="bein-sports-1-183" xmltv_id="BeInSports1.qa">BeIn Sports 1</channel>
|
<channel site_id="bbc-1-230" xmltv_id="BBCOne.uk">BBC One</channel>
|
||||||
<channel site_id="bein-sports-2-184" xmltv_id="BeInSports2.qa">BeIn Sports 2</channel>
|
<channel site_id="bbc4-247" xmltv_id="BBCFour.uk">BBC Four</channel>
|
||||||
|
<channel site_id="bbc-entertainment-194" xmltv_id="BBCEntertainmentEurope.uk">BBC Entertainment Europe</channel>
|
||||||
<channel site_id="bein-sports-3-265" xmltv_id="BeInSports3.qa">BeIn Sports 3</channel>
|
<channel site_id="bein-sports-3-265" xmltv_id="BeInSports3.qa">BeIn Sports 3</channel>
|
||||||
|
<channel site_id="bein-sports-2-184" xmltv_id="BeInSports2.qa">BeIn Sports 2</channel>
|
||||||
|
<channel site_id="bein-sports-1-183" xmltv_id="BeInSports1.qa">BeIn Sports 1</channel>
|
||||||
<channel site_id="bein-sports-max-10-305" xmltv_id="BeInSportsMax10France.qa">BeIn Sports Max 10 France</channel>
|
<channel site_id="bein-sports-max-10-305" xmltv_id="BeInSportsMax10France.qa">BeIn Sports Max 10 France</channel>
|
||||||
<channel site_id="bein-sports-max-4-300" xmltv_id="BeInSportsMax4France.qa">BeIn Sports Max 4 France</channel>
|
|
||||||
<channel site_id="bein-sports-max-5-301" xmltv_id="BeInSportsMax5France.qa">BeIn Sports Max 5 France</channel>
|
|
||||||
<channel site_id="bein-sports-max-6-302" xmltv_id="BeInSportsMax6France.qa">BeIn Sports Max 6 France</channel>
|
|
||||||
<channel site_id="bein-sports-max-7-303" xmltv_id="BeInSportsMax7France.qa">BeIn Sports Max 7 France</channel>
|
|
||||||
<channel site_id="bein-sports-max-8-304" xmltv_id="BeInSportsMax8France.qa">BeIn Sports Max 8 France</channel>
|
|
||||||
<channel site_id="bein-sports-max-9-306" xmltv_id="BeInSportsMax9France.qa">BeIn Sports Max 9 France</channel>
|
<channel site_id="bein-sports-max-9-306" xmltv_id="BeInSportsMax9France.qa">BeIn Sports Max 9 France</channel>
|
||||||
|
<channel site_id="bein-sports-max-8-304" xmltv_id="BeInSportsMax8France.qa">BeIn Sports Max 8 France</channel>
|
||||||
|
<channel site_id="bein-sports-max-7-303" xmltv_id="BeInSportsMax7France.qa">BeIn Sports Max 7 France</channel>
|
||||||
|
<channel site_id="bein-sports-max-6-302" xmltv_id="BeInSportsMax6France.qa">BeIn Sports Max 6 France</channel>
|
||||||
|
<channel site_id="bein-sports-max-5-301" xmltv_id="BeInSportsMax5France.qa">BeIn Sports Max 5 France</channel>
|
||||||
|
<channel site_id="bein-sports-max-4-300" xmltv_id="BeInSportsMax4France.qa">BeIn Sports Max 4 France</channel>
|
||||||
<channel site_id="bet-299" xmltv_id="BETFrance.us">BET France</channel>
|
<channel site_id="bet-299" xmltv_id="BETFrance.us">BET France</channel>
|
||||||
<channel site_id="bfm-business-232" xmltv_id="BFMBusiness.fr">BFM Business</channel>
|
<channel site_id="bfm-business-232" xmltv_id="BFMBusiness.fr">BFM Business</channel>
|
||||||
<channel site_id="bfm-lyon-metropole-364" xmltv_id="BFMLyon.fr">BFM Lyon</channel>
|
<channel site_id="bfm-lyon-metropole-364" xmltv_id="BFMLyon.fr">BFM Lyon</channel>
|
||||||
|
@ -35,31 +35,31 @@
|
||||||
<channel site_id="bfm-tv-25" xmltv_id="BFMTV.fr">BFM TV</channel>
|
<channel site_id="bfm-tv-25" xmltv_id="BFMTV.fr">BFM TV</channel>
|
||||||
<channel site_id="boing-233" xmltv_id="BoingFrance.it">Boing France</channel>
|
<channel site_id="boing-233" xmltv_id="BoingFrance.it">Boing France</channel>
|
||||||
<channel site_id="boomerang-34" xmltv_id="BoomerangFrance.us">Boomerang France</channel>
|
<channel site_id="boomerang-34" xmltv_id="BoomerangFrance.us">Boomerang France</channel>
|
||||||
<channel site_id="cnews-30" xmltv_id="CNews.fr">C News</channel>
|
|
||||||
<channel site_id="cstar-28" xmltv_id="CStar.fr">C Star</channel>
|
|
||||||
<channel site_id="c8-4" xmltv_id="C8.fr">C8</channel>
|
<channel site_id="c8-4" xmltv_id="C8.fr">C8</channel>
|
||||||
|
<channel site_id="canal-j-40" xmltv_id="CanalJ.fr">Canal J</channel>
|
||||||
|
<channel site_id="canalplus-2" xmltv_id="CanalPlusFrance.fr">Canal + France</channel>
|
||||||
<channel site_id="canalplus-cinema-35" xmltv_id="CanalPlusCinemaFrance.fr">Canal + Cinéma France</channel>
|
<channel site_id="canalplus-cinema-35" xmltv_id="CanalPlusCinemaFrance.fr">Canal + Cinéma France</channel>
|
||||||
<channel site_id="canalplus-decale-36" xmltv_id="CanalPlusDecale.fr">Canal + Décalé</channel>
|
<channel site_id="canalplus-decale-36" xmltv_id="CanalPlusDecale.fr">Canal + Décalé</channel>
|
||||||
<channel site_id="canalplus-family-149" xmltv_id="CanalPlusFamilyFrance.fr">Canal + Family France</channel>
|
<channel site_id="canalplus-family-149" xmltv_id="CanalPlusFamilyFrance.fr">Canal + Family France</channel>
|
||||||
<channel site_id="canalplus-2" xmltv_id="CanalPlusFrance.fr">Canal + France</channel>
|
|
||||||
<channel site_id="canalplus-sport-37" xmltv_id="CanalPlusSportFrance.fr">Canal + Sport France</channel>
|
|
||||||
<channel site_id="canalplus-series-227" xmltv_id="CanalPlusSeriesFrance.fr">Canal + Séries France</channel>
|
<channel site_id="canalplus-series-227" xmltv_id="CanalPlusSeriesFrance.fr">Canal + Séries France</channel>
|
||||||
<channel site_id="canal-j-40" xmltv_id="CanalJ.fr">Canal J</channel>
|
<channel site_id="canalplus-sport-37" xmltv_id="CanalPlusSportFrance.fr">Canal + Sport France</channel>
|
||||||
<channel site_id="canvas-234" xmltv_id="Canvas.be">Canvas</channel>
|
<channel site_id="canvas-234" xmltv_id="Canvas.be">Canvas</channel>
|
||||||
<channel site_id="cartoon-network-41" xmltv_id="CartoonNetworkFrance.us">Cartoon Network France</channel>
|
<channel site_id="cartoon-network-41" xmltv_id="CartoonNetworkFrance.us">Cartoon Network France</channel>
|
||||||
<channel site_id="chasse-et-peche-42" xmltv_id="ChassePeche.fr">Chasse & Pêche</channel>
|
<channel site_id="chasse-et-peche-42" xmltv_id="ChassePeche.fr">Chasse & Pêche</channel>
|
||||||
<channel site_id="cherie-25-206" xmltv_id="Cherie25.fr">Chérie 25</channel>
|
<channel site_id="cherie-25-206" xmltv_id="Cherie25.fr">Chérie 25</channel>
|
||||||
<channel site_id="cineplus-classic-44" xmltv_id="CinePlusClassic.fr">Cine + Classic</channel>
|
<channel site_id="cineplus-classic-44" xmltv_id="CinePlusClassic.fr">Cine + Classic</channel>
|
||||||
<channel site_id="cineplus-club-43" xmltv_id="CinePlusClub.fr">Cine + Club</channel>
|
<channel site_id="cineplus-club-43" xmltv_id="CinePlusClub.fr">Cine + Club</channel>
|
||||||
|
<channel site_id="cineplus-emotion-45" xmltv_id="CinePlusEmotion.fr">Cine + Émotion</channel>
|
||||||
<channel site_id="cineplus-famiz-46" xmltv_id="CinePlusFamiz.fr">Cine + Famiz</channel>
|
<channel site_id="cineplus-famiz-46" xmltv_id="CinePlusFamiz.fr">Cine + Famiz</channel>
|
||||||
<channel site_id="cineplus-frisson-47" xmltv_id="CinePlusFrisson.fr">Cine + Frisson</channel>
|
<channel site_id="cineplus-frisson-47" xmltv_id="CinePlusFrisson.fr">Cine + Frisson</channel>
|
||||||
<channel site_id="cineplus-premier-3" xmltv_id="CinePlusPremier.fr">Cine + Premier</channel>
|
<channel site_id="cineplus-premier-3" xmltv_id="CinePlusPremier.fr">Cine + Premier</channel>
|
||||||
<channel site_id="cineplus-emotion-45" xmltv_id="CinePlusEmotion.fr">Cine + Émotion</channel>
|
|
||||||
<channel site_id="club-rtl-140" xmltv_id="ClubRTL.be">Club RTL</channel>
|
<channel site_id="club-rtl-140" xmltv_id="ClubRTL.be">Club RTL</channel>
|
||||||
|
<channel site_id="cnews-30" xmltv_id="CNews.fr">C News</channel>
|
||||||
<channel site_id="cnn-235" xmltv_id="CNNInternationalEurope.us">CNN International Europe</channel>
|
<channel site_id="cnn-235" xmltv_id="CNNInternationalEurope.us">CNN International Europe</channel>
|
||||||
<channel site_id="comedy-central-472" xmltv_id="ComedyCentralFrance.us">Comedy Central France</channel>
|
|
||||||
<channel site_id="comedieplus-27" xmltv_id="ComediePlus.fr">Comédie +</channel>
|
<channel site_id="comedieplus-27" xmltv_id="ComediePlus.fr">Comédie +</channel>
|
||||||
|
<channel site_id="comedy-central-472" xmltv_id="ComedyCentralFrance.us">Comedy Central France</channel>
|
||||||
<channel site_id="crime-district-363" xmltv_id="CrimeDistrict.fr">Crime District</channel>
|
<channel site_id="crime-district-363" xmltv_id="CrimeDistrict.fr">Crime District</channel>
|
||||||
|
<channel site_id="cstar-28" xmltv_id="CStar.fr">C Star</channel>
|
||||||
<channel site_id="das-erste-185" xmltv_id="DasErste.de">Das Erste</channel>
|
<channel site_id="das-erste-185" xmltv_id="DasErste.de">Das Erste</channel>
|
||||||
<channel site_id="discovery-channel-54" xmltv_id="DiscoveryChannelFrance.us">Discovery Channel France</channel>
|
<channel site_id="discovery-channel-54" xmltv_id="DiscoveryChannelFrance.us">Discovery Channel France</channel>
|
||||||
<channel site_id="discovery-family-399" xmltv_id="DiscoveryFamily.us">Discovery Family</channel>
|
<channel site_id="discovery-family-399" xmltv_id="DiscoveryFamily.us">Discovery Family</channel>
|
||||||
|
@ -67,14 +67,16 @@
|
||||||
<channel site_id="disney-channel-57" xmltv_id="DisneyChannelFrance.us">Disney Channel France</channel>
|
<channel site_id="disney-channel-57" xmltv_id="DisneyChannelFrance.us">Disney Channel France</channel>
|
||||||
<channel site_id="disney-junior-166" xmltv_id="DisneyJuniorFrance.us">Disney Junior France</channel>
|
<channel site_id="disney-junior-166" xmltv_id="DisneyJuniorFrance.us">Disney Junior France</channel>
|
||||||
<channel site_id="e-141" xmltv_id="EFrance.us">E! France</channel>
|
<channel site_id="e-141" xmltv_id="EFrance.us">E! France</channel>
|
||||||
|
<channel site_id="een-264" xmltv_id="Een.be">Één</channel>
|
||||||
<channel site_id="equidia-59" xmltv_id="Equidia.fr">Equidia</channel>
|
<channel site_id="equidia-59" xmltv_id="Equidia.fr">Equidia</channel>
|
||||||
<channel site_id="eurochannel-236" xmltv_id="Eurochannel.us">Eurochannel</channel>
|
<channel site_id="eurochannel-236" xmltv_id="Eurochannel.us">Eurochannel</channel>
|
||||||
<channel site_id="euronews-62" xmltv_id="EuroNewsFrancais.fr">EuroNews Français</channel>
|
<channel site_id="euronews-62" xmltv_id="EuroNewsFrancais.fr">EuroNews Français</channel>
|
||||||
<channel site_id="eurosport-1-5" xmltv_id="Eurosport1France.fr">Eurosport 1 France</channel>
|
|
||||||
<channel site_id="eurosport-2-63" xmltv_id="Eurosport2France.fr">Eurosport 2 France</channel>
|
<channel site_id="eurosport-2-63" xmltv_id="Eurosport2France.fr">Eurosport 2 France</channel>
|
||||||
|
<channel site_id="eurosport-1-5" xmltv_id="Eurosport1France.fr">Eurosport 1 France</channel>
|
||||||
<channel site_id="fashion-tv-358" xmltv_id="FashionTVEurope.fr">FashionTV Europe</channel>
|
<channel site_id="fashion-tv-358" xmltv_id="FashionTVEurope.fr">FashionTV Europe</channel>
|
||||||
<channel site_id="france-2-6" xmltv_id="France2.fr">France 2</channel>
|
|
||||||
<channel site_id="france-24-142" xmltv_id="France24Francais.fr">France 24 Français</channel>
|
<channel site_id="france-24-142" xmltv_id="France24Francais.fr">France 24 Français</channel>
|
||||||
|
<channel site_id="france-5-9" xmltv_id="France5.fr">France 5</channel>
|
||||||
|
<channel site_id="france-4-8" xmltv_id="France4.fr">France 4</channel>
|
||||||
<channel site_id="france-3-7" xmltv_id="France3.fr">France 3</channel>
|
<channel site_id="france-3-7" xmltv_id="France3.fr">France 3</channel>
|
||||||
<channel site_id="france-3-alpes-275" xmltv_id="France3Alpes.fr">France 3 Alpes</channel>
|
<channel site_id="france-3-alpes-275" xmltv_id="France3Alpes.fr">France 3 Alpes</channel>
|
||||||
<channel site_id="france-3-alsace-276" xmltv_id="France3Alsace.fr">France 3 Alsace</channel>
|
<channel site_id="france-3-alsace-276" xmltv_id="France3Alsace.fr">France 3 Alsace</channel>
|
||||||
|
@ -100,13 +102,11 @@
|
||||||
<channel site_id="france-3-poitou-charentes-296" xmltv_id="France3PoitouCharentes.fr">France 3 Poitou-Charentes</channel>
|
<channel site_id="france-3-poitou-charentes-296" xmltv_id="France3PoitouCharentes.fr">France 3 Poitou-Charentes</channel>
|
||||||
<channel site_id="france-3-provence-alpes-297" xmltv_id="France3ProvenceAlpes.fr">France 3 Provence-Alpes</channel>
|
<channel site_id="france-3-provence-alpes-297" xmltv_id="France3ProvenceAlpes.fr">France 3 Provence-Alpes</channel>
|
||||||
<channel site_id="france-3-rhone-alpes-298" xmltv_id="France3RhoneAlpes.fr">France 3 Rhône-Alpes</channel>
|
<channel site_id="france-3-rhone-alpes-298" xmltv_id="France3RhoneAlpes.fr">France 3 Rhône-Alpes</channel>
|
||||||
<channel site_id="france-4-8" xmltv_id="France4.fr">France 4</channel>
|
<channel site_id="france-2-6" xmltv_id="France2.fr">France 2</channel>
|
||||||
<channel site_id="france-5-9" xmltv_id="France5.fr">France 5</channel>
|
|
||||||
<channel site_id="game-one-71" xmltv_id="GameOne.fr">Game One</channel>
|
<channel site_id="game-one-71" xmltv_id="GameOne.fr">Game One</channel>
|
||||||
<channel site_id="ginx-352" xmltv_id="GinxeSportsTVInternational.uk">Ginx eSports TV International</channel>
|
<channel site_id="ginx-352" xmltv_id="GinxeSportsTVInternational.uk">Ginx eSports TV International</channel>
|
||||||
<channel site_id="golfplus-189" xmltv_id="GolfPlus.fr">Golf +</channel>
|
|
||||||
<channel site_id="golf-channel-354" xmltv_id="GolfChannelFrance.us">Golf Channel France</channel>
|
<channel site_id="golf-channel-354" xmltv_id="GolfChannelFrance.us">Golf Channel France</channel>
|
||||||
<channel site_id="gospel-music-tv-346" xmltv_id="GospelMusicTV.uk">Gospel Music TV</channel>
|
<channel site_id="golfplus-189" xmltv_id="GolfPlus.fr">Golf +</channel>
|
||||||
<channel site_id="gulli-29" xmltv_id="Gulli.fr">Gulli</channel>
|
<channel site_id="gulli-29" xmltv_id="Gulli.fr">Gulli</channel>
|
||||||
<channel site_id="histoire-tv-72" xmltv_id="HistoireTV.fr">Histoire TV</channel>
|
<channel site_id="histoire-tv-72" xmltv_id="HistoireTV.fr">Histoire TV</channel>
|
||||||
<channel site_id="i24news-243" xmltv_id="I24NewsFrancais.il">I24 News Français</channel>
|
<channel site_id="i24news-243" xmltv_id="I24NewsFrancais.il">I24 News Français</channel>
|
||||||
|
@ -114,10 +114,11 @@
|
||||||
<channel site_id="j-one-387" xmltv_id="JOne.fr">J-One</channel>
|
<channel site_id="j-one-387" xmltv_id="JOne.fr">J-One</channel>
|
||||||
<channel site_id="ketnet-255" xmltv_id="Ketnet.be">Ketnet</channel>
|
<channel site_id="ketnet-255" xmltv_id="Ketnet.be">Ketnet</channel>
|
||||||
<channel site_id="kto-68" xmltv_id="KTO.fr">KTO</channel>
|
<channel site_id="kto-68" xmltv_id="KTO.fr">KTO</channel>
|
||||||
<channel site_id="lequipe-204" xmltv_id="LEquipe.fr">L'Équipe</channel>
|
|
||||||
<channel site_id="la-chaine-meteo-77" xmltv_id="LaChaineMeteo.fr">La Chaîne Météo</channel>
|
<channel site_id="la-chaine-meteo-77" xmltv_id="LaChaineMeteo.fr">La Chaîne Météo</channel>
|
||||||
<channel site_id="lci-la-chaine-info-78" xmltv_id="LCI.fr">LCI</channel>
|
|
||||||
<channel site_id="la-chaine-parlementaire-11" xmltv_id="LCPAssembleeNationale.fr">LCP Assemblée Nationale</channel>
|
<channel site_id="la-chaine-parlementaire-11" xmltv_id="LCPAssembleeNationale.fr">LCP Assemblée Nationale</channel>
|
||||||
|
<channel site_id="la-une-144" xmltv_id="RTBFLaUne.be">RTBF La Une</channel>
|
||||||
|
<channel site_id="lci-la-chaine-info-78" xmltv_id="LCI.fr">LCI</channel>
|
||||||
|
<channel site_id="lequipe-204" xmltv_id="LEquipe.fr">L'Équipe</channel>
|
||||||
<channel site_id="m6-12" xmltv_id="M6.fr">M6</channel>
|
<channel site_id="m6-12" xmltv_id="M6.fr">M6</channel>
|
||||||
<channel site_id="m6-music-80" xmltv_id="M6Music.fr">M6 Music</channel>
|
<channel site_id="m6-music-80" xmltv_id="M6Music.fr">M6 Music</channel>
|
||||||
<channel site_id="mangas-82" xmltv_id="Mangas.fr">Mangas</channel>
|
<channel site_id="mangas-82" xmltv_id="Mangas.fr">Mangas</channel>
|
||||||
|
@ -130,8 +131,8 @@
|
||||||
<channel site_id="mtv-hits-93" xmltv_id="MTVHitsEurope.us">MTV Hits Europe</channel>
|
<channel site_id="mtv-hits-93" xmltv_id="MTVHitsEurope.us">MTV Hits Europe</channel>
|
||||||
<channel site_id="mtv-hits-france-273" xmltv_id="MTVHitsFrance.us">MTV Hits France</channel>
|
<channel site_id="mtv-hits-france-273" xmltv_id="MTVHitsFrance.us">MTV Hits France</channel>
|
||||||
<channel site_id="myzen-tv-381" xmltv_id="MyZenTV.fr">MyZen TV</channel>
|
<channel site_id="myzen-tv-381" xmltv_id="MyZenTV.fr">MyZen TV</channel>
|
||||||
<channel site_id="national-geographic-98" xmltv_id="NationalGeographicFrance.us">National Geographic France</channel>
|
|
||||||
<channel site_id="nat-geo-wild-207" xmltv_id="NationalGeographicWildFrance.us">National Geographic Wild France</channel>
|
<channel site_id="nat-geo-wild-207" xmltv_id="NationalGeographicWildFrance.us">National Geographic Wild France</channel>
|
||||||
|
<channel site_id="national-geographic-98" xmltv_id="NationalGeographicFrance.us">National Geographic France</channel>
|
||||||
<channel site_id="nautical-channel-109" xmltv_id="NauticalChannel.it">Nautical Channel</channel>
|
<channel site_id="nautical-channel-109" xmltv_id="NauticalChannel.it">Nautical Channel</channel>
|
||||||
<channel site_id="nickelodeon-99" xmltv_id="NickelodeonFrance.us">Nickelodeon France</channel>
|
<channel site_id="nickelodeon-99" xmltv_id="NickelodeonFrance.us">Nickelodeon France</channel>
|
||||||
<channel site_id="nickelodeon-junior-199" xmltv_id="NickelodeonJuniorFrance.us">Nickelodeon Junior France</channel>
|
<channel site_id="nickelodeon-junior-199" xmltv_id="NickelodeonJuniorFrance.us">Nickelodeon Junior France</channel>
|
||||||
|
@ -154,32 +155,30 @@
|
||||||
<channel site_id="piwiplus-104" xmltv_id="PiwiPlus.fr">Piwi +</channel>
|
<channel site_id="piwiplus-104" xmltv_id="PiwiPlus.fr">Piwi +</channel>
|
||||||
<channel site_id="planeteplus-16" xmltv_id="PlanetePlus.fr">Planète +</channel>
|
<channel site_id="planeteplus-16" xmltv_id="PlanetePlus.fr">Planète +</channel>
|
||||||
<channel site_id="planeteplus-crime-investigation-151" xmltv_id="PlanetePlusCI.fr">Planète + CI</channel>
|
<channel site_id="planeteplus-crime-investigation-151" xmltv_id="PlanetePlusCI.fr">Planète + CI</channel>
|
||||||
<channel site_id="vier-260" xmltv_id="Play4.be">Play 4</channel>
|
|
||||||
<channel site_id="vijf-261" xmltv_id="Play5.be">Play 5</channel>
|
|
||||||
<channel site_id="plug-rtl-145" xmltv_id="PlugRTL.be">Plug RTL</channel>
|
<channel site_id="plug-rtl-145" xmltv_id="PlugRTL.be">Plug RTL</channel>
|
||||||
<channel site_id="polarplus-401" xmltv_id="PolarPlus.fr">Polar +</channel>
|
<channel site_id="polarplus-401" xmltv_id="PolarPlus.fr">Polar +</channel>
|
||||||
<channel site_id="rai-uno-188" xmltv_id="Rai1.it">Rai 1</channel>
|
<channel site_id="rai-uno-188" xmltv_id="Rai1.it">Rai 1</channel>
|
||||||
<channel site_id="rfm-tv-85" xmltv_id="RFMTV.fr">RFM TV</channel>
|
<channel site_id="rfm-tv-85" xmltv_id="RFMTV.fr">RFM TV</channel>
|
||||||
<channel site_id="rmc-decouverte-205" xmltv_id="RMCDecouverte.fr">RMC Découverte</channel>
|
<channel site_id="rmc-decouverte-205" xmltv_id="RMCDecouverte.fr">RMC Découverte</channel>
|
||||||
<channel site_id="rmc-sport-1-452" xmltv_id="RMCSport1.fr">RMC Sport 1</channel>
|
|
||||||
<channel site_id="rmc-sport-2-453" xmltv_id="RMCSport2.fr">RMC Sport 2</channel>
|
<channel site_id="rmc-sport-2-453" xmltv_id="RMCSport2.fr">RMC Sport 2</channel>
|
||||||
|
<channel site_id="rmc-sport-1-452" xmltv_id="RMCSport1.fr">RMC Sport 1</channel>
|
||||||
<channel site_id="rmc-story-203" xmltv_id="RMCStory.fr">RMC Story</channel>
|
<channel site_id="rmc-story-203" xmltv_id="RMCStory.fr">RMC Story</channel>
|
||||||
<channel site_id="rt-france-480" xmltv_id="RTFrance.ru">RT France</channel>
|
<channel site_id="rt-france-480" xmltv_id="RTFrance.ru">RT France</channel>
|
||||||
<channel site_id="la-trois-175" xmltv_id="RTBFLaTrois.be">RTBF La Trois</channel>
|
|
||||||
<channel site_id="la-une-144" xmltv_id="RTBFLaUne.be">RTBF La Une</channel>
|
|
||||||
<channel site_id="rtl-television-198" xmltv_id="RTL.lu">RTL</channel>
|
|
||||||
<channel site_id="rtl-9-17" xmltv_id="RTL9.lu">RTL 9</channel>
|
<channel site_id="rtl-9-17" xmltv_id="RTL9.lu">RTL 9</channel>
|
||||||
|
<channel site_id="rtl-television-198" xmltv_id="RTL.lu">RTL</channel>
|
||||||
<channel site_id="rtl-tvi-146" xmltv_id="RTLTVI.be">RTL TVI</channel>
|
<channel site_id="rtl-tvi-146" xmltv_id="RTLTVI.be">RTL TVI</channel>
|
||||||
<channel site_id="rtpi-187" xmltv_id="RTPInternacionalEuropa.pt">RTP Internacional Europa</channel>
|
<channel site_id="rtpi-187" xmltv_id="RTPInternacionalEuropa.pt">RTP Internacional Europa</channel>
|
||||||
<channel site_id="rts-un-147" xmltv_id="RTS1.ch">RTS 1</channel>
|
|
||||||
<channel site_id="rts-deux-148" xmltv_id="RTS2.ch">RTS 2</channel>
|
<channel site_id="rts-deux-148" xmltv_id="RTS2.ch">RTS 2</channel>
|
||||||
|
<channel site_id="rts-un-147" xmltv_id="RTS1.ch">RTS 1</channel>
|
||||||
<channel site_id="science-vie-tv-58" xmltv_id="ScienceVieTV.fr">Science & Vie TV</channel>
|
<channel site_id="science-vie-tv-58" xmltv_id="ScienceVieTV.fr">Science & Vie TV</channel>
|
||||||
<channel site_id="seasons-111" xmltv_id="Seasons.fr">Seasons</channel>
|
<channel site_id="seasons-111" xmltv_id="Seasons.fr">Seasons</channel>
|
||||||
|
<channel site_id="serieclub-18" xmltv_id="SerieClub.fr">Série Club</channel>
|
||||||
<channel site_id="stingray-djazz-361" xmltv_id="StingrayDjazz.ca">Stingray Djazz</channel>
|
<channel site_id="stingray-djazz-361" xmltv_id="StingrayDjazz.ca">Stingray Djazz</channel>
|
||||||
<channel site_id="stingray-i-concerts-392" xmltv_id="StingrayIConcerts.ca">Stingray IConcerts</channel>
|
<channel site_id="stingray-i-concerts-392" xmltv_id="StingrayIConcerts.ca">Stingray IConcerts</channel>
|
||||||
<channel site_id="syfy-110" xmltv_id="SyfyFrance.us">Syfy France</channel>
|
<channel site_id="syfy-110" xmltv_id="SyfyFrance.us">Syfy France</channel>
|
||||||
<channel site_id="serieclub-18" xmltv_id="SerieClub.fr">Série Club</channel>
|
|
||||||
<channel site_id="tcm-cinema-113" xmltv_id="TCMCinema.us">TCM Cinéma</channel>
|
<channel site_id="tcm-cinema-113" xmltv_id="TCMCinema.us">TCM Cinéma</channel>
|
||||||
|
<channel site_id="teletoonplus-131" xmltv_id="TeleToonPlus.fr">TéléToon +</channel>
|
||||||
|
<channel site_id="teva-23" xmltv_id="Teva.fr">Téva</channel>
|
||||||
<channel site_id="tf1-19" xmltv_id="TF1.fr">TF 1</channel>
|
<channel site_id="tf1-19" xmltv_id="TF1.fr">TF 1</channel>
|
||||||
<channel site_id="tf1-series-films-201" xmltv_id="TF1SeriesFilms.fr">TF 1 Séries Films</channel>
|
<channel site_id="tf1-series-films-201" xmltv_id="TF1SeriesFilms.fr">TF 1 Séries Films</channel>
|
||||||
<channel site_id="tfx-14" xmltv_id="TFX.fr">TFX</channel>
|
<channel site_id="tfx-14" xmltv_id="TFX.fr">TFX</channel>
|
||||||
|
@ -192,20 +191,19 @@
|
||||||
<channel site_id="trace-sport-stars-197" xmltv_id="TraceSportStars.fr">Trace Sport Stars</channel>
|
<channel site_id="trace-sport-stars-197" xmltv_id="TraceSportStars.fr">Trace Sport Stars</channel>
|
||||||
<channel site_id="trace-urban-127" xmltv_id="TraceUrban.fr">Trace Urban</channel>
|
<channel site_id="trace-urban-127" xmltv_id="TraceUrban.fr">Trace Urban</channel>
|
||||||
<channel site_id="trek-269" xmltv_id="Trek.fr">Trek</channel>
|
<channel site_id="trek-269" xmltv_id="Trek.fr">Trek</channel>
|
||||||
<channel site_id="tvbreizh-129" xmltv_id="TVBreizh.fr">TV Breizh</channel>
|
|
||||||
<channel site_id="tv5monde-128" xmltv_id="TV5MondeFranceBelgiqueSuisse.fr">TV5Monde France Belgique Suisse</channel>
|
<channel site_id="tv5monde-128" xmltv_id="TV5MondeFranceBelgiqueSuisse.fr">TV5Monde France Belgique Suisse</channel>
|
||||||
|
<channel site_id="tvbreizh-129" xmltv_id="TVBreizh.fr">TV Breizh</channel>
|
||||||
<channel site_id="tve-186" xmltv_id="TVEInternacionalEuropa.es">TVE Internacional Europa</channel>
|
<channel site_id="tve-186" xmltv_id="TVEInternacionalEuropa.es">TVE Internacional Europa</channel>
|
||||||
<channel site_id="teletoonplus-131" xmltv_id="TeleToonPlus.fr">TéléToon +</channel>
|
|
||||||
<channel site_id="teva-23" xmltv_id="Teva.fr">Téva</channel>
|
|
||||||
<channel site_id="ushuaia-tv-132" xmltv_id="UshuaiaTV.fr">Ushuaïa TV</channel>
|
<channel site_id="ushuaia-tv-132" xmltv_id="UshuaiaTV.fr">Ushuaïa TV</channel>
|
||||||
<channel site_id="vh1-133" xmltv_id="VH1Europe.us">VH1 Europe</channel>
|
<channel site_id="vh1-133" xmltv_id="VH1Europe.us">VH1 Europe</channel>
|
||||||
|
<channel site_id="vier-260" xmltv_id="Play4.be">Play 4</channel>
|
||||||
|
<channel site_id="vijf-261" xmltv_id="Play5.be">Play 5</channel>
|
||||||
<channel site_id="vtm-263" xmltv_id="VTM.be">VTM</channel>
|
<channel site_id="vtm-263" xmltv_id="VTM.be">VTM</channel>
|
||||||
<channel site_id="vtm-2-244" xmltv_id="VTM2.be">VTM 2</channel>
|
|
||||||
<channel site_id="vtm-3-262" xmltv_id="VTM3.be">VTM 3</channel>
|
<channel site_id="vtm-3-262" xmltv_id="VTM3.be">VTM 3</channel>
|
||||||
|
<channel site_id="vtm-2-244" xmltv_id="VTM2.be">VTM 2</channel>
|
||||||
<channel site_id="w9-24" xmltv_id="W9.fr">W9</channel>
|
<channel site_id="w9-24" xmltv_id="W9.fr">W9</channel>
|
||||||
<channel site_id="warner-tv-403" xmltv_id="WarnerTVFrance.us">Warner TV France</channel>
|
<channel site_id="warner-tv-403" xmltv_id="WarnerTVFrance.us">Warner TV France</channel>
|
||||||
<channel site_id="xxl-135" xmltv_id="XXL.fr">XXL</channel>
|
<channel site_id="xxl-135" xmltv_id="XXL.fr">XXL</channel>
|
||||||
<channel site_id="zdf-193" xmltv_id="ZDF.de">ZDF</channel>
|
<channel site_id="zdf-193" xmltv_id="ZDF.de">ZDF</channel>
|
||||||
<channel site_id="een-264" xmltv_id="Een.be">Één</channel>
|
|
||||||
</channels>
|
</channels>
|
||||||
</site>
|
</site>
|
|
@ -1,17 +1,18 @@
|
||||||
const jsdom = require('jsdom')
|
const durationParser = require('parse-duration')
|
||||||
const { JSDOM } = jsdom
|
const cheerio = require('cheerio')
|
||||||
const parseDuration = require('parse-duration')
|
const srcset = require('srcset')
|
||||||
const dayjs = require('dayjs')
|
const dayjs = require('dayjs')
|
||||||
const utc = require('dayjs/plugin/utc')
|
const utc = require('dayjs/plugin/utc')
|
||||||
const duration = require('dayjs/plugin/duration')
|
const timezone = require('dayjs/plugin/timezone')
|
||||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||||
|
|
||||||
dayjs.extend(utc)
|
dayjs.extend(utc)
|
||||||
dayjs.extend(duration)
|
dayjs.extend(timezone)
|
||||||
dayjs.extend(customParseFormat)
|
dayjs.extend(customParseFormat)
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
lang: 'fr',
|
lang: 'fr',
|
||||||
|
days: 3,
|
||||||
site: 'programme-tv.net',
|
site: 'programme-tv.net',
|
||||||
channels: 'programme-tv.net.channels.xml',
|
channels: 'programme-tv.net.channels.xml',
|
||||||
output: '.gh-pages/guides/programme-tv.net.guide.xml',
|
output: '.gh-pages/guides/programme-tv.net.guide.xml',
|
||||||
|
@ -21,61 +22,63 @@ module.exports = {
|
||||||
}.html`
|
}.html`
|
||||||
},
|
},
|
||||||
logo: function ({ content }) {
|
logo: function ({ content }) {
|
||||||
const dom = new JSDOM(content)
|
const $ = cheerio.load(content)
|
||||||
const img = dom.window.document.querySelector(
|
const img = $('.gridChannel-logo').first().find('img')
|
||||||
'#corps > div > div.page.channel > div.gridChannel > div.gridChannel-leftColumn > div.gridChannel-epgGrid > div.gridChannel-header > div > div > div > img'
|
const value = img.attr('srcset') || img.data('srcset')
|
||||||
)
|
const obj = value ? srcset.parse(value).find(i => i.width === 80) : {}
|
||||||
|
|
||||||
return img ? img.dataset.src : null
|
return obj.url
|
||||||
},
|
},
|
||||||
parser: function ({ content, date }) {
|
parser: function ({ content, date }) {
|
||||||
const programs = []
|
const programs = []
|
||||||
const dom = new JSDOM(content)
|
const items = parseItems(content)
|
||||||
const broadcastCards = dom.window.document.querySelectorAll('.mainBroadcastCard')
|
items.forEach(item => {
|
||||||
broadcastCards.forEach(card => {
|
const $item = cheerio.load(item)
|
||||||
const hour = (
|
const title = parseTitle($item)
|
||||||
card.getElementsByClassName('mainBroadcastCard-startingHour')[0] || { textContent: '' }
|
const icon = parseIcon($item)
|
||||||
).textContent
|
const category = parseCategory($item)
|
||||||
.toString()
|
const start = parseStart($item, date)
|
||||||
.trim()
|
const duration = parseDuration($item)
|
||||||
const durationContent = (
|
const stop = start.add(duration, 'ms')
|
||||||
card.getElementsByClassName('mainBroadcastCard-durationContent')[0] || { textContent: '' }
|
|
||||||
).textContent
|
|
||||||
.toString()
|
|
||||||
.trim()
|
|
||||||
const title = (
|
|
||||||
card.getElementsByClassName('mainBroadcastCard-title')[0] || { textContent: '' }
|
|
||||||
).textContent
|
|
||||||
.toString()
|
|
||||||
.trim()
|
|
||||||
const category = (
|
|
||||||
card.getElementsByClassName('mainBroadcastCard-genre')[0] || { textContent: '' }
|
|
||||||
).textContent
|
|
||||||
.toString()
|
|
||||||
.trim()
|
|
||||||
|
|
||||||
if (hour && title) {
|
programs.push({ title, icon, category, start, stop })
|
||||||
const start = dayjs
|
|
||||||
.utc(hour.replace('h', '-'), 'HH-mm')
|
|
||||||
.set('D', date.get('D'))
|
|
||||||
.set('M', date.get('M'))
|
|
||||||
.set('y', date.get('y'))
|
|
||||||
|
|
||||||
let stop = null
|
|
||||||
if (durationContent) {
|
|
||||||
const durationInMilliseconds = parseDuration(durationContent)
|
|
||||||
stop = start.add(dayjs.duration(durationInMilliseconds)).toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
programs.push({
|
|
||||||
title,
|
|
||||||
category,
|
|
||||||
start: start.toString(),
|
|
||||||
stop
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return programs
|
return programs
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function parseStart($item, date) {
|
||||||
|
let time = $item('.mainBroadcastCard-startingHour').first().text().trim()
|
||||||
|
time = `${date.format('MM/DD/YYYY')} ${time.replace('h', ':')}`
|
||||||
|
|
||||||
|
return dayjs.tz(time, 'MM/DD/YYYY HH:mm', 'Europe/Paris')
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseDuration($item) {
|
||||||
|
const duration = $item('.mainBroadcastCard-durationContent').first().text().trim()
|
||||||
|
|
||||||
|
return durationParser(duration)
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseIcon($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) : {}
|
||||||
|
|
||||||
|
return obj.url
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseCategory($item) {
|
||||||
|
return $item('.mainBroadcastCard-genre').first().text().trim()
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseTitle($item) {
|
||||||
|
return $item('.mainBroadcastCard-title').first().text().trim()
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseItems(content) {
|
||||||
|
const $ = cheerio.load(content)
|
||||||
|
|
||||||
|
return $('.mainBroadcastCard').toArray()
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue