diff --git a/.github/workflows/auto-update.yml b/.github/workflows/auto-update.yml
index dbf07d9e..dc2bdfdf 100644
--- a/.github/workflows/auto-update.yml
+++ b/.github/workflows/auto-update.yml
@@ -43,6 +43,7 @@ jobs:
tvprofil.com,
tvtv.us,
vidio.com,
+ zap.co.ao,
znbc.co.zm
]
steps:
diff --git a/README.md b/README.md
index f5243a8f..821c1c6b 100644
--- a/README.md
+++ b/README.md
@@ -23,8 +23,8 @@ To load a program guide, all you need to do is copy the link to one of the guide
🇩🇿 Algeria | https://iptv-org.github.io/epg/guides/elcinema.com.guide.xml |
🇦🇱 Albania | https://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml |
🇦🇩 Andorra | https://iptv-org.github.io/epg/guides/andorradifusio.ad.guide.xml |
- 🇦🇷 Argentina | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
🇦🇲 Armenia | https://iptv-org.github.io/epg/guides/tv.mail.ru.guide.xml |
+ 🇦🇴 Angola | https://iptv-org.github.io/epg/guides/zap.co.ao.guide.xml |
🇦🇺 Australia | https://iptv-org.github.io/epg/guides/ontvtonight.com.guide.xml |
🇧🇾 Belarus | https://iptv-org.github.io/epg/guides/tv.yandex.ru.guide.xml |
🇧🇴 Bolivia | https://iptv-org.github.io/epg/guides/comteco.com.bo.guide.xml |
@@ -32,19 +32,14 @@ To load a program guide, all you need to do is copy the link to one of the guide
🇧🇷 Brasil | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
🇧🇬 Bulgaria | https://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml |
🇨🇦 Canada | https://iptv-org.github.io/epg/guides/tvtv.us.guide.xml |
- 🇨🇱 Chile | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
🇨🇳 China | https://iptv-org.github.io/epg/guides/tv.cctv.com.guide.xml |
- 🇨🇴 Colombia | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
🇭🇷 Croatia | https://iptv-org.github.io/epg/guides/maxtv.hrvatskitelekom.hr.guide.xml |
🇨🇿 Czechia | https://iptv-org.github.io/epg/guides/m.tv.sms.cz.guide.xml |
🇪🇬 Egypt | https://iptv-org.github.io/epg/guides/elcinema.com.guide.xml |
- 🇸🇻 El Salvador | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
🇫🇮 Finland | https://iptv-org.github.io/epg/guides/telkussa.fi.guide.xml |
🇫🇷 France | https://iptv-org.github.io/epg/guides/programme-tv.net.guide.xml |
🇩🇪 Germany | https://iptv-org.github.io/epg/guides/hd-plus.de.guide.xml |
🇬🇷 Greece | https://iptv-org.github.io/epg/guides/cosmote.gr.guide.xml |
- 🇬🇹 Guatemala | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
- 🇭🇳 Honduras | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
🇮🇩 Indonesia | https://iptv-org.github.io/epg/guides/mncvision.id.guide.xml |
https://iptv-org.github.io/epg/guides/vidio.com.guide.xml |
🇭🇺 Hungary | https://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml |
@@ -59,12 +54,9 @@ To load a program guide, all you need to do is copy the link to one of the guide
🇱🇻 Latvia | https://iptv-org.github.io/epg/guides/tv.lv.guide.xml |
🇱🇾 Libya | https://iptv-org.github.io/epg/guides/elcinema.com.guide.xml |
🇲🇾 Malaysia | https://iptv-org.github.io/epg/guides/astro.com.my.guide.xml |
- 🇲🇽 Mexico | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
🇲🇦 Morocco | https://iptv-org.github.io/epg/guides/elcinema.com.guide.xml |
🇲🇪 Montenegro | https://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml |
🇲🇰 North Macedonia | https://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml |
- 🇵🇾 Paraguay | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
- 🇵🇪 Peru | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
🇵🇱 Poland | https://iptv-org.github.io/epg/guides/programtv.onet.pl.guide.xml |
🇵🇹 Portugal | https://iptv-org.github.io/epg/guides/meo.pt.guide.xml |
🇷🇴 Romania | https://iptv-org.github.io/epg/guides/programetv.ro.guide.xml |
diff --git a/package-lock.json b/package-lock.json
index 2bbed1a9..eeba44dd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -637,7 +637,9 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
- "engines": ["node >=0.6.0"]
+ "engines": [
+ "node >=0.6.0"
+ ]
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
@@ -968,7 +970,9 @@
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
- "engines": ["node >=0.6.0"],
+ "engines": [
+ "node >=0.6.0"
+ ],
"dependencies": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
@@ -1484,7 +1488,9 @@
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "engines": ["node >=0.6.0"],
+ "engines": [
+ "node >=0.6.0"
+ ],
"dependencies": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
diff --git a/sites/andorradifusio.ad.config.js b/sites/andorradifusio.ad.config.js
index 175f4324..19bfb691 100644
--- a/sites/andorradifusio.ad.config.js
+++ b/sites/andorradifusio.ad.config.js
@@ -1,17 +1,17 @@
-const jsdom = require('jsdom')
-const { JSDOM } = jsdom
+const cheerio = require('cheerio')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const timezone = require('dayjs/plugin/timezone')
const customParseFormat = require('dayjs/plugin/customParseFormat')
+require('dayjs/locale/ca')
dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
-let PM = false
module.exports = {
lang: 'ca',
+ days: 7,
site: 'andorradifusio.ad',
channels: 'andorradifusio.ad.channels.xml',
output: '.gh-pages/guides/andorradifusio.ad.guide.xml',
@@ -19,14 +19,15 @@ module.exports = {
return `https://www.andorradifusio.ad/programacio/${channel.site_id}`
},
parser({ content, date }) {
+ let PM = false
const programs = []
const items = parseItems(content, date)
items.forEach(item => {
- const title = parseTitle(item)
+ const title = item.title
let start = parseStart(item, date)
if (start.hour() > 11) PM = true
if (start.hour() < 12 && PM) start = start.add(1, 'd')
- const stop = parseStop(item, date)
+ const stop = start.add(1, 'h')
if (programs.length) {
programs[programs.length - 1].stop = start
}
@@ -42,34 +43,25 @@ module.exports = {
}
}
-function parseStop(item, date) {
- return date.tz('Europe/Madrid').endOf('d').add(6, 'h')
-}
-
function parseStart(item, date) {
- let time = (item.time || { textContent: '' }).textContent
- time = `${date.format('MM/DD/YYYY')} ${time}`
+ time = `${date.format('MM/DD/YYYY')} ${item.time}`
return dayjs.tz(time, 'MM/DD/YYYY HH:mm', 'Europe/Madrid')
}
-function parseTitle(item) {
- return (item.title || { textContent: '' }).textContent
-}
-
function parseItems(content, date) {
+ const $ = cheerio.load(content)
+ const dayOfWeek = date.locale('ca').format('dddd').toLowerCase()
+ const column = $('.programacio-dia > h3')
+ .filter((i, el) => $(el).text().startsWith(dayOfWeek))
+ .first()
+ .parent()
const items = []
- const dom = new JSDOM(content)
- const day = date.day() - 1
- const colNum = day < 0 ? 6 : day
- const cols = dom.window.document.querySelectorAll('.programacio-dia')
- const col = cols[colNum]
- const timeRows = col.querySelectorAll(`h4`)
- const titleRows = col.querySelectorAll(`p`)
- timeRows.forEach((time, i) => {
+ const titles = column.find(`p`).toArray()
+ column.find(`h4`).each((i, time) => {
items.push({
- time,
- title: titleRows[i]
+ time: $(time).text(),
+ title: $(titles[i]).text()
})
})
diff --git a/sites/arianatelevision.com.channels.xml b/sites/arianatelevision.com.channels.xml
index 264b701a..bc8741af 100755
--- a/sites/arianatelevision.com.channels.xml
+++ b/sites/arianatelevision.com.channels.xml
@@ -1,6 +1,6 @@
- Ariana TV National
+ Ariana TV National
\ No newline at end of file
diff --git a/sites/arianatelevision.com.config.js b/sites/arianatelevision.com.config.js
index 333c99cd..36925651 100644
--- a/sites/arianatelevision.com.config.js
+++ b/sites/arianatelevision.com.config.js
@@ -10,7 +10,6 @@ dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
-let PM = false
module.exports = {
lang: 'en',
days: 7,
@@ -21,6 +20,7 @@ module.exports = {
return `https://www.arianatelevision.com/program-schedule/`
},
parser({ content, date }) {
+ let PM = false
const programs = []
const items = parseItems(content, date)
items.forEach(item => {
@@ -28,7 +28,7 @@ module.exports = {
let start = parseStart(item, date)
if (start.hour() > 11) PM = true
if (start.hour() < 12 && PM) start = start.add(1, 'd')
- const stop = parseStop(item, date)
+ const stop = start.add(30, 'm')
if (programs.length) {
programs[programs.length - 1].stop = start
}
@@ -44,10 +44,6 @@ module.exports = {
}
}
-function parseStop(item, date) {
- return date.tz('Asia/Kabul').endOf('d').add(6, 'h')
-}
-
function parseStart(item, date) {
const time = `${date.format('MM/DD/YYYY')} ${item.start}`
diff --git a/sites/comteco.com.bo.channels.xml b/sites/comteco.com.bo.channels.xml
index 0b8ca901..dacd22d6 100755
--- a/sites/comteco.com.bo.channels.xml
+++ b/sites/comteco.com.bo.channels.xml
@@ -13,10 +13,12 @@
Bolivisión
Cadena A
Canal 24 Horas
+ Las Estrellas Latinoamérica
Caracol TV Internacional
Cartoon Network Latin America
Cinecanal Este
Cinemax Latinoamérica
+ María+Visión
CNN International Latin America
Cubavisión Internacional
De Película
@@ -27,8 +29,8 @@
Disney Junior España
Disney XD Sur
E! Latinoamérica
- El Gourmet Sur
El Trece Internacional
+ El Gourmet Sur
ESPN 2 América Latina
ESPN 3 América Latina
ESPN América Latina
@@ -44,10 +46,8 @@
History Latinoamérica
HTV
Investigation Discovery Latinoamérica
- Las Estrellas Latinoamérica
- María+Visión
- MTV Latino Norte
Más Chic Latinoamérica
+ MTV Latino Norte
Nat Geo Kids
National Geographic Sur
Nickelodeon Sur
@@ -58,23 +58,23 @@
SBT Internacional America
Sony Channel Sur
Space México
- Star Channel Latin America
Star Life Latin
+ Star Channel Latin America
Studio Universal América Latina
TBS América Latina
TCM América Latina
Telefe Internacional
Telemundo Internacional
+ Tlnovelas América
Telesur English
TLC Latinoamérica
- Tlnovelas América
- TNT América Latina
+ TV Perú Internacional
TNT Series Brasil
+ TNT América Latina
Tooncast
TV Chile
TV Culturas
TV Globo Internacional Américas
- TV Perú Internacional
TVE Internacional América
TyC Sports Internacional
Unitel Santa Cruz
diff --git a/sites/comteco.com.bo.config.js b/sites/comteco.com.bo.config.js
index 021c913e..4ae27407 100644
--- a/sites/comteco.com.bo.config.js
+++ b/sites/comteco.com.bo.config.js
@@ -11,9 +11,24 @@ dayjs.extend(customParseFormat)
module.exports = {
lang: 'es',
+ days: 3,
site: 'comteco.com.bo',
channels: 'comteco.com.bo.channels.xml',
output: '.gh-pages/guides/comteco.com.bo.guide.xml',
+ request: {
+ method: 'POST',
+ data: function ({ date }) {
+ const params = new URLSearchParams()
+ params.append('_method', 'POST')
+ params.append('fechaini', date.format('D/M/YYYY'))
+ params.append('fechafin', date.format('D/M/YYYY'))
+
+ return params
+ },
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded'
+ }
+ },
url: function ({ channel }) {
return `https://comteco.com.bo/pages/canales-y-programacion-tv/paquete-oro/${channel.site_id}`
},
@@ -31,7 +46,7 @@ module.exports = {
items.forEach(item => {
const title = parseTitle(item)
let start = parseStart(item, date)
- const stop = parseStop(item, date)
+ const stop = start.add(30, 'm')
if (programs.length) {
programs[programs.length - 1].stop = start
}
@@ -43,10 +58,6 @@ module.exports = {
}
}
-function parseStop(item, date) {
- return date.tz('America/La_Paz').endOf('d')
-}
-
function parseStart(item, date) {
let time = (
item.querySelector('div > div.col-xs-11 > p > span') || { textContent: '' }
diff --git a/sites/hd-plus.de.channels.xml b/sites/hd-plus.de.channels.xml
index 4b451b05..e5bebb4b 100755
--- a/sites/hd-plus.de.channels.xml
+++ b/sites/hd-plus.de.channels.xml
@@ -2,15 +2,15 @@
1-2-3 TV
- 13th Street Deutschland
3sat
+ 13th Street Deutschland
+ Augsburg TV
Anixe HD Serie
ARD Alpha
ARTE Deutsch
AstroTV
- ATV
ATV 2
- Augsburg TV
+ ATV
AXN Deutschland
Bayerisches Fernsehen Nord
Bibel TV
@@ -18,6 +18,7 @@
Boomerang Deutschland
Cartoon Network Deutschland
Channel 21
+ Stingray Classica
Comedy Central Deutschland
Das Erste
Deluxe Music
@@ -37,8 +38,8 @@
History Deutschland
Hope TV Deutsch
HR Fernsehen
- HSE
HSE Extra
+ HSE
JML Direct
Junior
Juwelo
@@ -54,15 +55,15 @@
MTV Live HD
MTV Music 24
München TV
+ Welt
N-TV
National Geographic Deutschland
National Geographic Wild Deutschland
- Nitro Deutschland
- NPO 1
NPO 2
+ NPO 1
One
- ORF 1
ORF 2
+ ORF 1
ORF III
ORF Sport +
Pearl TV
@@ -79,26 +80,27 @@
Romance TV Deutschland
RTL Crime Deutschland
RTL Deutschland
- RTL Living Deutschland
RTL Zwei Deutschland
- Sat. 1 Deutschland
+ RTL Living Deutschland
+ Nitro Deutschland
Sat. 1 Emotions
Sat. 1 Gold Deutschland
+ Sat. 1 Deutschland
Servus TV Deutschland
Sixx Deutschland
- Sky Atlantic
Sky Cinema Action
- Sky Cinema Hits
- Sky Cinema Nostalgie
- Sky Comedy
- Sky Krimi
- Sky Sport 1
- Sky Sport 2
- Sky Sport Austria 1
- Sky Sport Bundesliga 1
- Sky Sport Bundesliga 2
- Sky Sport Bundesliga 3
+ Sky Atlantic
Sky Sport Bundesliga 4
+ Sky Sport Bundesliga 3
+ Sky Sport Bundesliga 2
+ Sky Sport Bundesliga 1
+ Sky Comedy
+ Sky Cinema Hits
+ Sky Krimi
+ Sky Cinema Nostalgie
+ Sky Sport Austria 1
+ Sky Sport 2
+ Sky Sport 1
Sky Sport News
Sonnenklar TV
Sport 1
@@ -107,7 +109,6 @@
SR Fernsehen
SRF 1
SRF Zwei
- Stingray Classica
Super RTL Deutschland
Syfy Deutschland
Tagesschau 24
@@ -119,7 +120,6 @@
TVA Ostbayern
Universal TV Deutschland
Vox Deutschland
- Welt
Welt der Wunder TV
ZDF
ZDF Info
diff --git a/sites/hd-plus.de.config.js b/sites/hd-plus.de.config.js
index e69ec966..50029c41 100644
--- a/sites/hd-plus.de.config.js
+++ b/sites/hd-plus.de.config.js
@@ -11,12 +11,13 @@ dayjs.extend(customParseFormat)
module.exports = {
lang: 'de',
+ days: 3,
site: 'hd-plus.de',
channels: 'hd-plus.de.channels.xml',
output: '.gh-pages/guides/hd-plus.de.guide.xml',
url({ date, channel }) {
- const now = dayjs()
- const day = now.diff(date, 'd')
+ const today = dayjs().utc().startOf('d')
+ const day = date.diff(today, 'd')
return `https://www.hd-plus.de/epg/channel/${channel.site_id}?d=${day}`
},
@@ -32,7 +33,7 @@ module.exports = {
items.forEach(item => {
const title = parseTitle(item)
let start = parseStart(item, date)
- const stop = parseStop(item, date)
+ const stop = start.add(1, 'h')
if (programs.length) {
programs[programs.length - 1].stop = start
}
@@ -44,10 +45,6 @@ module.exports = {
}
}
-function parseStop(item, date) {
- return date.endOf('d')
-}
-
function parseStart(item, date) {
let time = (item.querySelector('td:nth-child(2)') || { textContent: '' }).textContent
time = time.split(' ').pop()
diff --git a/sites/m.tv.sms.cz.channels.xml b/sites/m.tv.sms.cz.channels.xml
index 90bd7ae0..3b35035f 100755
--- a/sites/m.tv.sms.cz.channels.xml
+++ b/sites/m.tv.sms.cz.channels.xml
@@ -1,8 +1,7 @@
- #0
- 360 Tune Box
+ Perviy kanal
3sat
4 Fun Dance
4 Fun Kids
@@ -10,116 +9,132 @@
5 Kanal
7D7
8 Kanal International
- Adventure
- Adventure Czechia
- Alibi Ireland
- Aljazeera Balkans
- Aljazeera Channel
- Aljazeera English
+ 360 Tune Box
+ Slágr 2
+ Slágr Premium
+ Slágr TV
+ Tuki TV
+ CT 1
+ CT 2
+ CT 3
+ CT Sport
+ CT 24
+ CT :D
+ CT art
+ Ócko
+ Ócko Star
AMC Cesko
- Animal Planet Europe
- Animal Planet UK
Anixe HD Serie
+ Das Erste
+ One
ARD Alpha
- Arena Sport 1
- Arena Sport 2
- Arirang World
ARTE Deutsch
ARTE Français
ATV
ATV
- Auto Motor und Sport
+ AXN Czech Republic
AXN Black
AXN Central Europe
- AXN Czech Republic
AXN White
- Baby TV Europe
- Barrandov Krimi
+ Adventure Czechia
+ Adventure
+ Aljazeera English
+ Aljazeera Balkans
+ Alibi Ireland
+ Aljazeera Channel
+ Animal Planet Europe
+ Animal Planet UK
+ Arena Sport 1
+ Arena Sport 2
+ Arirang World
+ Auto Motor und Sport
+ Body in Balance UK
BBC Entertainment Europe
BBC Four
BBC One
BBC Two
BBC World News Europe
- Belarus 24
+ BN TV Satelitski
+ BVN Europa
+ Baby TV Europe
+ TV Barrandov
+ Barrandov Krimi
Biznes 24
Bloomberg TV Europe
Blue Hustler Europe
- BN TV Satelitski
Bober International
- Body in Balance UK
Boomerang Central & Eastern Europe
+ Stingray Classica
Brazzers TV Europe
- BVN Europa
- Canal + Domo
- Canal + Séries France
- Canal 24 Horas
- Cartoon Network Central & Eastern Europe
- Cartoon Network Polska
- Cartoon Network UK
+ Stingray CMusic
CBBC
CBS Reality Europe
CCTV 4 Europe
CCTV 9
CGTN Arabic
- CGTN Español
- CGTN Français
CGTN Russkij
- Channel 5
- Cinemax 2 Central Europe
- Cinemax Central Europe
- Clan TVE
- Club MTV
+ TV Central
CMC TV
CNBC Europe
CNL Evropa
CNN International Europe
CNN Prima News
- Comedy Central Family Hungary
- Comedy Central Hungary
- Cool TV
- Credo TV
- Crime + Investigation UK
+ CGTN Español
+ CGTN Français
CS Film
CS History
CS Horror
CS Mystery
- CT 1
- CT 2
- CT 24
- CT 3
- CT :D
- CT art
- CT Sport
- Dajto
- Das Erste
+ Canal 24 Horas
+ Movistar Acción
+ Movistar Comedia
+ Movistar Drama
+ Movistar Deportes
+ Canal + Domo
+ Movistar Estrenos
+ Movistar Golf
+ Canal + Séries France
+ Karusel International
+ Cartoon Network Central & Eastern Europe
+ Cartoon Network Polska
+ Cartoon Network UK
+ #0
+ Channel 5
+ Cinemax 2 Central Europe
+ Cinemax Central Europe
+ Clan TVE
+ Club MTV
+ Comedy Central Hungary
+ Comedy Central Family Hungary
+ Cool TV
+ Credo TV
+ Crime + Investigation UK
+ Stingray Djazz
+ DM Sat
+ DTX East Europe
Dave UK
Deluxe Lounge
Deluxe Music
+ DW Deutsch
Digi Sport 1 Hungary
- Digi Sport 1 Slovakia
Digi Sport 2 Hungary
- Digi Sport 2 Slovakia
- Digi Sport 3 Slovakia
Discovery Channel Central Europe
Discovery Science
- Disney Channel Deutschland
Disney Channel Hungary & Czechia
- DM Sat
+ Disney Channel Deutschland
DocuBox HD
Dom Kino
Dom Kino Premium International
+ TV Doma
Doma Hrvatska
Dorcel TV
Dorcel XXX
- DTX East Europe
- Duck TV Plus
- Duck TV SD
Duna TV
Duna World
Dusk
- DW Deutsch
- E! Europe
E4 UK
+ E! Europe
+ EWTN Europe
Eden
English Club TV
Enter Film
@@ -134,25 +149,27 @@
EuroNews Russkiy
Eurosport 1
Eurosport 2
- EWTN Europe
Extasy TV
Extreme Sports Channel
+ Fem 3
+ Fox Crime Hrvatska
+ Fox Life Hrvatska
+ Fox Movies Hrvatska
FashionBox HD
FashionTV Europe
FashionTV HD Europe
Fast & FunBox HD
- Fem 3
FightBox HD
+ Film 4
Film + Czechia
Film + Hungary
- Film 4
Film Café Hungary
Film Europe
Film Europe +
Film Mánia
- FilmBox Action
FilmBox Arthouse Worldwide
FilmBox Central Europe
+ FilmBox Action
FilmBox Extra HD Czechia & Hungary
FilmBox Extra HD Polska
FilmBox Family
@@ -161,15 +178,12 @@
FilmBox Stars Hungary
Fokus TV
Folklorika
- Fox Crime Hrvatska
- Fox Life Hrvatska
- Fox Movies Hrvatska
France 2
- France 24 English
- France 24 Français
France 3
France 4
France 5
+ France 24 Français
+ France 24 English
Fuel TV
Galaxy 4
Gametoon
@@ -180,59 +194,71 @@
Gulli
Gulli Girl
H!t Music Channel Hungary
- Ha Ha
+ Hír TV
HBO 2 Central Europe
HBO 3 Central Europe
HBO Czechia
- History Europe
HNTV
- Hobby TV
- Home TV
HR Fernsehen
HRT 1
HRT 2
HRT 3
HRT 4
HRT International
+ Ha Ha
+ Sky History 2
+ History Europe
+ Hobby TV
+ Home TV
Hustler HD Europe
Hustler TV Europe
- Hír TV
+ ITV 2
+ ITV 3
+ ITV 4
+ ITV London
Inter
Investigation Discovery Europe
Iris
Italia 1
Italia 2
- ITV 2
- ITV 3
- ITV 4
- ITV London
Izaura TV
- JimJam Europe
+ TV Joj
Joj Cinema
Joj Family
Joj Plus
+ JimJam Europe
Jojko
Jugoton TV
Jurnal TV
K2
- Kabel Eins Deutschland
- Karusel International
KBS World
KHL TV
+ Kabel Eins Deutschland
+ Qazaq TV
KIKA
Kino Barrandov
Kino Polska
Kino TV
La 5
+ TVE La 1 Madrid
+ TVE La 2
Lala TV
Leo TV
+ TV 2 Séf
Lounge TV
Love Nature
+ TV Lux
Luxe TV
M1
M2
M4 Sport
M5
+ MTV España
+ MTV Hungary
+ MTV Hits Europe
+ MTV Live HD
+ MTV UK
+ TV Markíza
Markíza International
Mediaset Extra
Mezzo
@@ -241,41 +267,32 @@
Minimax Czechia
Minimax Hungary
More 4 UK
- Movistar Acción
- Movistar Comedia
- Movistar Deportes
- Movistar Drama
- Movistar Estrenos
- Movistar Golf
- MTV España
- MTV Hits Europe
- MTV Hungary
- MTV Live HD
- MTV UK
Music Box Ukraina
Music Channel Hungary
Music Channel Romania
- Muzika Pervogo
Muzsika TV
- MyZen TV
- MyZen TV 4K
- N-TV
+ Muzika Pervogo
NASA TV Public
- National Geographic Hrvatska
+ NBA TV
+ NHK World Japan
+ NPO 1
+ NPO 2
+ NPO 3
+ NTN
National Geographic Hungary & Czechia
+ National Geographic Hrvatska
National Geographic UK
National Geographic Wild Europe
Nautical Channel
- NBA TV
NetViet
- NHK World Japan
- Nick Jr Central & Eastern Europe
Nick Jr Czechia
+ Nick Jr Central & Eastern Europe
Nickelodeon Czechia
Nickelodeon UK
Nicktoons Czechia
- Nitro Deutschland
+ TV Noe
Nova 2
+ TV Nova
Nova Action
Nova Cinema
Nova Gold
@@ -284,35 +301,36 @@
Nova Sport 2
Nova TV
Novela TV
- NPO 1
- NPO 2
- NPO 3
- NTN
Nuta TV
- One
ORF 1
ORF 2
ORF III
Outdoor Channel
+ ProSieben Deutschland
+ TV Paprika Czech Republic
+ TV Paprika
Paramount Network Czechia
Park TV
Passion XXX
Pax TV
- Perviy kanal
Phoenix
Pick UK
Playboy TV Europe
Poehali! International
Polo TV
Polonia 1
- Polsat
+ TVP Polonia
Polsat 2
+ Polsat
Polsat Café
- Polsat News
Polsat News 2
+ Polsat News
Polsat Play
Polsat Sport
Polsat Sport Extra
+ Viasat Explore Polsat
+ Viasat History Polsat
+ Viasat Nature Polsat
Pornhub TV
Power TV
Premier Sport
@@ -324,14 +342,29 @@
Prima Plus
Prima Zoom
Private TV
- ProSieben Deutschland
Puls 2
- Qazaq TV
+ RBB Berlin
+ Relax
+ RTL Zwei Deutschland
+ RTL 2 Hrvatska
+ RTL II
+ RTL 4
+ RTL 5
+ RTL Deutschland
+ RTL +
+ RTL Hrvatska
+ RTL Crime Hrvatska
+ RTL Gold
+ RTL Kockica
+ RTL Living Hrvatska
+ Nitro Deutschland
+ RTL Passion Hrvatska
+ RTL Klub
+ RTR Planeta
+ RTVi Europe
Racing TV International
- Rai 1
- Rai 2
- Rai 3
Rai 5
+ Rai 2
Rai Gulp
Rai Movie
Rai News 24
@@ -339,59 +372,44 @@
Rai Sport 1
Rai Sport 2
Rai Storia
+ Rai 3
+ Rai 1
Rai Yoyo
- RBB Berlin
Reality Kings TV
Rebel
Red Bull TV
Red Carpet
Redlight HD
- Regionální TV
- Relax
Rete 4
Retro Music TV
+ TV Romana
Rossiya 24
- RT Documentary
RT News
+ RT Documentary
RTG TV
- RTL +
- RTL 2 Hrvatska
- RTL 4
- RTL 5
- RTL Crime Hrvatska
- RTL Deutschland
- RTL Gold
- RTL Hrvatska
- RTL II
- RTL Klub
- RTL Kockica
- RTL Living Hrvatska
- RTL Passion Hrvatska
- RTL Zwei Deutschland
- RTR Planeta
- RTVi Europe
- RTVS 1
- RTVS 2
Sat. 1 Deutschland
Sat. 1 Gold Deutschland
Senzi
+ RTVS 1
+ RTVS 2
+ TV Severka
+ TV Seznam
Sixx Deutschland
+ Sky One UK
Sky Arts UK
Sky Atlantic UK
+ Sky Witness UK
Sky Cinema Action
+ Sky Comedy UK
+ Sky Crime
Sky Cinema Drama
Sky Cinema Family
Sky Cinema Greats
- Sky Cinema Hits
Sky Cinema Premiere
- Sky Cinema Sci-fi Horror
Sky Cinema Select
- Sky Comedy UK
- Sky Crime
- Sky History 2
- Sky News International
+ Sky Cinema Hits
Sky News UK
- Sky One UK
+ Sky Cinema Sci-fi Horror
Sky Sports Cricket
Sky Sports F1
Sky Sports Football UK
@@ -399,11 +417,10 @@
Sky Sports Main Event UK
Sky Sports News UK
Sky Sports Premier League UK
- Sky Witness UK
+ Sky News International
Sláger TV
- Slágr 2
- Slágr Premium
- Slágr TV
+ TV Slovenija 1
+ TV Slovenija 2
Sony Max Hungary
Sony Movie Channel Hungary
Sorozat +
@@ -416,110 +433,83 @@
Sport 2 Hungary
Sport 5
Stars TV
- Stingray Classica
- Stingray CMusic
- Stingray Djazz
- Stingray IConcerts
Stopklatka TV
Story 4
+ SuperOne HD
Super Polsat
Super RTL Deutschland
Super TV 2
- SuperOne HD
Superyacht TV
Syfy UK
TA 3
- Tagesschau 24
TBN Polska
TCM Central & Eastern Europe
- Telecafé International
- Teledeporte
- Telekanal O!
TF 1
- The Fishing & Hunting Channel
- Tiji Russia
TLC Pan Regional
TMC
- Trace Sport Stars
- Travel Channel Europe
- Travelxp HD Europe
TTV
- Tuki TV
- TV 1000 Balkan
TV 2
- TV 2 Séf
- TV 2000
- TV 4
- TV 4
- TV 6
- TV 7
- TV Barrandov
- TV Central
- TV Doma
- TV Joj
- TV Lux
- TV Markíza
- TV Noe
- TV Nova
- TV Osem
- TV Paprika
- TV Paprika Czech Republic
- TV Povazie
- TV Puls
- TV Republika
- TV Romana
- TV Severka
- TV Seznam
- TV Slovenija 1
- TV Slovenija 2
- TV TRWAM
- TV Vega
- TV Východ
TV3
TV3CAT
+ TV 4
+ TV 4
TV5Monde Europe
+ TV 6
+ TV 7
+ TV Osem
+ TV 1000 Balkan
+ TV 2000
+ Belarus 24
+ Dajto
+ TV Povazie
+ TV Puls
+ TV TRWAM
TVC
TVCG Sat
TVE Internacional Europa
- TVE La 1 Madrid
- TVE La 2
- TVN
- TVN 24
TVN 7
+ TVN 24
+ TVN
TVN Turbo
TVP 1
TVP 2
- TVP 3 Warszawa
TVP ABC
TVP HD
TVP Historia
TVP Info
TVP Kultura
- TVP Polonia
TVP Rozrywka
TVP Seriale
TVP Sport
+ TVP 3 Warszawa
TVS
+ Telecafé International
+ Teledeporte
+ Telekanal O!
+ TV Východ
+ TV Republika
+ The Fishing & Hunting Channel
+ Tiji Russia
+ Trace Sport Stars
+ Travel Channel Europe
+ Travelxp HD Europe
UA TV
- Ukraïna 24
Up Network
+ Ukraïna 24
VH1 Europe
- Viasat Explore East
- Viasat Explore Polsat
- Viasat History
- Viasat History
- Viasat History Polsat
- Viasat Nature East
- Viasat Nature Polsat
- Vintage TV
Vox Deutschland
VTV 1
VTV 2
VTV 3
VTV 4
- W Polsce PL
- Water Planet
+ TV Vega
+ Viasat Explore East
+ Viasat History
+ Viasat History
+ Viasat Nature East
+ Vintage TV
Wau TV
+ Water Planet
Welt
Wild TV
Wild TV
@@ -529,7 +519,14 @@
ZDF Neo
Zoom
Zoom TV
- Ócko
- Ócko Star
+ Duck TV SD
+ Duck TV Plus
+ Stingray IConcerts
+ MyZen TV 4K
+ MyZen TV
+ N-TV
+ Regionální TV
+ Tagesschau 24
+ W Polsce PL
\ No newline at end of file
diff --git a/sites/m.tv.sms.cz.config.js b/sites/m.tv.sms.cz.config.js
index e820ef0d..c0fae4ac 100644
--- a/sites/m.tv.sms.cz.config.js
+++ b/sites/m.tv.sms.cz.config.js
@@ -10,9 +10,9 @@ dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
-let PM = false
module.exports = {
lang: 'cs',
+ days: 3,
site: 'm.tv.sms.cz',
channels: 'm.tv.sms.cz.channels.xml',
output: '.gh-pages/guides/m.tv.sms.cz.guide.xml',
@@ -28,6 +28,7 @@ module.exports = {
return img ? img.src : null
},
parser: function ({ buffer, date }) {
+ let PM = false
const programs = []
const items = parseItems(buffer)
items.forEach((item, i) => {
@@ -36,7 +37,7 @@ module.exports = {
let start = parseStart(item, date)
if (start.hour() > 11) PM = true
if (start.hour() < 12 && PM) start = start.add(1, 'd')
- const stop = parseStop(item, date)
+ const stop = start.add(1, 'h')
if (programs.length) {
programs[programs.length - 1].stop = start
}
@@ -53,10 +54,6 @@ module.exports = {
}
}
-function parseStop(item, date) {
- return date.tz('Europe/Prague').endOf('d').add(6, 'h')
-}
-
function parseStart(item, date) {
let time = (item.querySelector('div > span') || { textContent: '' }).textContent.trim()
diff --git a/sites/mi.tv.channels.xml b/sites/mi.tv.channels.xml
index 5114bf78..2691d59e 100755
--- a/sites/mi.tv.channels.xml
+++ b/sites/mi.tv.channels.xml
@@ -2,14 +2,12 @@
A&E Brasil
- ADN 40
Agro+
Amazon Sat
AMC Brasil
- América TV
Animal Planet Brasil
- Argentinísima Satelital
Arte 1
+ TV Assembléia Ceará
AXN Brazil
Baby TV Brasil
Band Amazonas
@@ -21,35 +19,30 @@
Bis
Bloomberg TV Brazil
Boa Vontade TV
- Boas Novas
Boomerang Brasil
- Canal 26
- Canal Antigua
Canal Brasil
- Canal Capital
Canal do Boi
- Canal Futura
- Canal Off
Canal Rural
- Canal Viva
- Caracol TV Internacional
+ Smithsonian Channel Latin America
+ TV Canção Nova
Cartoon Network Brasil
- CCI Channel
- CDTV
CGTN
Chef TV
CineBrasil TV
Cinemax Brasil
+ CNN International Latin America
CNN Brasil
CNN en Español
CNN International Asia Pacific
- CNN International Latin America
+ Rede CNT Rio de Janeiro
Combate
Comedy Central Brasil
- Conmebol TV 1
- Conmebol TV 2
Conmebol TV 3
+ Conmebol TV 2
+ Conmebol TV 1
+ TV Cultura Nacional
Curta!
+ DW Deutsch
Discovery Channel Brasil
Discovery Home & Health Brasil
Discovery Kids Brasil
@@ -61,37 +54,50 @@
Disney Junior Brasil
Disney XD Brasil
Dog TV
- DW Deutsch
E! Brasil
+ TV Paraná Turismo
EPTV Sul de Minas
ESPN 2 Brasil
ESPN Brasil
ESPN Extra Brasil
+ TNT Sports Argentina
Eurochannel
FashionTV Brazil
Film & Arts Brasil
Fish TV
Food Network Brasil
+ Star Channel Brasil
+ Star Life Brasil
Fox News Channel
+ Star Hits Brasil
Fox Sports 2 Brasil
Fox Sports Brasil
+ Canal Futura
FX Brasil
- Garage TV
+ Rede Amazônica
+ TV Liberal
+ TV Globo Brasília
+ Rede Globo
Globo News
+ TV Globo Nordeste
+ RBS TV RS
+ TV Globo Nordeste
+ TV Globo Rio de Janeiro
+ TV Globo São Paulo
+ TV Bahia
+ Mais na Tela
Gloob
Gloobinho
GNT
Golf Channel Latin America
+ History 2 Brasil
HBO 2 Brasil
HBO Brasil
HBO Family Brasil
- HBO Mundi Brasil
- HBO Pop Brasil
HBO Signature Brasil
- HBO Xtreme Brasil
HGTV Brasil
- History 2 Brasil
History Brasil
+ TV Horizonte
I-Sat Brasil
Ideal TV
Inter TV Alto Litoral
@@ -101,17 +107,18 @@
Investigação Discovery Brasil
Lifetime Brasil
Loading
- Mais na Tela
+ HBO Mundi Brasil
+ HBO Pop Brasil
+ HBO Xtreme Brasil
Megapix
+ Rede Meio Norte
MTV Brasil
MTV Live HD
Multishow
Music Box Brazil
- MusicTop
Nat Geo Kids Brasil
- National Geographic Brasil
National Geographic Wild Brasil
- Net TV
+ National Geographic Brasil
NHK World Japan
Nick Jr Brasil
Nickelodeon Brasil
@@ -120,54 +127,50 @@
NSC TV Criciúma
NSC TV Florianópolis
NSC TV Joinville
- Once México
- Panamericana TV
+ Canal Off
Playboy TV Brazil
Premiere Clubes
Prime Box Brazil
+ TV Rá Tim Bum
Rai Italia Nord America
RBA TV
RBI TV
RBS TV Porto Alegre
- RBS TV RS
RBS TV Santa Maria
- Record Belém
Record Cabrália
+ Record News
Record Goiás
Record Itapoan
Record Minas
- Record News
- Record Paulista
Record Rio
+ Record Belém
+ Record Paulista
Record São Paulo
Rede 21
- Rede Amazônica
Rede Amazônica Manaus
+ Boas Novas
Rede Brasil
- Rede CNT Rio de Janeiro
Rede Família
- Rede Globo
- Rede Gospel
+ TV Gazeta
Rede Gênesis
- Rede Internacional de TV
+ Rede Gospel
Rede Massa
- Rede Meio Norte
Rede Minas
- Rede Super
Rede Século 21
+ Rede Super
Rede TV!
- Rede TV! Rondônia
Rede Vida
Rede Vida
+ Rede TV! Rondônia
+ Rede Internacional de TV
RPC TV Curitiba
RPC TV Foz do Iguaçu
RPC TV Maringá
RPC TV Paranavaí
RPC TV Ponta Grossa
RTP Internacional América
- SBN International
- SBT MS
SBT Nacional
+ SBT MS
SBT Pará
SBT Rio
SESC TV
@@ -175,22 +178,16 @@
Sexy Hot
SIC Internacional
SIC TV
- Smithsonian Channel Latin America
+ SBN International
Sony Channel Brasil
Space Brasil
- SporTV
SporTV 2
SporTV 3
- Star Channel Brasil
- Star Hits Brasil
- Star Life Brasil
+ SporTV
Studio Universal Brasil
Syfy Brasil
TBS Brasil
TCM Brasil
- Tele Vid
- Telecaribe
- Teleceiba
Telecine Action
Telecine Cult
Telecine Fun
@@ -199,68 +196,48 @@
Telecine Touch
Telefe
Telefe Internacional
- Telefe Rosario
- Telemax
- Telepacífico
- Teletrak
Terra Viva
- Tierramia TV
TLC Brasil
TNT Brasil
TNT Series Brasil
- TNT Sports Argentina
Trace Brazuca
Travel Box Brazil
Tru TV Brasil
+ TV5Monde Amérique Latine
TV A Crítica
TV ALESP
TV Amapá
TV Antena 10
TV Aparecida
TV Aratu
- TV Assembléia Ceará
TV Assembléia Minas Gerais
TV Atalaia
- TV Bahia
TV Brasil
TV Cabo Branco
- TV Canção Nova
+ TV Câmara
TV Capixaba
TV Ceará
TV Centro América Cuiabá
TV Cidade São Luíz
TV Clube
TV Correio
- TV Cultura Nacional
- TV Câmara
- TV Difusora São Luís
TV Diário
+ TV Difusora São Luís
TV Em Tempo
TV Escola
- TV Gazeta
TV Gazeta
- TV Globo Brasília
- TV Globo Nordeste
- TV Globo Nordeste
- TV Globo Rio de Janeiro
- TV Globo São Paulo
TV Guará
- TV Horizonte
TV Iguaçu
TV Jangadeiro
TV Justiça
- TV Liberal
TV Liberal
TV Novo Tempo Brasil
TV Pajuçara
TV Pampa
TV Paranaíba
- TV Paraná Turismo
- TV Perú Internacional
TV Ponta Negra
TV Rio Sul
TV Rondônia
- TV Rá Tim Bum
TV Santa Cruz
TV Senado
TV Sergipe
@@ -270,13 +247,13 @@
TV União Fortaleza
TV Verdes Mares
TV Verdes Mares Cariri
- TV5Monde Amérique Latine
TVE
TVE Bahia
TVT
Universal TV Brasil
Univesp TV
Venus
+ Canal Viva
Warner Channel Brasil
WooHoo
ZooMoo Brasil
diff --git a/sites/mi.tv.config.js b/sites/mi.tv.config.js
index 27820789..ca1a3676 100644
--- a/sites/mi.tv.config.js
+++ b/sites/mi.tv.config.js
@@ -9,15 +9,16 @@ dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
-let PM = false
module.exports = {
lang: 'pt',
+ days: 3,
site: 'mi.tv',
channels: 'mi.tv.channels.xml',
output: '.gh-pages/guides/mi.tv.guide.xml',
url({ date, channel }) {
const [country, id] = channel.site_id.split('#')
- return `https://mi.tv/${country}/async/channel/${id}/${date.format('YYYY-MM-DD')}/180`
+
+ return `https://mi.tv/${country}/async/channel/${id}/${date.format('YYYY-MM-DD')}/-180`
},
logo({ content }) {
const dom = new JSDOM(content)
@@ -25,16 +26,16 @@ module.exports = {
return img ? img.src : null
},
parser({ content, date }) {
+ let PM = false
const programs = []
const items = parseItems(content)
-
items.forEach(item => {
const title = parseTitle(item)
let start = parseStart(item, date)
if (!start) return
if (start.hour() > 11) PM = true
if (start.hour() < 12 && PM) start = start.add(1, 'd')
- const stop = parseStop(item, start)
+ const stop = start.add(1, 'h')
if (programs.length) {
programs[programs.length - 1].stop = start
}
@@ -50,10 +51,6 @@ module.exports = {
}
}
-function parseStop(item, date) {
- return date.endOf('d').add(6, 'h')
-}
-
function parseStart(item, date) {
let time = (item.querySelector('a > div.content > span.time') || { textContent: '' }).textContent
if (!time) return null
diff --git a/sites/ontvtonight.com.channels.xml b/sites/ontvtonight.com.channels.xml
index 150e832e..78dfb0fc 100755
--- a/sites/ontvtonight.com.channels.xml
+++ b/sites/ontvtonight.com.channels.xml
@@ -1,125 +1,126 @@
- 10 Bold
+ Outdoor Channel
+ MavTV
+ DW English
+ God TV UK
+ Sky News Arabia
+ BBC Arabic
+ Seven
+ 7 Two
+ 7 mate
+ 9 Go!
10 Peach
- 4Music
- 4Seven
- 5 Select
+ ABC TV
+ ABC News
+ SBS World Movies
+ 10 Bold
+ NITV
+ 9 Life
+ 7 flix
+ Racing.com
+ Australian Christian Channel
+ TG 4
+ RTÉ News
+ Oireachtas TV
5 Star
5 USA
- 7 flix
- 7 mate
- 7 Two
- 9 Go!
- 9 Life
- 92 News
- ABC News
- ABC TV
- Ahlulbayt TV
- Akaal Channel UK
Aljazeera English
- BBC Arabic
- BBC Four
- BBC News
- BBC One
+ Sky Arts UK
BBC One London
BBC One Scotland
- BBC Parliament
- BBC Red Button 1
+ BBC News
BBC Two
- Blaze UK
- Box Hits
- Brit Asia TV
- CBBC
+ BBC Red Button 1
+ BBC Four
CBeebies UK
- CBS Drama UK
- CBS Justice UK
- CBS Reality UK
- Challenge UK
+ BBC Parliament
+ CBBC
Channel 5
- Channel 5 +1
CITV
- Court TV UK
- Create and Craft
- Cruise 1st TV
- Dave ja vu
+ Together TV
Dave UK
- DMAX UK
- Drama UK
- Drama UK +1
- DW English
- E4 UK
- E4 UK +1
- Eman Channel
- Film 4 UK
- Film 4 UK +1
- Food Network UK
- Forces TV
- FreeSports
- Gems TV
- God TV UK
- HGTV UK
- Horror Channel UK
- Ideal Extra
- Ideal World
- ITV 2
- ITV 2 +1
- ITV 3
- ITV 3 +1
- ITV 4
- ITV 4 +1
- ITV Be
- ITV London
- Jewellery Maker
- Kanshi TV
- KTO
- London Live
- MavTV
- More 4 UK
- NITV
- Now 80's
- Oireachtas TV
- Outdoor Channel
- Paramount Network UK
- PBS America
- Pick UK
- Pop
- Quest Red UK
- Quest Red UK +1
Quest UK
- Quest UK +1
- QVC Beauty
- QVC Style UK
+ E4 UK +1
+ E4 UK
+ Film 4 UK +1
+ Challenge UK
+ Film 4 UK
+ 4Music
+ ITV 2 +1
+ Ideal World
+ ITV London
+ ITV 2
+ ITV 3
+ ITV 4
+ KTO
+ More 4 UK
QVC UK
- Racing TV
- Racing.com
- Really UK
- RT News
RT UK
- RTÉ News
+ Sky One UK
+ Pick UK
+ The Box UK
+ Yesterday
+ HGTV UK
+ Really UK
+ BBC One
+ Food Network UK
+ Gems TV
+ Create and Craft
+ Horror Channel UK
+ Pop
+ Racing TV
+ Tiny Pop
+ ITV 3 +1
+ ITV 4 +1
+ Sony Movies Classic
+ Ahlulbayt TV
+ CBS Justice UK
+ CBS Drama UK
+ Sony Movies Action
+ Sony Channel UK
+ Quest UK +1
+ Yesterday +1
+ Brit Asia TV
+ Ideal Extra
+ QVC Beauty
Sangat TV
SBN International
- SBS World Movies
- Seven
- Sky Arts UK
- Sky News Arabia
- Sky One UK
- Smithsonian Channel UK
- Sony Channel UK
- Sony Movies Action
- Sony Movies Classic
+ PBS America
+ Channel 5 +1
+ Dave ja vu
+ 4Seven
Sony Movies UK
Sony Movies UK +1
- Spotlight TV
+ RT News
+ QVC Style UK
+ Drama UK
+ Akaal Channel UK
+ Now 80's
+ DMAX UK
+ 5 Select
+ London Live
+ Forces TV
+ ITV Be
+ Eman Channel
Talking Pictures TV
- TBN UK
- TG 4
- The Box UK
- Tiny Pop
TJC
- Together TV
- Yesterday
- Yesterday +1
+ CBS Reality UK
+ Box Hits
+ Blaze UK
+ Jewellery Maker
+ Quest Red UK
+ Quest Red UK +1
+ Kanshi TV
+ FreeSports
+ 92 News
+ Paramount Network UK
+ Smithsonian Channel UK
+ Spotlight TV
+ TBN UK
+ Drama UK +1
+ Cruise 1st TV
+ Court TV UK
\ No newline at end of file
diff --git a/sites/ontvtonight.com.config.js b/sites/ontvtonight.com.config.js
index 07f10f08..eb8e1482 100644
--- a/sites/ontvtonight.com.config.js
+++ b/sites/ontvtonight.com.config.js
@@ -9,20 +9,25 @@ dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
+const tz = {
+ au: 'Australia/Sydney',
+ ie: 'Europe/Dublin',
+ uk: 'Europe/London'
+}
+
module.exports = {
lang: 'en',
+ days: 3,
site: 'ontvtonight.com',
channels: 'ontvtonight.com.channels.xml',
output: '.gh-pages/guides/ontvtonight.com.guide.xml',
url: function ({ date, channel }) {
const [region, id] = channel.site_id.split('#')
- return region
- ? `https://www.ontvtonight.com/${region}/guide/listings/channel/${id}.html?dt=${date.format(
- 'YYYY-MM-DD'
- )}`
- : `https://www.ontvtonight.com/guide/listings/channel/${id}.html?dt=${date.format(
- 'YYYY-MM-DD'
- )}`
+ let url = `https://www.ontvtonight.com`
+ if (region) url += `/${region}`
+ url += `/guide/listings/channel/${id}.html?dt=${date.format('YYYY-MM-DD')}`
+
+ return url
},
logo: function ({ content }) {
const dom = new JSDOM(content)
@@ -32,13 +37,13 @@ module.exports = {
return img ? img.src : null
},
- parser: function ({ content, date }) {
+ parser: function ({ content, date, channel }) {
const programs = []
const items = parseItems(content)
items.forEach(item => {
const title = parseTitle(item)
- const start = parseStart(item, date)
- const stop = parseStop(item, date)
+ const start = parseStart(item, date, channel)
+ const stop = start.add(1, 'h')
if (title && start) {
if (programs.length) {
@@ -57,15 +62,14 @@ module.exports = {
}
}
-function parseStop(item, date) {
- return date.tz('Europe/London').endOf('d')
-}
+function parseStart(item, date, channel) {
+ const [region, id] = channel.site_id.split('#')
+ const timezone = region ? tz[region] : tz['uk']
-function parseStart(item, date) {
let time = (item.querySelector('td:nth-child(1) > h5') || { textContent: '' }).textContent.trim()
time = `${date.format('DD/MM/YYYY')} ${time.toUpperCase()}`
- return dayjs.tz(time, 'DD/MM/YYYY H:mm A', 'Europe/London')
+ return dayjs.tz(time, 'DD/MM/YYYY H:mm A', timezone)
}
function parseTitle(item) {
diff --git a/sites/programtv.onet.pl.channels.xml b/sites/programtv.onet.pl.channels.xml
index 270e4e3f..4f158e68 100755
--- a/sites/programtv.onet.pl.channels.xml
+++ b/sites/programtv.onet.pl.channels.xml
@@ -1,37 +1,38 @@
- 13 Ulica
- 13th Street Deutschland
- 360 Tune Box
3sat
4 Fun Dance
4 Fun TV
+ 13 Ulica
+ 13th Street Deutschland
+ 360 Tune Box
+ Automoto la chaîne
Active Family
Adult Channel
Adventure
- Ale Kino +
Aljazeera English
- AMC Polska
+ Ale Kino +
Animal Planet Polska
ARD Alpha
Arirang World
ARTE Deutsch
ATV
- Automoto la chaîne
- AXN Black Polska
AXN Polska
+ AXN Black Polska
AXN Spin Polska
AXN White Polska
Baby TV Europe
BabyFirst TV
BBC Brit Polska
+ CBeebies Polska
BBC Earth Polska
BBC First Polska
BBC Lifestyle Polska
BBC World News Europe
Beate Uhse TV
Belarus 24
+ Één
Belsat TV
Bibel TV
Bloomberg TV Europe
@@ -39,81 +40,85 @@
Bollywood HD
Boomerang Polska
Brazzers TV Europe
+ Stingray CMusic
+ Canal + Premium
Canal + 4K Ultra HD
+ Canal + »1
Canal + Dokument
- Canal + Domo
Canal + Family Polska
Canal + Film
- Canal + Kuchnia
- Canal + Premium
Canal + Seriale
- Canal + Sport 2 Polska
- Canal + Sport 3 Polska
- Canal + Sport 4 Polska
Canal + Sport Polska
- Canal + »1
+ Canal + Sport 4 Polska
+ Canal + Sport 3 Polska
+ Canal + Sport 2 Polska
Cartoon Network Polska
- CBeebies Polska
CBS Europa
CBS Reality Polska
CGTN
- Cinemax 2 Central Europe
+ Perviy kanal Europa
+ Crime + Investigation Polsat
Cinemax Central Europe
- Club MTV
+ Cinemax 2 Central Europe
+ Stingray Classica
CNBC Europe
CNN International Europe
Comedy Central Polska
- Crime + Investigation Polsat
- CT 1
CT 2
+ CT 1
Da Vinci Polska
Das Erste
Deutsches Musik Fernsehen
Disco Polo Music
- Discovery Channel Deutschland
Discovery Channel Polska
+ Discovery Channel Deutschland
Discovery Historia
Discovery Life Polska
Discovery Science Polska
+ DTX Polska
Disney Channel Polska
Disney Junior Türkiye & Polska
Disney XD Polska
+ Stingray Djazz
DMAX Deutschland
DocuBox HD
+ Canal + Domo
Dorcel TV
Dorcel XXX
- DR 1
DR 2
- DTX Polska
- Duck TV HD
+ DR 1
Duck TV SD
+ Duck TV HD
DW Deutsch
E! Europe
+ One
+ WDR 1 Live
Eleven Sports 1 Polska
- Eleven Sports 2 Polska
Eleven Sports 3 Polska
+ Eleven Sports 2 Polska
Eleven Sports 4 Polska
English Club TV
Epic Drama
Erox HD
Eroxxx HD
- Eska Rock TV
Eska TV
Eska TV Extra
+ Red Carpet
Eurochannel
EuroNews English
EuroNews Français
- Eurosport 1 Germany
- Eurosport 1 Polska
Eurosport 2 Polska
+ Eurosport 1 Polska
+ Eurosport 1 Germany
EWTN Europe
Extreme Sports Channel Polska
- FashionBox HD
FashionTV Europe
FashionTV HD Europe
+ FashionBox HD
Fast & FunBox HD
- Fight Klub
FightBox HD
+ Fight Klub
+ Kino TV
FilmBox Action
FilmBox Arthouse Worldwide
FilmBox Extra HD Polska
@@ -121,42 +126,38 @@
FilmBox Premium Polska
Fokus TV
Folx
- Food Network Polska
- Fox Comedy Polska
Fox Polska
- France 2
- France 24 English
+ Fox Comedy Polska
France 24 Français
+ France 24 English
+ France 2
Franken Fernsehen
FunBox UHD
Gametoon
Ginx eSports TV International
God TV UK
- Gold TV
Golf Channel Polska
GoTV
- HBO 2 Polska
- HBO 3 Polska
- HBO Polska
- Heimatkanal
- HGTV Polska
History 2 Polska
- History HD Deutschland
+ HBO Polska
+ HBO 3 Polska
+ HBO 2 Polska
+ Heimatkanal
+ Eska Rock TV
History Polska
- Home TV
+ History HD Deutschland
HR Fernsehen
Hustler HD Europe
Hustler TV Europe
+ Investigation Discovery Polska
Insight UHD
Inspiration TV
- Investigation Discovery Polska
- JimJam Polsat
Junior
Kabel Eins Deutschland
KIKA
Kino Polska
Kino Polska Muzyka
- Kino TV
+ Canal + Kuchnia
Lifetime Polska
Lubimoe Kino
M6
@@ -164,55 +165,55 @@
Metro
Mezzo
Mezzo Live HD
+ AMC Polska
MiniMini +
Motorvision TV
Motowizja
- MTV 80s
- MTV 90s
+ Club MTV
MTV Germany
MTV Hits Europe
MTV Live HD
MTV Polska
+ MTV 90s
+ München TV
Music Box Ukraina
MyZen TV
- München TV
- N Sport +
+ Welt
N-TV
Nat Geo People
- National Geographic Polska
National Geographic Wild Polska
+ National Geographic Polska
Nautical Channel
NHK World Japan
- Nick Jr Central & Eastern Europe
Nickelodeon Deutschland
+ Nick Jr Central & Eastern Europe
Nickelodeon Polska
- NickMusic
Nicktoons Polska
- Nitro Deutschland
+ TV Nova
Novela TV
Nowa TV
- NPO 1
- NPO 2
NPO 3
+ NPO 2
+ NPO 1
+ N Sport +
Nuta TV
- One
- ORF 1
ORF 2
+ ORF 1
Outdoor Channel
Paramount Channel Polska
- Perviy kanal Europa
Phoenix
Planete + Polska
Playboy TV Europe
Polo TV
- Polonia 1
Polsat
- Polsat 1
Polsat 2
+ Polsat 1
Polsat Café
Polsat Doku
Polsat Film
+ Food Network Polska
Polsat Games
+ JimJam Polsat
Polsat Music
Polsat News
Polsat News 2
@@ -222,53 +223,56 @@
Polsat Sport
Polsat Sport Extra
Polsat Sport Fight
+ Polonia 1
Polsat Sport News
- Polsat Sport Premium 1
- Polsat Sport Premium 2
- Polsat Sport Premium 3
- Polsat Sport Premium 4
- Polsat Sport Premium 5
Polsat Sport Premium 6
+ Polsat Sport Premium 5
+ Polsat Sport Premium 4
+ Polsat Sport Premium 3
+ Polsat Sport Premium 2
+ Polsat Sport Premium 1
+ Viasat Explore Polsat
+ Viasat History Polsat
+ Viasat Nature Polsat
Power TV
Private TV
ProSieben Deutschland
Puls 2
QVC Deutschland
- Rai 1
Rai 2
+ Rai 1
RBB Berlin
Reality Kings TV
Record TV Europa
- Red Carpet
Redlight HD
- Relax
RFM TV
RheinMain TV
Romance TV Polska
Rossiya 24
RT Documentary
- RT News
- RTL 102.5 RadioVisione
RTL Deutschland
- RTL Deutschland
+ RTL 102.5 RadioVisione
RTL Zwei Deutschland
+ RTL Deutschland
+ Nitro Deutschland
RTR Planeta
- RTS 1
RTS 2
+ RTS 1
+ RT News
Sat. 1 Deutschland
SBN International
Scifi Polska
Sixx Deutschland
- Sky Cinema +24
Sky Cinema Action
+ Sky Cinema +24
Sky Cinema Comedy
Sky Cinema Hits
- Sky Cinema Nostalgie
- Sky Cinema Select
Sky Krimi
Sky News International
- Sky Sport 1
+ Sky Cinema Nostalgie
+ Sky Cinema Select
Sky Sport 2
+ Sky Sport 1
Sky Sport Austria 1
Spiegel Geschichte
Sport 1
@@ -276,9 +280,6 @@
SRF 1
SRF Zwei
Stars TV
- Stingray Classica
- Stingray CMusic
- Stingray Djazz
Stingray IConcerts
Stingray Juicebox
Stingray Loud
@@ -296,30 +297,32 @@
TF 1
TLC Polska
TNT Polska
+ Gold TV
Trace Urban
Travel Channel Polska
Travelxp 4K Europe
Travelxp HD Europe
TTV
- TV 4
TV 6
- TV Nova
- TV Okazje
- TV Puls
- TV Republika
- TV TRWAM
TV5Monde Europe
+ TV 4
+ TV Puls
+ Relax
+ TV Republika
+ TV Trwam
TVE Internacional Europa
TVN
TVN 24
TVN 24 BiS
TVN 7
TVN Fabula
+ HGTV Polska
TVN Style
TVN Turbo
- TVP 1
- TVP 2
+ TV Okazje
TVP 3 Warszawa
+ TVP 2
+ TVP 1
TVP ABC
TVP HD
TVP Historia
@@ -329,24 +332,21 @@
TVP Rozrywka
TVP Seriale
TVP Sport
+ Home TV
TVS
UA TV
VH1 Polska
- Viasat Explore Polsat
- Viasat History Polsat
- Viasat Nature Polsat
+ MTV 80s
+ NickMusic
Vivid Red
Vivid Touch
Vox Deutschland
Vox Music TV
- W Polsce PL
Water Planet
- WDR 1 Live
- Welt
WP TV
+ W Polsce PL
ZDF
ZDF Info
Zoom TV
- Één
\ No newline at end of file
diff --git a/sites/programtv.onet.pl.config.js b/sites/programtv.onet.pl.config.js
index 19e61d8a..3f47cd08 100644
--- a/sites/programtv.onet.pl.config.js
+++ b/sites/programtv.onet.pl.config.js
@@ -9,14 +9,15 @@ dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
-let PM = false
module.exports = {
lang: 'pl',
+ days: 3,
site: 'programtv.onet.pl',
channels: 'programtv.onet.pl.channels.xml',
output: '.gh-pages/guides/programtv.onet.pl.guide.xml',
url: function ({ date, channel }) {
- const day = dayjs().diff(date, 'd')
+ const today = dayjs().utc().startOf('d')
+ const day = date.diff(today, 'd')
return `https://programtv.onet.pl/program-tv/${channel.site_id}?dzien=${day}`
},
logo: function ({ content }) {
@@ -26,6 +27,7 @@ module.exports = {
return img ? 'https:' + img.src : null
},
parser: function ({ content, date }) {
+ let PM = false
const programs = []
const items = parseItems(content)
items.forEach(item => {
@@ -35,7 +37,7 @@ module.exports = {
let start = parseStart(item, date)
if (start.hour() > 11) PM = true
if (start.hour() < 12 && PM) start = start.add(1, 'd')
- const stop = parseStop(item, date)
+ const stop = start.add(1, 'h')
if (programs.length) {
programs[programs.length - 1].stop = start
}
@@ -53,10 +55,6 @@ module.exports = {
}
}
-function parseStop(item, date) {
- return date.add(1, 'd').hour(3).startOf('h')
-}
-
function parseStart(item, date) {
let time = (item.querySelector('.hours > .hour') || { textContent: '' }).textContent
time = `${date.format('MM/DD/YYYY')} ${time}`
diff --git a/sites/tvgid.ua.channels.xml b/sites/tvgid.ua.channels.xml
index 87801679..d124fccc 100755
--- a/sites/tvgid.ua.channels.xml
+++ b/sites/tvgid.ua.channels.xml
@@ -3,17 +3,16 @@
1+1
2+2
- 24 Kanal
- 34 Telekanal
- 4 Kanal
5 Kanal
8 Kanal
+ 34 Telekanal
Ajara TV
AMC Russia
Animal Planet Europe
BBC World News Europe
Belarus 24
Bigudi
+ TV Bolt
Cartoon Network Russia & South East Europe
CBS Reality Europe
Che!
@@ -32,84 +31,86 @@
Eurosport 2 Rossiya
Evrokino
Extreme Sports Channel
- Fox Life Russia
Fox Russia
+ Fox Life Russia
Futbol 1
Futbol 2
+ OTB Galychyna
Glas
+ UA: Kultura
ICTV
+ Investigation Discovery Europe
Indigo TV
Inter
Inter +
- Investigation Discovery Europe
+ Zhivi!
K1
K2
- Kinohit
+ Kyïv TV
Kinomiks
Kinopremyera
+ Kinohit
+ Rossiya K
Kvartal TV
- Kyïv TV
M1
Malyatko TV
- Match!
Match! Arena
Match! Boets
Match! Igra
+ Match!
Mega
Mir
Multilandia
Music Box Ukraina
Muz TV
Muzhskoe Kino
+ Telekanal Nadiya
Nash
Nashe Novoe Kino
- National Geographic Russia
National Geographic Wild Russia
+ National Geographic Russia
Nickelodeon CIS
NLO TV
Novy Kanal
NTN
Obozrevatel TV
- Oce
Ohotnik i Rybolov
- OTB Galychyna
+ Oce
OTV
Paramount Comedy Ukraina
Pershiy Diloviy
Piksel TV
Plus Plus
+ TVP Polonia
Polsat
Pryamyy
Pyatnitsa!
- Rossiya K
- RTVi Europe
Ryzhiy
+ RTVi Europe
Setanta Sports Ukraine
Sonce
Sony Sci-Fi Russia
+ Telekanal Spas
Star Cinema
Star Family
- STS
- Telekanal Nadiya
- Telekanal Spas
Telekanal STB
- Telekanal Ukraina
+ STS
+ 24 Kanal
TET
Travel Channel Europe
- TV 1000 Action
+ TV 3
TV 1000 East
TV 1000 World Kino
- TV 3
+ TV-4
TV 5
- TV Bolt
+ TV 1000 Action
TV XXI
TVP 1
TVP 2
- TVP Polonia
U
- UA: Kultura
UA: Pershiy
UA: Zakarpattya
+ Telekanal Ukraina
Unian TV
Viasat Explore East
Viasat History
@@ -118,9 +119,8 @@
VIP Comedy
VIP Premiere
X Sport
- Zhivi!
- Zoo Park
Zoo TV
Zoom
+ Zoo Park
\ No newline at end of file
diff --git a/sites/tvgid.ua.config.js b/sites/tvgid.ua.config.js
index b54fca8a..11e3262b 100644
--- a/sites/tvgid.ua.config.js
+++ b/sites/tvgid.ua.config.js
@@ -10,9 +10,9 @@ dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
-let PM = false
module.exports = {
lang: 'uk',
+ days: 3,
site: 'tvgid.ua',
channels: 'tvgid.ua.channels.xml',
output: '.gh-pages/guides/tvgid.ua.guide.xml',
@@ -20,6 +20,7 @@ module.exports = {
return `https://tvgid.ua/channels/${channel.site_id}/${date.format('DDMMYYYY')}/tmall/`
},
parser: function ({ buffer, date }) {
+ let PM = false
const programs = []
const items = parseItems(buffer)
items.forEach(item => {
@@ -28,7 +29,7 @@ module.exports = {
if (!start) return
if (start.hour() > 11) PM = true
if (start.hour() < 12 && PM) start = start.add(1, 'd')
- const stop = parseStop(item, start)
+ const stop = start.add(1, 'h')
if (programs.length) {
programs[programs.length - 1].stop = start
}
@@ -40,10 +41,6 @@ module.exports = {
}
}
-function parseStop(item, date) {
- return date.hour(7)
-}
-
function parseStart(item, date) {
let time = (item.querySelector('td > table > tbody > tr > td.time') || { textContent: '' })
.textContent
diff --git a/sites/zap.co.ao.channels.xml b/sites/zap.co.ao.channels.xml
new file mode 100755
index 00000000..17943c5b
--- /dev/null
+++ b/sites/zap.co.ao.channels.xml
@@ -0,0 +1,109 @@
+
+
+
+ TPA 1
+ RTP África
+ A Bola TV
+ Sport TV África 1
+ Zap Novelas
+ Zap Viva
+ TVI 24
+ BBC World News Africa
+ EuroNews Português
+ SIC K
+ Canal Panda Portugal
+ TVE Internacional Europa
+ RT News
+ STV Noticias
+ TVI Internacional
+ RTP Internacional Europa
+ Band Internacional
+ CM TV
+ Band News
+ Sport TV África 1
+ Benfica TV
+ NBA TV
+ ESPN Africa
+ Porto Canal
+ Motorvision TV
+ FightBox HD
+ Sporting TV
+ Biggs
+ Baby TV Europe
+ Disney Channel Portugal
+ Disney Junior Portugal
+ TVCine Top
+ TVCine Edition
+ TVCine Emotion
+ TVCine Action
+ Canal Hollywood Portugal
+ Fox Movies Portugal
+ Fox Life Portugal
+ Fox Portugal
+ AXN Portugal
+ AXN Portugal
+ Fox Crime Portugal
+ AXN Movies
+ TLN Network
+ TVI Ficção
+ SIC Radical
+ Colors
+ 24 Kitchen Portugal
+ Food Network EMEA
+ Luxe TV
+ Afro Music Channel
+ Stingray IConcerts
+ RFM TV
+ MCM Top
+ Stingray CMusic
+ Odisseia
+ Blaze Portugal
+ História Portugal
+ Travel Channel Europe
+ National Geographic Wild South Africa
+ National Geographic Portugal
+ MyZen Music
+ Aljazeera English
+ France 24 Français
+ Rossiya 24
+ Bloomberg TV Africa
+ Rai Italia Africa
+ RTR Planeta
+ CCTV 4 Europe
+ Canal Programação
+ MyZen Nature
+ Cubavisión Internacional
+ Aljazeera Channel
+ Blast
+ Tiji
+ France 2
+ France 3
+ France 5
+ LCI
+ Histoire TV
+ Ushuaïa TV
+ Zap Filmes HD
+ Zap Filmes 1
+ Zap Filmes 2
+ Zap Filmes 3
+ Globo On
+ TV Globo Internacional África
+ La Liga na Zap
+ La Liga na Zap
+ Fox Comedy Portugal
+ RTNC
+ Télé 50
+ ESPN 2 Africa
+ Digital Congo TV
+ Be Kuduro
+ Zap Viva
+ SIC Mulher
+ Gloom Channel
+ Extreme Sports Channel
+ Africanews
+ Gametoon
+ Gulli Brasil
+ Cubayo
+ Kix
+
+
\ No newline at end of file
diff --git a/sites/zap.co.ao.config.js b/sites/zap.co.ao.config.js
new file mode 100644
index 00000000..c044b85c
--- /dev/null
+++ b/sites/zap.co.ao.config.js
@@ -0,0 +1,60 @@
+const dayjs = require('dayjs')
+const utc = require('dayjs/plugin/utc')
+const timezone = require('dayjs/plugin/timezone')
+const customParseFormat = require('dayjs/plugin/customParseFormat')
+
+dayjs.extend(utc)
+dayjs.extend(timezone)
+dayjs.extend(customParseFormat)
+
+module.exports = {
+ lang: 'pt',
+ days: 3,
+ site: 'zap.co.ao',
+ channels: 'zap.co.ao.channels.xml',
+ output: '.gh-pages/guides/zap.co.ao.guide.xml',
+ url: function ({ date, channel }) {
+ return `https://www.zap.co.ao/_api/channels/${date.format('YYYY-M-D')}/epg.json`
+ },
+ logo({ content, channel }) {
+ const channels = JSON.parse(content)
+ const data = channels.find(ch => ch.id == channel.site_id)
+
+ return data.image_uri
+ },
+ parser: function ({ content, channel }) {
+ let PM = false
+ const programs = []
+ const items = parseItems(content, channel)
+ if (!items.length) return programs
+ items.forEach(item => {
+ let start = parseStart(item)
+ if (start.hour() > 11) PM = true
+ if (start.hour() < 12 && PM) start = start.add(1, 'd')
+ const stop = start.add(item.duration, 's')
+ programs.push({
+ title: item.name,
+ description: item.sinopse,
+ start,
+ stop
+ })
+ })
+
+ return programs
+ }
+}
+
+function parseItems(content, channel) {
+ const channels = JSON.parse(content)
+ const data = channels.find(ch => ch.id == channel.site_id)
+
+ return data.epg
+}
+
+function parseStart(item) {
+ const [date] = item.date.split('T')
+ const [hours, minutes] = item.start_time.split('h')
+ const time = `${date} ${hours}:${minutes}`
+
+ return dayjs.tz(time, 'YYYY-MM-DD HH:mm', 'Africa/Luanda')
+}
diff --git a/sites/znbc.co.zm.config.js b/sites/znbc.co.zm.config.js
index 7f078b55..8e24dc80 100644
--- a/sites/znbc.co.zm.config.js
+++ b/sites/znbc.co.zm.config.js
@@ -4,6 +4,7 @@ const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const timezone = require('dayjs/plugin/timezone')
const customParseFormat = require('dayjs/plugin/customParseFormat')
+const tabletojson = require('tabletojson').Tabletojson
dayjs.extend(utc)
dayjs.extend(timezone)
@@ -11,6 +12,7 @@ dayjs.extend(customParseFormat)
module.exports = {
lang: 'en',
+ days: 7,
site: 'znbc.co.zm',
channels: 'znbc.co.zm.channels.xml',
output: '.gh-pages/guides/znbc.co.zm.guide.xml',
@@ -29,9 +31,9 @@ module.exports = {
const programs = []
const items = parseItems(content, date)
items.forEach(item => {
- const title = parseTitle(item)
+ const title = item.title
const start = parseStart(item, date)
- const stop = parseStop(item, date)
+ const stop = start.add(30, 'm')
if (programs.length) {
programs[programs.length - 1].stop = start
}
@@ -43,35 +45,30 @@ module.exports = {
}
}
-function parseStop(item, date) {
- return date.endOf('d')
-}
-
function parseStart(item, date) {
- const row = (item.querySelector('td > p') || { textContent: '' }).textContent
- let time = row.split(' ').shift()
- time = `${date.format('MM/DD/YYYY')} ${time}`
+ const time = `${date.format('MM/DD/YYYY')} ${item.time}`
return dayjs.tz(time, 'MM/DD/YYYY HH:mm', 'Africa/Lusaka')
}
-function parseTitle(item) {
- const row = (item.querySelector('td > p') || { textContent: '' }).textContent
- const title = row.split(' ')
- title.shift()
-
- return title
- .map(i => i.trim())
- .filter(s => s)
- .join(' ')
-}
-
function parseItems(content, date) {
+ const items = []
const day = date.day() // 0 => Sunday
const dom = new JSDOM(content)
const tabs = dom.window.document.querySelectorAll(
`.elementor-tabs-content-wrapper > div[id*='elementor-tab-content']`
)
+ const table = tabs[day].querySelector(`table`)
+ const data = tabletojson.convert(table.outerHTML)
+ if (!data) return items
+ const rows = data[0]
- return tabs[day].querySelectorAll(`table > tbody > tr:not(:first-child)`)
+ return rows
+ .map(row => {
+ const time = row['0'].slice(0, 5).trim()
+ const title = row['0'].replace(time, '').replace(/\s\s+/g, ' ').trim()
+
+ return { time, title }
+ })
+ .filter(i => dayjs(i.time, 'HH:mm').isValid())
}