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 🇩🇿 Algeriahttps://iptv-org.github.io/epg/guides/elcinema.com.guide.xml 🇦🇱 Albaniahttps://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml 🇦🇩 Andorrahttps://iptv-org.github.io/epg/guides/andorradifusio.ad.guide.xml - 🇦🇷 Argentinahttps://iptv-org.github.io/epg/guides/mi.tv.guide.xml 🇦🇲 Armeniahttps://iptv-org.github.io/epg/guides/tv.mail.ru.guide.xml + 🇦🇴 Angolahttps://iptv-org.github.io/epg/guides/zap.co.ao.guide.xml 🇦🇺 Australiahttps://iptv-org.github.io/epg/guides/ontvtonight.com.guide.xml 🇧🇾 Belarushttps://iptv-org.github.io/epg/guides/tv.yandex.ru.guide.xml 🇧🇴 Boliviahttps://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 🇧🇷 Brasilhttps://iptv-org.github.io/epg/guides/mi.tv.guide.xml 🇧🇬 Bulgariahttps://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml 🇨🇦 Canadahttps://iptv-org.github.io/epg/guides/tvtv.us.guide.xml - 🇨🇱 Chilehttps://iptv-org.github.io/epg/guides/mi.tv.guide.xml 🇨🇳 Chinahttps://iptv-org.github.io/epg/guides/tv.cctv.com.guide.xml - 🇨🇴 Colombiahttps://iptv-org.github.io/epg/guides/mi.tv.guide.xml 🇭🇷 Croatiahttps://iptv-org.github.io/epg/guides/maxtv.hrvatskitelekom.hr.guide.xml 🇨🇿 Czechiahttps://iptv-org.github.io/epg/guides/m.tv.sms.cz.guide.xml 🇪🇬 Egypthttps://iptv-org.github.io/epg/guides/elcinema.com.guide.xml - 🇸🇻 El Salvadorhttps://iptv-org.github.io/epg/guides/mi.tv.guide.xml 🇫🇮 Finlandhttps://iptv-org.github.io/epg/guides/telkussa.fi.guide.xml 🇫🇷 Francehttps://iptv-org.github.io/epg/guides/programme-tv.net.guide.xml 🇩🇪 Germanyhttps://iptv-org.github.io/epg/guides/hd-plus.de.guide.xml 🇬🇷 Greecehttps://iptv-org.github.io/epg/guides/cosmote.gr.guide.xml - 🇬🇹 Guatemalahttps://iptv-org.github.io/epg/guides/mi.tv.guide.xml - 🇭🇳 Hondurashttps://iptv-org.github.io/epg/guides/mi.tv.guide.xml 🇮🇩 Indonesiahttps://iptv-org.github.io/epg/guides/mncvision.id.guide.xml https://iptv-org.github.io/epg/guides/vidio.com.guide.xml 🇭🇺 Hungaryhttps://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 🇱🇻 Latviahttps://iptv-org.github.io/epg/guides/tv.lv.guide.xml 🇱🇾 Libyahttps://iptv-org.github.io/epg/guides/elcinema.com.guide.xml 🇲🇾 Malaysiahttps://iptv-org.github.io/epg/guides/astro.com.my.guide.xml - 🇲🇽 Mexicohttps://iptv-org.github.io/epg/guides/mi.tv.guide.xml 🇲🇦 Moroccohttps://iptv-org.github.io/epg/guides/elcinema.com.guide.xml 🇲🇪 Montenegrohttps://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml 🇲🇰 North Macedoniahttps://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml - 🇵🇾 Paraguayhttps://iptv-org.github.io/epg/guides/mi.tv.guide.xml - 🇵🇪 Peruhttps://iptv-org.github.io/epg/guides/mi.tv.guide.xml 🇵🇱 Polandhttps://iptv-org.github.io/epg/guides/programtv.onet.pl.guide.xml 🇵🇹 Portugalhttps://iptv-org.github.io/epg/guides/meo.pt.guide.xml 🇷🇴 Romaniahttps://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()) }