diff --git a/.gh-pages/guides/programme-tv.net.xml b/.gh-pages/guides/programme-tv.net.xml
index 8a398baa..60410cb9 100644
--- a/.gh-pages/guides/programme-tv.net.xml
+++ b/.gh-pages/guides/programme-tv.net.xml
@@ -222,7 +222,7 @@
RTPI
RTS Deux
RTS Un
-Science & Vie TV
+Science & Vie TV
Seasons
serieclub
Stingray Djazz
@@ -8007,35 +8007,35 @@
La traqueTéléfilm policier
HiddenSérie de suspense
HiddenSérie de suspense
-La nuit de la pleine luneSciences et technique
-La nuit de la pleine luneSciences et technique
-Des usines XXLSciences et technique
-On n'est pas que des cobayes!Sciences et technique
-Les trains de l'extrêmeDécouvertes
-Précision : comment tout mesurer ?Sciences et technique
-Courts de scienceMagazine scientifique
-Il était une fois... les découvreursDessin animé
-Il était une fois... la vieDessin animé
-On n'est pas que des cobayes!Sciences et technique
-On n'est pas que des cobayes!Sciences et technique
-Combats de robotsSciences et technique
-La nuit de la pleine luneSciences et technique
-La nuit de la pleine luneSciences et technique
-Construire l'impossibleSciences et technique
-Construire l'impossibleSciences et technique
-Météo de l'extrême : les rescapésSciences et technique
-Panique dans le ciel : ces avions qui font le buzzSciences et technique
-Mars : mission spatiale sans retourSciences et technique
-Mars : mission spatiale sans retourSciences et technique
-Au coeur de la villeSciences et technique
-L'art de la démolitionSciences et technique
-L'art de la démolitionSciences et technique
-Mégastructures : Le géant chinoisSciences et technique
-Mars, ultime frontièreSciences et technique
-Les mystères de l'universSciences et technique
-Les rendez-vous de l'espaceMagazine scientifique
-Exomars : à la conquête de la planète rougeSciences et technique
-Les nouvelles frontières de l'espaceSciences et technique
+La nuit de la pleine luneSciences et technique
+La nuit de la pleine luneSciences et technique
+Des usines XXLSciences et technique
+On n'est pas que des cobayes!Sciences et technique
+Les trains de l'extrêmeDécouvertes
+Précision : comment tout mesurer ?Sciences et technique
+Courts de scienceMagazine scientifique
+Il était une fois... les découvreursDessin animé
+Il était une fois... la vieDessin animé
+On n'est pas que des cobayes!Sciences et technique
+On n'est pas que des cobayes!Sciences et technique
+Combats de robotsSciences et technique
+La nuit de la pleine luneSciences et technique
+La nuit de la pleine luneSciences et technique
+Construire l'impossibleSciences et technique
+Construire l'impossibleSciences et technique
+Météo de l'extrême : les rescapésSciences et technique
+Panique dans le ciel : ces avions qui font le buzzSciences et technique
+Mars : mission spatiale sans retourSciences et technique
+Mars : mission spatiale sans retourSciences et technique
+Au coeur de la villeSciences et technique
+L'art de la démolitionSciences et technique
+L'art de la démolitionSciences et technique
+Mégastructures : Le géant chinoisSciences et technique
+Mars, ultime frontièreSciences et technique
+Les mystères de l'universSciences et technique
+Les rendez-vous de l'espaceMagazine scientifique
+Exomars : à la conquête de la planète rougeSciences et technique
+Les nouvelles frontières de l'espaceSciences et technique
TransmissionPêche
Seasons hebdoMagazine de la nature
Chasseur de père...en fille!Chasse
diff --git a/bin/epg-grabber/utils.js b/bin/epg-grabber/utils.js
index 191cb5f5..3930dd7a 100644
--- a/bin/epg-grabber/utils.js
+++ b/bin/epg-grabber/utils.js
@@ -65,7 +65,9 @@ utils.sleep = function (ms) {
}
}
-utils.escapeString = function (string) {
+utils.escapeString = function (string, defaultValue = '') {
+ if (!string) return defaultValue
+
return string
.toString()
.replace(/&/g, '&')
@@ -82,16 +84,18 @@ utils.convertToXMLTV = function ({ config, channels, programs }) {
let output = `\r\n`
for (let channel of channels) {
+ const id = this.escapeString(channel['xmltv_id'])
const displayName = this.escapeString(channel.name)
- output += `${displayName}\r\n`
+ output += `${displayName}\r\n`
}
for (let program of programs) {
if (!program) continue
- const title = program.title ? this.escapeString(program.title) : ''
- const description = program.description ? this.escapeString(program.description) : ''
- const category = program.category ? this.escapeString(program.category) : ''
+ const channel = this.escapeString(program.channel)
+ const title = this.escapeString(program.title)
+ const description = this.escapeString(program.description)
+ const category = this.escapeString(program.category)
const start = program.start ? dayjs(program.start).format('YYYYMMDDHHmmss ZZ') : ''
const stop = program.stop ? dayjs(program.stop).format('YYYYMMDDHHmmss ZZ') : ''
const lang = program.lang || config.lang
@@ -103,7 +107,7 @@ utils.convertToXMLTV = function ({ config, channels, programs }) {
output += ` stop="${stop}"`
}
- output += ` channel="${program.channel}">${title}`
+ output += ` channel="${channel}">${title}`
if (description) {
output += `${description}`