mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-10 09:00:07 -04:00
Merge pull request #115 from iptv-org/add-zap-co-ao
Add guide from zap.co.ao
This commit is contained in:
commit
3e494c763b
4 changed files with 171 additions and 0 deletions
1
.github/workflows/auto-update.yml
vendored
1
.github/workflows/auto-update.yml
vendored
|
@ -42,6 +42,7 @@ jobs:
|
||||||
tvprofil.com,
|
tvprofil.com,
|
||||||
tvtv.us,
|
tvtv.us,
|
||||||
vidio.com,
|
vidio.com,
|
||||||
|
zap.co.ao,
|
||||||
znbc.co.zm
|
znbc.co.zm
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
|
|
|
@ -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>🇩🇿 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>🇦🇱 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>🇦🇩 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>🇦🇷 Argentina</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/mi.tv.guide.xml</code></td></tr>
|
<tr><td align="left" nowrap>🇦🇷 Argentina</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/mi.tv.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>🇦🇺 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>🇧🇾 Belarus</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tv.yandex.ru.guide.xml</code></td></tr>
|
||||||
|
|
109
sites/zap.co.ao.channels.xml
Executable file
109
sites/zap.co.ao.channels.xml
Executable 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
60
sites/zap.co.ao.config.js
Normal 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')
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue