Merge branch 'master' into update-mi-tv

This commit is contained in:
Shadix A 2021-09-26 17:35:49 +03:00 committed by GitHub
commit 6f43c992f0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 171 additions and 0 deletions

View file

@ -42,6 +42,7 @@ jobs:
tvprofil.com,
tvtv.us,
vidio.com,
zap.co.ao,
znbc.co.zm
]
steps:

View file

@ -23,6 +23,7 @@ To load a program guide, all you need to do is copy the link to one of the guide
<tr><td align="left" nowrap>🇩🇿 Algeria</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/elcinema.com.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇦🇱 Albania</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇦🇩 Andorra</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/andorradifusio.ad.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇦🇴 Angola</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/zap.co.ao.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇦🇺 Australia</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/ontvtonight.com.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇧🇾 Belarus</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tv.yandex.ru.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇧🇴 Bolivia</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/comteco.com.bo.guide.xml</code></td></tr>

109
sites/zap.co.ao.channels.xml Executable file
View file

@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8"?>
<site site="zap.co.ao">
<channels>
<channel site_id="1" xmltv_id="TPA1.ao">TPA 1</channel>
<channel site_id="5" xmltv_id="RTPAfrica.pt">RTP África</channel>
<channel site_id="8" xmltv_id="ABolaTV.pt">A Bola TV</channel>
<channel site_id="9" xmltv_id="SportTVAfrica1.pt">Sport TV África 1</channel>
<channel site_id="10" xmltv_id="ZapNovelas.ao">Zap Novelas</channel>
<channel site_id="13" xmltv_id="ZapViva.ao">Zap Viva</channel>
<channel site_id="17" xmltv_id="TVI24.pt">TVI 24</channel>
<channel site_id="18" xmltv_id="BBCWorldNewsAfrica.uk">BBC World News Africa</channel>
<channel site_id="19" xmltv_id="EuroNewsPortugues.fr">EuroNews Português</channel>
<channel site_id="20" xmltv_id="SICK.pt">SIC K</channel>
<channel site_id="21" xmltv_id="CanalPandaPortugal.pt">Canal Panda Portugal</channel>
<channel site_id="23" xmltv_id="TVEInternacionalEuropa.es">TVE Internacional Europa</channel>
<channel site_id="26" xmltv_id="RTNews.ru">RT News</channel>
<channel site_id="27" xmltv_id="STVNoticias.mz">STV Noticias</channel>
<channel site_id="28" xmltv_id="TVIInternacional.pt">TVI Internacional</channel>
<channel site_id="29" xmltv_id="RTPInternacionalEuropa.pt">RTP Internacional Europa</channel>
<channel site_id="30" xmltv_id="BandInternacional.br">Band Internacional</channel>
<channel site_id="32" xmltv_id="CMTV.pt">CM TV</channel>
<channel site_id="33" xmltv_id="BandNews.br">Band News</channel>
<channel site_id="34" xmltv_id="SportTVAfrica1.pt">Sport TV África 1</channel>
<channel site_id="36" xmltv_id="BenficaTV.pt">Benfica TV</channel>
<channel site_id="37" xmltv_id="NBATV.us">NBA TV</channel>
<channel site_id="38" xmltv_id="ESPNAfrica.us">ESPN Africa</channel>
<channel site_id="39" xmltv_id="PortoCanal.pt">Porto Canal</channel>
<channel site_id="40" xmltv_id="MotorvisionTV.de">Motorvision TV</channel>
<channel site_id="42" xmltv_id="FightBoxHD.us">FightBox HD</channel>
<channel site_id="46" xmltv_id="SportingTV.pt">Sporting TV</channel>
<channel site_id="47" xmltv_id="Biggs.pt">Biggs</channel>
<channel site_id="48" xmltv_id="BabyTVEurope.uk">Baby TV Europe</channel>
<channel site_id="50" xmltv_id="DisneyChannelPortugal.us">Disney Channel Portugal</channel>
<channel site_id="51" xmltv_id="DisneyJuniorPortugal.us">Disney Junior Portugal</channel>
<channel site_id="52" xmltv_id="TVCineTop.pt">TVCine Top</channel>
<channel site_id="53" xmltv_id="TVCineEdition.pt">TVCine Edition</channel>
<channel site_id="54" xmltv_id="TVCineEmotion.pt">TVCine Emotion</channel>
<channel site_id="55" xmltv_id="TVCineAction.pt">TVCine Action</channel>
<channel site_id="56" xmltv_id="CanalHollywoodPortugal.es">Canal Hollywood Portugal</channel>
<channel site_id="57" xmltv_id="FoxMoviesPortugal.us">Fox Movies Portugal</channel>
<channel site_id="58" xmltv_id="FoxLifePortugal.us">Fox Life Portugal</channel>
<channel site_id="59" xmltv_id="FoxPortugal.us">Fox Portugal</channel>
<channel site_id="62" xmltv_id="AXNPortugal.us">AXN Portugal</channel>
<channel site_id="63" xmltv_id="AXNPortugal.us">AXN Portugal</channel>
<channel site_id="66" xmltv_id="FoxCrimePortugal.us">Fox Crime Portugal</channel>
<channel site_id="70" xmltv_id="AXNMovies.us">AXN Movies</channel>
<channel site_id="71" xmltv_id="TLNNetwork.pt">TLN Network</channel>
<channel site_id="72" xmltv_id="TVIFiccao.pt">TVI Ficção</channel>
<channel site_id="75" xmltv_id="SICRadical.pt">SIC Radical</channel>
<channel site_id="76" xmltv_id="Colors.in">Colors</channel>
<channel site_id="78" xmltv_id="24KitchenPortugal.us">24 Kitchen Portugal</channel>
<channel site_id="79" xmltv_id="FoodNetworkEMEA.us">Food Network EMEA</channel>
<channel site_id="80" xmltv_id="LuxeTV.lu">Luxe TV</channel>
<channel site_id="86" xmltv_id="AfroMusicChannel.pt">Afro Music Channel</channel>
<channel site_id="93" xmltv_id="StingrayIConcerts.ca">Stingray IConcerts</channel>
<channel site_id="94" xmltv_id="RFMTV.fr">RFM TV</channel>
<channel site_id="95" xmltv_id="MCMTop.fr">MCM Top</channel>
<channel site_id="96" xmltv_id="StingrayCMusic.ca">Stingray CMusic</channel>
<channel site_id="98" xmltv_id="Odisseia.es">Odisseia</channel>
<channel site_id="99" xmltv_id="BlazePortugal.us">Blaze Portugal</channel>
<channel site_id="100" xmltv_id="HistoriaPortugal.us">História Portugal</channel>
<channel site_id="101" xmltv_id="TravelChannelEurope.us">Travel Channel Europe</channel>
<channel site_id="102" xmltv_id="NationalGeographicWildSouthAfrica.us">National Geographic Wild South Africa</channel>
<channel site_id="103" xmltv_id="NationalGeographicPortugal.us">National Geographic Portugal</channel>
<channel site_id="105" xmltv_id="MyZenMusic.fr">MyZen Music</channel>
<channel site_id="107" xmltv_id="AljazeeraEnglish.qa">Aljazeera English</channel>
<channel site_id="108" xmltv_id="France24Francais.fr">France 24 Français</channel>
<channel site_id="109" xmltv_id="Rossiya24.ru">Rossiya 24</channel>
<channel site_id="111" xmltv_id="BloombergTVAfrica.us">Bloomberg TV Africa</channel>
<channel site_id="112" xmltv_id="RaiItaliaAfrica.it">Rai Italia Africa</channel>
<channel site_id="113" xmltv_id="RTRPlaneta.ru">RTR Planeta</channel>
<channel site_id="114" xmltv_id="CCTV4Europe.cn">CCTV 4 Europe</channel>
<channel site_id="115" xmltv_id="CanalProgramacao.ao">Canal Programação</channel>
<channel site_id="117" xmltv_id="MyZenNature.fr">MyZen Nature</channel>
<channel site_id="118" xmltv_id="CubavisionInternacional.cu">Cubavisión Internacional</channel>
<channel site_id="119" xmltv_id="AljazeeraChannel.qa">Aljazeera Channel</channel>
<channel site_id="120" xmltv_id="Blast.ao">Blast</channel>
<channel site_id="122" xmltv_id="Tiji.fr">Tiji</channel>
<channel site_id="123" xmltv_id="France2.fr">France 2</channel>
<channel site_id="124" xmltv_id="France3.fr">France 3</channel>
<channel site_id="125" xmltv_id="France5.fr">France 5</channel>
<channel site_id="127" xmltv_id="LCI.fr">LCI</channel>
<channel site_id="128" xmltv_id="HistoireTV.fr">Histoire TV</channel>
<channel site_id="129" xmltv_id="UshuaiaTV.fr">Ushuaïa TV</channel>
<channel site_id="130" xmltv_id="ZapFilmesHD.ao">Zap Filmes HD</channel>
<channel site_id="131" xmltv_id="ZapFilmes1.ao">Zap Filmes 1</channel>
<channel site_id="132" xmltv_id="ZapFilmes2.ao">Zap Filmes 2</channel>
<channel site_id="133" xmltv_id="ZapFilmes3.ao">Zap Filmes 3</channel>
<channel site_id="134" xmltv_id="GloboOn.br">Globo On</channel>
<channel site_id="135" xmltv_id="TVGloboInternacionalAfrica.br">TV Globo Internacional África</channel>
<channel site_id="141" xmltv_id="LaLiganaZap.ao">La Liga na Zap</channel>
<channel site_id="142" xmltv_id="LaLiganaZap.ao">La Liga na Zap</channel>
<channel site_id="143" xmltv_id="FoxComedyPortugal.us">Fox Comedy Portugal</channel>
<channel site_id="144" xmltv_id="RTNC.cd">RTNC</channel>
<channel site_id="145" xmltv_id="Tele50.cd">Télé 50</channel>
<channel site_id="148" xmltv_id="ESPN2Africa.us">ESPN 2 Africa</channel>
<channel site_id="151" xmltv_id="DigitalCongoTV.cd">Digital Congo TV</channel>
<channel site_id="155" xmltv_id="BeKuduro.ao">Be Kuduro</channel>
<channel site_id="168" xmltv_id="ZapViva.ao">Zap Viva</channel>
<channel site_id="171" xmltv_id="SICMulher.pt">SIC Mulher</channel>
<channel site_id="172" xmltv_id="GloomChannel.mz">Gloom Channel</channel>
<channel site_id="178" xmltv_id="ExtremeSportsChannel.nl">Extreme Sports Channel</channel>
<channel site_id="190" xmltv_id="Africanews.cg">Africanews</channel>
<channel site_id="195" xmltv_id="Gametoon.us">Gametoon</channel>
<channel site_id="199" xmltv_id="GulliBrasil.fr">Gulli Brasil</channel>
<channel site_id="203" xmltv_id="Cubayo.uk">Cubayo</channel>
<channel site_id="205" xmltv_id="Kix.hk">Kix</channel>
</channels>
</site>

60
sites/zap.co.ao.config.js Normal file
View file

@ -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')
}