Initial Commit

This commit is contained in:
2023-09-10 21:48:48 +02:00
commit 227cca7d31
791 changed files with 165200 additions and 0 deletions

View File

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<site site="vivacom.bg">
<channels>
<channel lang="bg" xmltv_id="24KitchenBulgaria.bg" site_id="5#24 Kitchen">24 Kitchen</channel>
<channel lang="en" xmltv_id="360TuneBox.nl" site_id="19#360 Tunebox">360 Tune Box</channel>
<channel lang="bg" xmltv_id="78TV.bg" site_id="23#7/8 TV ">7/8 TV</channel>
<channel lang="bg" xmltv_id="AgroTV.bg" site_id="9#Агро ТВ">Agro TV</channel>
<channel lang="bg" xmltv_id="AlfaTV.bg" site_id="9#Алфа ТВ">Alfa TV</channel>
<channel lang="bg" xmltv_id="AMCBulgaria.bg" site_id="7#AMC">AMC</channel>
<channel lang="bg" xmltv_id="AnimalPlanetBulgaria.bg" site_id="19#Animal Planet">Animal Planet</channel>
<channel lang="de" xmltv_id="AutoMotorundSport.de" site_id="4#Auto Motor Sport">Auto Motor und Sport</channel>
<channel lang="bg" xmltv_id="AXNBlack.us" site_id="7#AXN Black">AXN Black</channel>
<channel lang="bg" xmltv_id="AXNEurope.gr" site_id="7#AXN">AXN</channel>
<channel lang="bg" xmltv_id="AXNWhite.us" site_id="7#AXN White">AXN White</channel>
<channel lang="bg" xmltv_id="B1BBox.bg" site_id="4#B1B Action">B1B Box</channel>
<channel lang="en" xmltv_id="BabyTV.uk" site_id="8#Baby TV">Baby TV</channel>
<channel lang="en" xmltv_id="BalkanikaMusicTV.bg" site_id="12#Балканика">Balkanika Music TV</channel>
<channel lang="bg" xmltv_id="BarelyLegalTV.us" site_id="22#Barely Legal">Barely Legal TV</channel>
<channel lang="tr" xmltv_id="beINMoviesTurk.tr" site_id="24#Bein Movies">BeIn Movies Turk</channel>
<channel lang="bg" xmltv_id="BGMusicChannel.bg" site_id="13#BG Music Channel">BG Music Channel</channel>
<channel lang="bg" xmltv_id="BloombergTVBulgaria.bg" site_id="9#Bloomberg BG">Bloomberg TV Bulgaria</channel>
<channel lang="bg" xmltv_id="BNT1.bg" site_id="17#БНТ 1">BNT 1</channel>
<channel lang="bg" xmltv_id="BNT2.bg" site_id="2#БНТ 2">BNT 2</channel>
<channel lang="bg" xmltv_id="BNT3.bg" site_id="3#БНТ 3 HD">BNT 3</channel>
<channel lang="bg" xmltv_id="BNT4.bg" site_id="2#БНТ 4">BNT 4</channel>
<channel lang="en" xmltv_id="BoomerangCEE.us" site_id="8#Boomerang">Boomerang</channel>
<channel lang="en" xmltv_id="BoxTV.bg" site_id="13#Box TV">Box TV</channel>
<channel lang="bg" xmltv_id="bTV.bg" site_id="1#bTV HD">BTV</channel>
<channel lang="bg" xmltv_id="bTVAction.bg" site_id="17#bTV Action">BTV Action</channel>
<channel lang="bg" xmltv_id="bTVCinema.bg" site_id="17#bTV Cinema">BTV Cinema</channel>
<channel lang="bg" xmltv_id="bTVComedy.bg" site_id="17#bTV Comedy">BTV Comedy</channel>
<channel lang="bg" xmltv_id="bTVLady.bg" site_id="18#bTV Lady">BTV Lady</channel>
<channel lang="bg" xmltv_id="Bulgaria24.bg" site_id="2#България 24 ">Bulgaria 24</channel>
<channel lang="bg" xmltv_id="BulgariaOnAir.bg" site_id="2#BG On Air">Bulgaria On Air</channel>
<channel lang="bg" xmltv_id="BulgarskaSvobodnaTV.bg" site_id="9#БСТВ">Bulgarska Svobodna TV</channel>
<channel lang="bg" xmltv_id="CartoonNetworkBulgaria.bg" site_id="8#Cartoon Network">Cartoon Network</channel>
<channel lang="bg" xmltv_id="CBSRealityEMEA.uk" site_id="16#CBS Reality">CBS Reality</channel>
<channel lang="fr" xmltv_id="ChassePeche.fr" site_id="5#Chasse&amp;Peche">Chasse &amp; Pêche</channel>
<channel lang="bg" xmltv_id="Cinemax2Bulgaria.bg" site_id="19#Cinemax 2">Cinemax 2</channel>
<channel lang="bg" xmltv_id="CinemaxBulgaria.bg" site_id="18#Cinemax">Cinemax</channel>
<channel lang="en" xmltv_id="CityTV.bg" site_id="13#City TV">City TV</channel>
<channel lang="en" xmltv_id="ClubMTVEurope.uk" site_id="14#club MTV">Club MTV</channel>
<channel lang="en" xmltv_id="CNNInternationalEurope.us" site_id="9#CNN">CNN</channel>
<channel lang="en" xmltv_id="CodeHealthTV.bg" site_id="24#Code Health TV ">Code Health TV</channel>
<channel lang="bg" xmltv_id="CrimePlusInvestigationUK.uk" site_id="16#CI Network">Crime + Investigation</channel>
<channel lang="bg" xmltv_id="DaVinci.de" site_id="8#Da Vinci Learning ">Da Vinci</channel>
<channel lang="bg" xmltv_id="DeluxeLoungeHD.de" site_id="14#Deluxe Lounge HD">Deluxe Lounge</channel>
<channel lang="bg" xmltv_id="DeluxeMusic.de" site_id="14#Deluxe Music HD">Deluxe Music</channel>
<channel lang="bg" xmltv_id="Diema.bg" site_id="1#Diema">Diema</channel>
<channel lang="bg" xmltv_id="DiemaFamily.bg" site_id="5#Diema Family">Diema Family</channel>
<channel lang="bg" xmltv_id="DiemaSport.bg" site_id="4#Diema Sport HD">Diema Sport</channel>
<channel lang="bg" xmltv_id="DiemaSport2.bg" site_id="4#Diema Sport 2 HD">Diema Sport 2</channel>
<channel lang="bg" xmltv_id="DiscoveryChannelBulgaria.bg" site_id="19#Discovery Channel">Discovery Channel</channel>
<channel lang="bg" xmltv_id="DiscoveryScience.us" site_id="15#Discovery Science HD">Discovery Science</channel>
<channel lang="bg" xmltv_id="DisneyChannelBulgaria.bg" site_id="7#Disney">Disney Channel</channel>
<channel lang="en" xmltv_id="DMSat.rs" site_id="12#DM Sat">DM Sat</channel>
<channel lang="bg" xmltv_id="DocuBox.nl" site_id="16#DocuBox HD">DocuBox HD</channel>
<channel lang="bg" xmltv_id="DorcelTV.nl" site_id="21#Dorcel HD">Dorcel TV</channel>
<channel lang="bg" xmltv_id="DuckTV.sk" site_id="8#Duck TV">Duck TV</channel>
<channel lang="en" xmltv_id="DWEnglish.de" site_id="21#Deutsche Welle">DW</channel>
<channel lang="bg" xmltv_id="EKids.bg" site_id="8#E Kids">EKids</channel>
<channel lang="en" xmltv_id="EnglishClubTV.uk" site_id="9#English Club TV">English Club TV</channel>
<channel lang="bg" xmltv_id="EpicDrama.se" site_id="21#Epic Drama">Epic Drama</channel>
<channel lang="bg" xmltv_id="Erox.nl" site_id="21#EroX HD ">Erox HD</channel>
<channel lang="bg" xmltv_id="Eroxxx.nl" site_id="21#EROXXX">Eroxxx</channel>
<channel lang="en" xmltv_id="Eurochannel.uk" site_id="7#Eurochannel">Eurochannel</channel>
<channel lang="en" xmltv_id="EuronewsEnglish.fr" site_id="9#Euronews HD">EuroNews HD</channel>
<channel lang="bg" xmltv_id="Eurosport1.fr" site_id="17#Eurosport">Eurosport 1</channel>
<channel lang="bg" xmltv_id="Eurosport2.fr" site_id="18#Eurosport 2">Eurosport 2</channel>
<channel lang="bg" xmltv_id="Evrokom.bg" site_id="2#Evrokom NCTV">Evrokom</channel>
<channel lang="en" xmltv_id="ExtremeSportsChannelEurope.nl" site_id="3#Extreme Sports">Extreme Sports Channel</channel>
<channel lang="en" xmltv_id="FashionBox.nl" site_id="16#FashionBox HD ">FashionBox HD</channel>
<channel lang="en" xmltv_id="FastFunBox.nl" site_id="4#Fast and Fun ">Fast &amp; FunBox</channel>
<channel lang="bg" xmltv_id="FenFolk.bg" site_id="13#Fen Folk TV">Fen Folk</channel>
<channel lang="bg" xmltv_id="FenTV.bg" site_id="19#Fen TV">Fen TV</channel>
<channel lang="en" xmltv_id="FightBox.nl" site_id="4#Fight Box ">FightBox HD</channel>
<channel lang="en" xmltv_id="FilmBoxArthouse.nl" site_id="19#FilmBox Arthouse">FilmBox Arthouse Worldwide</channel>
<!-- <channel lang="bg" xmltv_id="FilmBoxBasic.nl" site_id="7#Filmbox Basic SD">FilmBox Basic</channel> -->
<channel lang="bg" xmltv_id="FilmBoxExtraBulgaria.bg" site_id="19#FilmBox Extra">FilmBox Extra</channel>
<channel lang="bg" xmltv_id="FilmBoxStarsBulgaria.bg" site_id="6#FilmBox Stars">FilmBox Stars</channel>
<channel lang="bg" xmltv_id="FolklorTV.bg" site_id="12#Фолклор ТВ">Folklor TV</channel>
<channel lang="bg" xmltv_id="FoodNetworkEMEA.us" site_id="19#Food Network">Food Network</channel>
<channel lang="bg" xmltv_id="FoxBulgaria.bg" site_id="2#Fox HD">Fox HD</channel>
<channel lang="bg" xmltv_id="FoxCrimeBulgaria.bg" site_id="5#Fox Crime">Fox Crime</channel>
<channel lang="bg" xmltv_id="FoxLifeBulgaria.bg" site_id="5#Fox Life">Fox Life</channel>
<channel lang="bg" xmltv_id="France24French.fr" site_id="11#France 24">France 24</channel>
<channel lang="en" xmltv_id="FUELTV.at" site_id="4#Fuel TV">Fuel TV</channel>
<channel lang="en" xmltv_id="Gametoon.nl" site_id="5#Gametoon HD ">Gametoon</channel>
<channel lang="tr" xmltv_id="Haberturk.tr" site_id="24#Haberturk">Habertürk</channel>
<channel lang="bg" xmltv_id="HBO2CEE.hu" site_id="18#HBO 2">HBO 2</channel>
<channel lang="bg" xmltv_id="HBO3CEE.hu" site_id="18#HBO 3">HBO 3</channel>
<channel lang="bg" xmltv_id="HBOCEE.hu" site_id="18#HBO">HBO</channel>
<channel lang="bg" xmltv_id="HitMixChannel.bg" site_id="12#Hit Mix">Hit Mix Channel</channel>
<channel lang="bg" xmltv_id="HustlerTVEurope.nl" site_id="22#Hustler">Hustler TV</channel>
<channel lang="bg" xmltv_id="InvestigationDiscoveryEurope.us" site_id="19#Investigation Discovery">Investigation Discovery</channel>
<channel lang="bg" xmltv_id="JimJamEurope.uk" site_id="8#Jim Jam">JimJam</channel>
<channel lang="de" xmltv_id="Jukebox.de" site_id="14#Jukebox">Jukebox</channel>
<channel lang="tr" xmltv_id="Kanal7Avrupa.tr" site_id="24#Kanal 7 Avrupa ">Kanal 7 Avrupa</channel>
<channel lang="bg" xmltv_id="KinoNova.bg" site_id="2#Кино Нова">Kino Nova</channel>
<channel lang="bg" xmltv_id="MagicTV.bg" site_id="13#Magic TV HD">Magic TV</channel>
<channel lang="bg" xmltv_id="MaxSport1.bg" site_id="3#MAX Sport 1 HD">Max Sport 1 HD</channel>
<channel lang="bg" xmltv_id="MaxSport2.bg" site_id="3#MAX Sport 2 HD">Max Sport 2 HD</channel>
<channel lang="bg" xmltv_id="MaxSport3.bg" site_id="3#MAX Sport 3 HD">Max Sport 3 HD</channel>
<channel lang="bg" xmltv_id="MediasetItalia.it" site_id="11#Mediaset">Mediaset Italia</channel>
<channel lang="en" xmltv_id="Mezzo.fr" site_id="14#Mezzo">Mezzo</channel>
<channel lang="de" xmltv_id="MotorvisionTV.de" site_id="4#Motorvision">Motorvision TV</channel>
<channel lang="bg" xmltv_id="MovieStar.bg" site_id="18#Movie Star">Movie Star</channel>
<channel lang="en" xmltv_id="MTV00s.uk" site_id="13#MTV 00s">MTV 00s</channel>
<channel lang="en" xmltv_id="MTV80s.uk" site_id="13#MTV 80s">MTV 80s</channel>
<channel lang="en" xmltv_id="MTV90s.uk" site_id="14#MTV 90s">MTV 90s</channel>
<channel lang="en" xmltv_id="MTVHitsEurope.uk" site_id="14#MTV Hits">MTV Hits</channel>
<channel lang="en" xmltv_id="MTVLive.uk" site_id="14#MTV live">MTV Live</channel>
<channel lang="bg" xmltv_id="NationalGeographicBulgaria.bg" site_id="15#National Geographic HD">National Geographic HD</channel>
<channel lang="bg" xmltv_id="NationalGeographicWildBulgaria.bg" site_id="15#Nat Geo Wild HD">National Geographic Wild HD</channel>
<channel lang="bg" xmltv_id="NickelodeonBulgaria.bg" site_id="8#Nickelodeon">Nickelodeon</channel>
<channel lang="bg" xmltv_id="NickJrBulgaria.bg" site_id="8#Nick Junior">Nick Jr</channel>
<channel lang="bg" xmltv_id="NovaNews.bg" site_id="1#Nova News HD">Nova News HD</channel>
<channel lang="bg" xmltv_id="NovaSport.bg" site_id="18#Nova Sport">Nova Sport</channel>
<channel lang="bg" xmltv_id="NovaTV.bg" site_id="1#Nova TV">Nova TV</channel>
<channel lang="bg" xmltv_id="PenthouseGold.us" site_id="21#Penthouse HD">Penthouse HD</channel>
<channel lang="bg" xmltv_id="PlanetaFolk.bg" site_id="12#Планета Фолк">Planeta Folk</channel>
<channel lang="bg" xmltv_id="PlanetaTV.bg" site_id="12#Планета ТВ HD">Planeta TV</channel>
<channel lang="bg" xmltv_id="PlayboyTVEurope.us" site_id="21#Playboy HD">Playboy TV HD</channel>
<channel lang="bg" xmltv_id="RedlightHD.nl" site_id="21#REDLIGHT">Redlight</channel>
<channel lang="bg" xmltv_id="Ring.bg" site_id="18#RING">Ring</channel>
<channel lang="en" xmltv_id="RTArabic.ru" site_id="10#Russia Today Arabic ">RT Arabic</channel>
<channel lang="bg" xmltv_id="RTLGermany.de" site_id="11#RTL">RTL</channel>
<channel lang="bg" xmltv_id="ShowTurk.tr" site_id="11#Show Turk">Show Turk</channel>
<channel lang="bg" xmltv_id="SKAT.bg" site_id="2#СКАТ">SKAT</channel>
<channel lang="en" xmltv_id="StingrayiConcerts.ca" site_id="15#iConcerts">Stingray IConcerts</channel>
<channel lang="bg" xmltv_id="TGCom24.it" site_id="11#TG Com 24">TGCom 24</channel>
<channel lang="bg" xmltv_id="TheFishingHuntingChannel.hu" site_id="5#Fishing &amp; Hunting HD">The Fishing &amp; Hunting Channel</channel>
<channel lang="bg" xmltv_id="TheVoiceTV.bg" site_id="13#The Voice HD">The Voice TV</channel>
<channel lang="bg" xmltv_id="TheWorld.bg" site_id="17#The World">The World</channel>
<channel lang="bg" xmltv_id="TiankovFolk.bg" site_id="13#Tiankov Folk">Tiankov Folk</channel>
<channel lang="bg" xmltv_id="TLCBalkan.us" site_id="6#TLC">TLC</channel>
<channel lang="bg" xmltv_id="TravelTV.bg" site_id="17#Travel TV">Travel TV</channel>
<channel lang="bg" xmltv_id="TRTWorld.tr" site_id="11#TRT World">TRT World</channel>
<channel lang="bg" xmltv_id="TV1.bg" site_id="9#TV1">TV 1</channel>
<channel lang="bg" xmltv_id="TV3International.ru" site_id="23#TV 3">TV 3</channel>
<channel lang="tr" xmltv_id="TV8International.tr" site_id="24#TV 8">TV 8</channel>
<channel lang="bg" xmltv_id="TV999.bg" site_id="23#TV 999 HD">TV 999</channel>
<channel lang="bg" xmltv_id="TV1000East.ru" site_id="6#TV 1000">TV 1000</channel>
<channel lang="ru" xmltv_id="TV1000RusskoeKino.ru" site_id="23#TV 1000 Русское Кино">TV 1000 Russkoe Kino</channel>
<channel lang="bg" xmltv_id="TVBulgare.bg" site_id="16#БЪЛГАРЕ">TV Bulgare</channel>
<channel lang="bg" xmltv_id="TVEvropa.bg" site_id="2#ТВ Европа">TV Evropa</channel>
<channel lang="ro" xmltv_id="TVRInternational.ro" site_id="12#TVR International">TVR International</channel>
<channel lang="bg" xmltv_id="TVTourism.bg" site_id="17#TVT Телевизия туризъм">TV Tourism</channel>
<channel lang="bg" xmltv_id="ViasatExplore.se" site_id="15#Viasat Explore">Viasat Explore</channel>
<channel lang="bg" xmltv_id="ViasatHistory.se" site_id="15#Viasat History">Viasat History</channel>
<channel lang="bg" xmltv_id="ViasatNature.se" site_id="15#Viasat Nature">Viasat Nature</channel>
<channel lang="bg" xmltv_id="VivacomArena.bg" site_id="1#VIVACOM Arena HD">Vivacom Arena HD</channel>
<channel lang="bg" xmltv_id="VoxGermany.de" site_id="11#VOX">Vox</channel>
<channel lang="bg" xmltv_id="VTK.bg" site_id="9#ВТК">VTK</channel>
<channel lang="en" xmltv_id="WildTV.ca" site_id="5#Wild TV">Wild TV</channel>
<channel lang="bg" xmltv_id="WnessTV.bg" site_id="2#WNESS TV">Wness TV</channel>
<channel lang="bg" xmltv_id="XXL.fr" site_id="22#XXL">XXL</channel>
<channel lang="tr" xmltv_id="Yaban.tr" site_id="24#Yaban TV">Yaban</channel>
</channels>
</site>

View File

@@ -0,0 +1,78 @@
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')
dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
module.exports = {
site: 'vivacom.bg',
days: 2,
skip: true, // INFO: no longer available
url({ date, channel }) {
const [page] = channel.site_id.split('#')
return `https://www.vivacom.bg/bg/tv/programa/?date=${date.format('YYYY-MM-DD')}&page=${page}`
},
parser: function ({ content, channel, date }) {
let programs = []
const items = parseItems(content, channel)
items.forEach(item => {
programs.push({
title: parseTitle(item),
description: parseDescription(item),
start: parseStart(item, date),
stop: parseStop(item, date)
})
})
return programs
}
}
function parseStart(item, date) {
const $ = cheerio.load(item)
let [_, time] = $('span')
.text()
.match(/^(\d{2}:\d{2}:\d{2})/) || [null, null]
if (!time) return null
time = `${date.format('YYYY-MM-DD')} ${time}`
return dayjs.tz(time, 'YYYY-MM-DD HH:mm:ss', 'Europe/Sofia').toJSON()
}
function parseStop(item, date, pm) {
const $ = cheerio.load(item)
let [_, time] = $('span')
.text()
.match(/(\d{2}:\d{2}:\d{2})$/) || [null, null]
if (!time) return null
if (time === '00:00:00') date = date.add(1, 'd')
time = `${date.format('YYYY-MM-DD')} ${time}`
return dayjs.tz(time, 'YYYY-MM-DD HH:mm:ss', 'Europe/Sofia').toJSON()
}
function parseTitle(item) {
const $ = cheerio.load(item)
return $('h3').text()
}
function parseDescription(item) {
const $ = cheerio.load(item)
return $('p').text()
}
function parseItems(content, channel) {
const [_, channelId] = channel.site_id.split('#')
const $ = cheerio.load(content)
const listItem = $(`#scroll-vertical > li[title="${channelId}"]`)
const i = $(`#scroll-vertical > li`).index(listItem)
return $(`#scroll-horizontal > ul:nth-child(${i + 1}) li`).toArray()
}

View File

@@ -0,0 +1,44 @@
// npx epg-grabber --config=sites/vivacom.bg/vivacom.bg.config.js --channels=sites/vivacom.bg/vivacom.bg.channels.xml --output=guide.xml --days=2
const { parser, url, request } = require('./vivacom.bg.config.js')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(customParseFormat)
dayjs.extend(utc)
const date = dayjs.utc('2021-11-05', 'YYYY-MM-DD').startOf('d')
const channel = { site_id: '1#БНТ 1 HD', xmltv_id: 'BNT1.bg' }
const content = `<!DOCTYPE html><head></head> <body class="bg-BG" lang="en-UK"><div class="table site-table"> <main> <div class="block-preview no-pb"> <section> <div class="wrapper"> <div class="tv-schedule"> <div class="schedule"> <div class="sidebar"> <div class="inner"> <ol id="scroll-vertical"> <li title="БНТ 1 HD"> <img src="/web/files/richeditor/tv/bnt-1-hd.png" width="90" height="60" alt="БНТ 1 HD" class="additional" /> </li> <li title="bTV HD"> <img src="/web/files/richeditor/tv/btv-hd-80x50.png" width="90" height="60" alt="bTV HD" /> </li> <li title="Nova TV"> <img src="/web/files/richeditor/tv/tv-channels-logos/nova-80x50.png" width="90" height="60" alt="Nova TV" /> </li> <li title="Nova HD "> <img src="/web/files/richeditor/tv/nova-tv-blue-logo-80x50.png" width="90" height="60" alt="Nova HD " /> </li> <li title="VIVACOM Arena HD"> <img src="/web/files/richeditor/tv/vivacom-arena-new-logo.png" width="90" height="60" alt="VIVACOM Arena HD" /> </li> <li title="Nova News HD"> <img src="/web/files/richeditor/tv/nova-news-hd-80x50.png" width="90" height="60" alt="Nova News HD" /> </li> <li title="bTV Comedy HD"> <img src="/web/files/richeditor/tv/btv-comedy-hd-80x50.png" width="90" height="60" alt="bTV Comedy HD" /> </li> <li title="bTV Cinema HD"> <img src="/web/files/richeditor/tv/btv-cinema-hd-80x50.png" width="90" height="60" alt="bTV Cinema HD" /> </li> <li title="bTV Action HD"> <img src="/web/files/richeditor/tv/tv-channels-logos/btv-actionhd-newlogo.png" width="90" height="60" alt="bTV Action HD" /> </li> <li title="Diema"> <img src="/web/files/richeditor/tv/tv-channels-logos/diema-80x50.png" width="90" height="60" alt="Diema" /> </li> </ol> </div> </div> <div class="content"><div class="inner"> <div id="scroll-horizontal"> <ul> <li style="width: 270px;"> <h3>Когато сърцето зове</h3> <span>04:25:00 - 05:10:00</span> <p>Телевизионен филм. Тв филм /4 сезон, 5 епизод/п/</p> </li> <li style="width: 270px;"> <h3>Dreamy Nights: Songs & Rhymes</h3> <span>23:30:00 - 00:00:00</span> <p>Songs & Rhymes, Flowers, Milky Way, Close Your Eyes, Twilight</p> </li> </ul> </div> </div> </div> </div> </section> </div> </main>`
it('can generate valid url', () => {
const result = url({ date, channel })
expect(result).toBe('https://www.vivacom.bg/bg/tv/programa/?date=2021-11-05&page=1')
})
it('can parse response', () => {
const result = parser({ date, channel, content })
expect(result).toMatchObject([
{
start: '2021-11-05T02:25:00.000Z',
stop: '2021-11-05T03:10:00.000Z',
title: 'Когато сърцето зове',
description: 'Телевизионен филм. Тв филм /4 сезон, 5 епизод/п/'
},
{
start: '2021-11-05T21:30:00.000Z',
stop: '2021-11-05T22:00:00.000Z',
title: 'Dreamy Nights: Songs & Rhymes',
description: 'Songs & Rhymes, Flowers, Milky Way, Close Your Eyes, Twilight'
}
])
})
it('can handle empty guide', () => {
const result = parser({
date,
channel,
content: `<!DOCTYPE html><head></head> <body class="bg-BG" lang="en-UK"><div class="table site-table"> <main> <div class="block-preview no-pb"> <section> <div class="wrapper"> <div class="tv-schedule"> <div class="schedule"> <div class="sidebar"> <div class="inner"> <ol id="scroll-vertical"> </ol> </div> </div> <div class="content"> <div class="inner"> <div id="scroll-horizontal"> </div> </div> </div> </div> </section> </div> </main>`
})
expect(result).toMatchObject([])
})