mirror of
https://github.com/iptv-org/epg
synced 2025-12-16 10:26:41 -05:00
Replace LF line endings with CRLF
This commit is contained in:
@@ -1,187 +1,187 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<channels>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="kabeleins.de" site_id="10163">Kabel eins</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="Nitro.de" site_id="10171">Nitro</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="ORF1.at" site_id="10115">ORF 1</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="ORF2.at" site_id="10116">ORF 2</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="ORFIII.at" site_id="10117">ORF III</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="ProSieben.de" site_id="10165">ProSieben</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="RTL.de" site_id="10166">RTL DE</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="RTLZwei.de" site_id="10167">RTL Zwei</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="SAT1.de" site_id="10169">SAT 1</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="RTLSuper.de" site_id="10168">Super RTL</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="VOX.de" site_id="10170">VOX</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="WELT.de" site_id="10164">WELT</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="360TuneBox.nl" site_id="10200">360 TuneBox HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="BabesTV.us" site_id="10187">BabesTV HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="BrazzersTVEurope.us" site_id="10188">Brazzers TV HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="ClubMTVEurope.uk" site_id="10094">Club MTV</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="CNBCEurope.uk" site_id="10110">CNBC Europe HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="CNNInternational.us@MENA" site_id="10108">CNN</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="DocuBox.nl" site_id="10129">Docubox HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="DW.de@English" site_id="10109">Deutsche Welle HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="EroXXX.nl@HD" site_id="10131">EroXXX HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="EuronewsEnglish.fr" site_id="10111">Euronews HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="EXTASYTV.cz" site_id="10136">Extasy HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="ExtremeSportsChannel.nl" site_id="10079">Extreme Sports</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="FashionBox.nl" site_id="10202">FashionBox HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="FashionTVEurope.fr" site_id="10105">Fashion TV HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="FastFunBox.nl" site_id="10130">Fast & FunBox HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="FightBox.nl" site_id="10128">Fightbox HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="FilmBoxArthouse.nl" site_id="10201">FilmBox Arthouse HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="FREEDOM.ua" site_id="10190">UATV</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="Mezzo.fr" site_id="10104">Mezzo</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="MTV00s.uk" site_id="10096">MTV 00s</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="MTV80s.uk" site_id="10097">MTV 80s</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="MTV90s.uk" site_id="10095">MTV 90s</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="MTVLive.uk" site_id="10093">MTV Live HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="RealityKingsTV.us" site_id="10189">Reality Kings HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="SkyNewsInternational.uk" site_id="10197">Sky News</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="TRTWorld.tr" site_id="10119">TRT World HD</channel>
|
||||
<channel site="horizon.tv" lang="fr" xmltv_id="France24.fr@French" site_id="10112">France 24</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10020">CT D HD / CT art HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10046">CS Film CS Horror HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10051">Crime and Investigation</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10055">ID HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10062">TLC HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10078">Golf Channel HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10092">MTV Europe</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10144">Filmbox HU</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10196">Markiza Krimi HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10199">Skvele TV HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10203">E! Entertainment HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10204">TV Doktor HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="24.sk" site_id="10193">RTVS 24 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="AMCEurope.uk@CzechRepublic" site_id="10024">AMC HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="AnimalPlanetEurope.uk" site_id="10049">Animal Planet HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="ATV.hu" site_id="10147">Magyar ATV</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="automotorundsportchannel.de" site_id="10077">Auto Motor Sport</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="BarrandovKrimi.cz" site_id="10033">Barrandov Krimi HD</channel>
|
||||
<channel site="horizon.tv" lang="eo" xmltv_id="Bober.ru" site_id="10178">Bober</channel>
|
||||
<channel site="horizon.tv" lang="pl" xmltv_id="Carousel.ru" site_id="10180">Carousel</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CartoonNetworkCEE.uk@CzechRepublic" site_id="10091">Cartoon Network HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="Cinemax2CentralEurope.hu@HD" site_id="10124">Cinemax 2 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CinemaxCentralEurope.hu@HD" site_id="10123">Cinemax HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="CNNPrimaNews.cz" site_id="10026">CNN Prima News HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="CoolTV.hu" site_id="10149">Cool TV</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CSHistory.cz" site_id="10047">CS History HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CSMystery.cz" site_id="10048">CS Mystery HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CT1.cz" site_id="10018">CT 1 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CT2.cz" site_id="10019">CT 2 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CT24.cz" site_id="10021">CT 24 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CTSport.cz" site_id="10082">CT sport HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="CurrentTimeTV.cz" site_id="10194">Current Time HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="DiscoveryChannelEurope.uk@CzechRepublic" site_id="10052">Discovery HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="DiscoveryScienceEurope.uk@CzechRepublic" site_id="10053">Discovery Science HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="DisneyChannel.cz" site_id="10086">Disney Channel</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Domkino.ru" site_id="10174">Dom Kino</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="DomkinoPremium.ru" site_id="10173">Dom Kino PREMIUM HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="DTX.cz" site_id="10054">DTX HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="ducktv.sk" site_id="10084">ducktv HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="Duna.hu" site_id="10146">Duna HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="DunaWorld.hu" site_id="10145">Duna World HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Dvojka.sk" site_id="10002">Dvojka HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="EspresoTV.ua" site_id="10192">Espreso TV</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="EuronewsHungarian.fr" site_id="10152">Euronews HU</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Eurosport1.fr" site_id="10072">Eurosport 1 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Eurosport2.fr" site_id="10073">Eurosport 2 HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="FEM3.hu" site_id="10161">Fem3</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="FilmBox.nl" site_id="10044">FilmBox HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="FilmBoxExtra.nl@CzechRepublic" site_id="10125">FilmBox Extra HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="FilmBoxFamily.nl" site_id="10045">FilmBox Family</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="FilmBoxPremium.nl@CzechRepublic" site_id="10126">FilmBox Premium HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="FilmBoxStars.nl@CzechRepublic" site_id="10127">FilmBox Stars HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="FilmPlus.cz" site_id="10043">Film+ CZ HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="FilmPlus.hu" site_id="10162">FILM+ HU</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Folklorika.sk" site_id="10014">Folklorika HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="FoodNetwork.hu" site_id="10056">Food Network HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="HBO2CentralEurope.hu@HD" site_id="10121">HBO 2 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="HBO3CentralEurope.hu@HD" site_id="10122">HBO 3 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="HBOCentralEurope.hu@HD" site_id="10120">HBO HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="HirTV.hu" site_id="10137">HirTV</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="History.cz" site_id="10057">History HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="HobbyTV.cz" site_id="10069">Hobby TV HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Jednotka.sk" site_id="10001">Jednotka HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="JimJam.hu" site_id="10087">JimJam</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="JOJ24.sk" site_id="10198">JOJ 24 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="JOJCinema.sk" site_id="10007">JOJ Cinema HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Jojko.sk" site_id="10011">Jojko HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="JOJPlus.sk" site_id="10006">JOJ Plus HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="JOJSport.sk" site_id="10185">JOJ Sport HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="JOJWAU.sk" site_id="10009">WAU HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="KinoBarrandov.cz" site_id="10034">Kino Barrandov HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="LEOTV.cz" site_id="10134">Leo TV HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="M1.hu" site_id="10138">m1 HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="M2.hu" site_id="10139">m2 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="M4Sport.hu" site_id="10141">m4 Sport HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="M5.hu" site_id="10140">m5 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Markiza.sk" site_id="10003">Markiza HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="MarkizaDajto.sk" site_id="10008">Dajto HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="MarkizaDoma.sk" site_id="10004">Doma HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="MinimaxCEE.cz" site_id="10085">Minimax</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="MnamTV.cz" site_id="10036">Mnam TV HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="MnauTV.cz" site_id="10037">Mnau TV HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="MuzsikaTV.hu" site_id="10156">Muzsika TV</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="MuzykaPervogo.ru" site_id="10182">Muzika Pervogo</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="NationalGeographic.cz" site_id="10058">National Geographic HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="NationalGeographicWild.cz" site_id="10059">Nat Geo Wild HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Nickelodeon.cz" site_id="10088">Nickelodeon</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="NickJr.cz" site_id="10089">Nick Jr.</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="Nicktoons.cz" site_id="10090">NickToons</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="NovaInternational.cz" site_id="10022">Nova International HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="NovaSport1.cz" site_id="10080">Nova Sport 1 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="NovaSport2.cz" site_id="10081">Nova Sport 2 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="O.ru" site_id="10181">O!</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="ParkTV.sk" site_id="10070">Park TV HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Pobeda.ru" site_id="10179">Pobeda</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Poehali.ru" site_id="10176">Poekhali!</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="PrimaCool.cz" site_id="10029">Prima COOL HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="PrimaKrimi.cz" site_id="10027">Prima KRIMI HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="PrimaLove.cz" site_id="10030">Prima love HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="PrimaMax.cz" site_id="10028">Prima MAX HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="PrimaPlus.cz" site_id="10023">Prima PLUS HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="PrimaZoom.cz" site_id="10031">Prima ZOOM HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Relax.cz" site_id="10106">RELAX</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="RetroMusicTV.cz" site_id="10098">Retro Music TV</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="RTL.hu" site_id="10142">RTL HU</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="RTLGold.hu" site_id="10153">RTL Gold</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="RTLHarom.hu" site_id="10154">RTL HAROM</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="RTLKetto.hu" site_id="10143">RTL KETTO</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Senzi.sk" site_id="10016">SENZI HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="SlagerMuzika.cz" site_id="10102">Slager muzika HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="SlagerOriginal.cz" site_id="10101">Slager original HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="SlagerPremium.cz" site_id="10103">Slager Premium HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="SlagerTV.hu" site_id="10157">Slager TV HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="SorozatPlus.hu" site_id="10155">Sorozat+</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Spektrum.cz" site_id="10060">Spektrum HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="SpektrumHome.hu" site_id="10061">Spektrum home HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Sport1.cz" site_id="10074">Sport 1 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Sport2.cz" site_id="10075">Sport 2 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Sport.sk" site_id="10186">RTVS Sport HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="Story4.hu" site_id="10158">Story 4</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="SuperTV2.hu" site_id="10159">Super TV2</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TA3.sk" site_id="10012">TA3 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Telecafe.ru" site_id="10177">Telecafe</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="TelevizeSeznam.cz" site_id="10025">Seznam.cz TV HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TheFishingHuntingChannel.hu" site_id="10068">Fishing and Hunting</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="TravelChannelEMEA.uk@Hungary" site_id="10064">Travel Channel HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TurboTV.sk" site_id="10195">TurboTV HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="TV2.hu" site_id="10148">TV2</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="TV2Sef.hu" site_id="10160">TV2Sef</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="TV4.hu" site_id="10150">TV4</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TV8.sk" site_id="10015">TV8 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="TVBarrandov.cz" site_id="10032">Barrandov TV HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TVJOJ.sk" site_id="10005">JOJ HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TVLux.sk" site_id="10013">TV LUX HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="TVNoe.cz" site_id="10035">Noe TV HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="TVPaprika.cz" site_id="10063">TV Paprika HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="TVPaprika.hu" site_id="10151">TV Paprika HU</channel>
|
||||
<channel site="horizon.tv" lang="pl" xmltv_id="TVPPolonia.pl" site_id="10118">TVP Polonia HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TVRaj.sk" site_id="10038">TV Raj HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TVRomana.sk" site_id="10184">TV Romana HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TVRuzinov.sk" site_id="10039">TV Ruzinov HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="ViasatExplore.cz" site_id="10065">Viasat Explore HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="ViasatHistory.cz" site_id="10066">Viasat History HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="ViasatNature.cz" site_id="10067">Viasat Nature HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Vremya.ru" site_id="10175">Vremja</channel>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<channels>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="kabeleins.de" site_id="10163">Kabel eins</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="Nitro.de" site_id="10171">Nitro</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="ORF1.at" site_id="10115">ORF 1</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="ORF2.at" site_id="10116">ORF 2</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="ORFIII.at" site_id="10117">ORF III</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="ProSieben.de" site_id="10165">ProSieben</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="RTL.de" site_id="10166">RTL DE</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="RTLZwei.de" site_id="10167">RTL Zwei</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="SAT1.de" site_id="10169">SAT 1</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="RTLSuper.de" site_id="10168">Super RTL</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="VOX.de" site_id="10170">VOX</channel>
|
||||
<channel site="horizon.tv" lang="de" xmltv_id="WELT.de" site_id="10164">WELT</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="360TuneBox.nl" site_id="10200">360 TuneBox HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="BabesTV.us" site_id="10187">BabesTV HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="BrazzersTVEurope.us" site_id="10188">Brazzers TV HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="ClubMTVEurope.uk" site_id="10094">Club MTV</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="CNBCEurope.uk" site_id="10110">CNBC Europe HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="CNNInternational.us@MENA" site_id="10108">CNN</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="DocuBox.nl" site_id="10129">Docubox HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="DW.de@English" site_id="10109">Deutsche Welle HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="EroXXX.nl@HD" site_id="10131">EroXXX HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="EuronewsEnglish.fr" site_id="10111">Euronews HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="EXTASYTV.cz" site_id="10136">Extasy HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="ExtremeSportsChannel.nl" site_id="10079">Extreme Sports</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="FashionBox.nl" site_id="10202">FashionBox HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="FashionTVEurope.fr" site_id="10105">Fashion TV HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="FastFunBox.nl" site_id="10130">Fast & FunBox HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="FightBox.nl" site_id="10128">Fightbox HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="FilmBoxArthouse.nl" site_id="10201">FilmBox Arthouse HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="FREEDOM.ua" site_id="10190">UATV</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="Mezzo.fr" site_id="10104">Mezzo</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="MTV00s.uk" site_id="10096">MTV 00s</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="MTV80s.uk" site_id="10097">MTV 80s</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="MTV90s.uk" site_id="10095">MTV 90s</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="MTVLive.uk" site_id="10093">MTV Live HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="RealityKingsTV.us" site_id="10189">Reality Kings HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="SkyNewsInternational.uk" site_id="10197">Sky News</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="TRTWorld.tr" site_id="10119">TRT World HD</channel>
|
||||
<channel site="horizon.tv" lang="fr" xmltv_id="France24.fr@French" site_id="10112">France 24</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10020">CT D HD / CT art HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10046">CS Film CS Horror HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10051">Crime and Investigation</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10055">ID HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10062">TLC HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10078">Golf Channel HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10092">MTV Europe</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10144">Filmbox HU</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10196">Markiza Krimi HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10199">Skvele TV HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10203">E! Entertainment HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="" site_id="10204">TV Doktor HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="24.sk" site_id="10193">RTVS 24 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="AMCEurope.uk@CzechRepublic" site_id="10024">AMC HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="AnimalPlanetEurope.uk" site_id="10049">Animal Planet HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="ATV.hu" site_id="10147">Magyar ATV</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="automotorundsportchannel.de" site_id="10077">Auto Motor Sport</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="BarrandovKrimi.cz" site_id="10033">Barrandov Krimi HD</channel>
|
||||
<channel site="horizon.tv" lang="eo" xmltv_id="Bober.ru" site_id="10178">Bober</channel>
|
||||
<channel site="horizon.tv" lang="pl" xmltv_id="Carousel.ru" site_id="10180">Carousel</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CartoonNetworkCEE.uk@CzechRepublic" site_id="10091">Cartoon Network HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="Cinemax2CentralEurope.hu@HD" site_id="10124">Cinemax 2 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CinemaxCentralEurope.hu@HD" site_id="10123">Cinemax HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="CNNPrimaNews.cz" site_id="10026">CNN Prima News HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="CoolTV.hu" site_id="10149">Cool TV</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CSHistory.cz" site_id="10047">CS History HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CSMystery.cz" site_id="10048">CS Mystery HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CT1.cz" site_id="10018">CT 1 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CT2.cz" site_id="10019">CT 2 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CT24.cz" site_id="10021">CT 24 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="CTSport.cz" site_id="10082">CT sport HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="CurrentTimeTV.cz" site_id="10194">Current Time HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="DiscoveryChannelEurope.uk@CzechRepublic" site_id="10052">Discovery HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="DiscoveryScienceEurope.uk@CzechRepublic" site_id="10053">Discovery Science HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="DisneyChannel.cz" site_id="10086">Disney Channel</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Domkino.ru" site_id="10174">Dom Kino</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="DomkinoPremium.ru" site_id="10173">Dom Kino PREMIUM HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="DTX.cz" site_id="10054">DTX HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="ducktv.sk" site_id="10084">ducktv HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="Duna.hu" site_id="10146">Duna HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="DunaWorld.hu" site_id="10145">Duna World HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Dvojka.sk" site_id="10002">Dvojka HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="EspresoTV.ua" site_id="10192">Espreso TV</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="EuronewsHungarian.fr" site_id="10152">Euronews HU</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Eurosport1.fr" site_id="10072">Eurosport 1 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Eurosport2.fr" site_id="10073">Eurosport 2 HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="FEM3.hu" site_id="10161">Fem3</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="FilmBox.nl" site_id="10044">FilmBox HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="FilmBoxExtra.nl@CzechRepublic" site_id="10125">FilmBox Extra HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="FilmBoxFamily.nl" site_id="10045">FilmBox Family</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="FilmBoxPremium.nl@CzechRepublic" site_id="10126">FilmBox Premium HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="FilmBoxStars.nl@CzechRepublic" site_id="10127">FilmBox Stars HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="FilmPlus.cz" site_id="10043">Film+ CZ HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="FilmPlus.hu" site_id="10162">FILM+ HU</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Folklorika.sk" site_id="10014">Folklorika HD</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="FoodNetwork.hu" site_id="10056">Food Network HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="HBO2CentralEurope.hu@HD" site_id="10121">HBO 2 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="HBO3CentralEurope.hu@HD" site_id="10122">HBO 3 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="HBOCentralEurope.hu@HD" site_id="10120">HBO HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="HirTV.hu" site_id="10137">HirTV</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="History.cz" site_id="10057">History HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="HobbyTV.cz" site_id="10069">Hobby TV HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Jednotka.sk" site_id="10001">Jednotka HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="JimJam.hu" site_id="10087">JimJam</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="JOJ24.sk" site_id="10198">JOJ 24 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="JOJCinema.sk" site_id="10007">JOJ Cinema HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Jojko.sk" site_id="10011">Jojko HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="JOJPlus.sk" site_id="10006">JOJ Plus HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="JOJSport.sk" site_id="10185">JOJ Sport HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="JOJWAU.sk" site_id="10009">WAU HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="KinoBarrandov.cz" site_id="10034">Kino Barrandov HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="LEOTV.cz" site_id="10134">Leo TV HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="M1.hu" site_id="10138">m1 HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="M2.hu" site_id="10139">m2 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="M4Sport.hu" site_id="10141">m4 Sport HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="M5.hu" site_id="10140">m5 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Markiza.sk" site_id="10003">Markiza HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="MarkizaDajto.sk" site_id="10008">Dajto HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="MarkizaDoma.sk" site_id="10004">Doma HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="MinimaxCEE.cz" site_id="10085">Minimax</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="MnamTV.cz" site_id="10036">Mnam TV HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="MnauTV.cz" site_id="10037">Mnau TV HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="MuzsikaTV.hu" site_id="10156">Muzsika TV</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="MuzykaPervogo.ru" site_id="10182">Muzika Pervogo</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="NationalGeographic.cz" site_id="10058">National Geographic HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="NationalGeographicWild.cz" site_id="10059">Nat Geo Wild HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Nickelodeon.cz" site_id="10088">Nickelodeon</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="NickJr.cz" site_id="10089">Nick Jr.</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="Nicktoons.cz" site_id="10090">NickToons</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="NovaInternational.cz" site_id="10022">Nova International HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="NovaSport1.cz" site_id="10080">Nova Sport 1 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="NovaSport2.cz" site_id="10081">Nova Sport 2 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="O.ru" site_id="10181">O!</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="ParkTV.sk" site_id="10070">Park TV HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Pobeda.ru" site_id="10179">Pobeda</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Poehali.ru" site_id="10176">Poekhali!</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="PrimaCool.cz" site_id="10029">Prima COOL HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="PrimaKrimi.cz" site_id="10027">Prima KRIMI HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="PrimaLove.cz" site_id="10030">Prima love HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="PrimaMax.cz" site_id="10028">Prima MAX HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="PrimaPlus.cz" site_id="10023">Prima PLUS HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="PrimaZoom.cz" site_id="10031">Prima ZOOM HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Relax.cz" site_id="10106">RELAX</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="RetroMusicTV.cz" site_id="10098">Retro Music TV</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="RTL.hu" site_id="10142">RTL HU</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="RTLGold.hu" site_id="10153">RTL Gold</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="RTLHarom.hu" site_id="10154">RTL HAROM</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="RTLKetto.hu" site_id="10143">RTL KETTO</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Senzi.sk" site_id="10016">SENZI HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="SlagerMuzika.cz" site_id="10102">Slager muzika HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="SlagerOriginal.cz" site_id="10101">Slager original HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="SlagerPremium.cz" site_id="10103">Slager Premium HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="SlagerTV.hu" site_id="10157">Slager TV HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="SorozatPlus.hu" site_id="10155">Sorozat+</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Spektrum.cz" site_id="10060">Spektrum HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="SpektrumHome.hu" site_id="10061">Spektrum home HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Sport1.cz" site_id="10074">Sport 1 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Sport2.cz" site_id="10075">Sport 2 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Sport.sk" site_id="10186">RTVS Sport HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="Story4.hu" site_id="10158">Story 4</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="SuperTV2.hu" site_id="10159">Super TV2</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TA3.sk" site_id="10012">TA3 HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Telecafe.ru" site_id="10177">Telecafe</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="TelevizeSeznam.cz" site_id="10025">Seznam.cz TV HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TheFishingHuntingChannel.hu" site_id="10068">Fishing and Hunting</channel>
|
||||
<channel site="horizon.tv" lang="en" xmltv_id="TravelChannelEMEA.uk@Hungary" site_id="10064">Travel Channel HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TurboTV.sk" site_id="10195">TurboTV HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="TV2.hu" site_id="10148">TV2</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="TV2Sef.hu" site_id="10160">TV2Sef</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="TV4.hu" site_id="10150">TV4</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TV8.sk" site_id="10015">TV8 HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="TVBarrandov.cz" site_id="10032">Barrandov TV HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TVJOJ.sk" site_id="10005">JOJ HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TVLux.sk" site_id="10013">TV LUX HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="TVNoe.cz" site_id="10035">Noe TV HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="TVPaprika.cz" site_id="10063">TV Paprika HD</channel>
|
||||
<channel site="horizon.tv" lang="hu" xmltv_id="TVPaprika.hu" site_id="10151">TV Paprika HU</channel>
|
||||
<channel site="horizon.tv" lang="pl" xmltv_id="TVPPolonia.pl" site_id="10118">TVP Polonia HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TVRaj.sk" site_id="10038">TV Raj HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TVRomana.sk" site_id="10184">TV Romana HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="TVRuzinov.sk" site_id="10039">TV Ruzinov HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="ViasatExplore.cz" site_id="10065">Viasat Explore HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="ViasatHistory.cz" site_id="10066">Viasat History HD</channel>
|
||||
<channel site="horizon.tv" lang="cs" xmltv_id="ViasatNature.cz" site_id="10067">Viasat Nature HD</channel>
|
||||
<channel site="horizon.tv" lang="sk" xmltv_id="Vremya.ru" site_id="10175">Vremja</channel>
|
||||
</channels>
|
||||
@@ -1,145 +1,145 @@
|
||||
const axios = require('axios')
|
||||
const dayjs = require('dayjs')
|
||||
|
||||
const API_ENDPOINT = 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web'
|
||||
|
||||
module.exports = {
|
||||
site: 'horizon.tv',
|
||||
days: 3,
|
||||
request: {
|
||||
cache: {
|
||||
ttl: 60 * 60 * 1000 // 1 hour
|
||||
}
|
||||
},
|
||||
url: function ({ date }) {
|
||||
return `${API_ENDPOINT}/programschedules/${date.format('YYYYMMDD')}/1`
|
||||
},
|
||||
async parser({ content, channel, date }) {
|
||||
let programs = []
|
||||
let items = parseItems(content, channel)
|
||||
if (!items.length) return programs
|
||||
const d = date.format('YYYYMMDD')
|
||||
const promises = [
|
||||
axios.get(`${API_ENDPOINT}/programschedules/${d}/2`),
|
||||
axios.get(`${API_ENDPOINT}/programschedules/${d}/3`),
|
||||
axios.get(`${API_ENDPOINT}/programschedules/${d}/4`)
|
||||
]
|
||||
await Promise.allSettled(promises)
|
||||
.then(results => {
|
||||
results.forEach(r => {
|
||||
if (r.status === 'fulfilled') {
|
||||
items = items.concat(parseItems(r.value.data, channel))
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(console.error)
|
||||
for (let item of items) {
|
||||
const detail = await loadProgramDetails(item)
|
||||
programs.push({
|
||||
title: item.t,
|
||||
description: parseDescription(detail),
|
||||
category: parseCategory(detail),
|
||||
season: parseSeason(detail),
|
||||
episode: parseEpisode(detail),
|
||||
actors: parseActors(detail),
|
||||
directors: parseDirectors(detail),
|
||||
date: parseYear(detail),
|
||||
start: parseStart(item),
|
||||
stop: parseStop(item)
|
||||
})
|
||||
}
|
||||
|
||||
return programs
|
||||
},
|
||||
async channels() {
|
||||
const data = await axios
|
||||
.get(`${API_ENDPOINT}/channels`)
|
||||
.then(r => r.data)
|
||||
.catch(console.log)
|
||||
|
||||
return data.channels.map(item => {
|
||||
return {
|
||||
lang: 'sk',
|
||||
site_id: item.id.replace('lgi-obolite-sk-prod-master:5-', ''),
|
||||
name: item.title
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
async function loadProgramDetails(item) {
|
||||
if (!item.i) return {}
|
||||
const url = `${API_ENDPOINT}/listings/${item.i}`
|
||||
const data = await axios
|
||||
.get(url)
|
||||
.then(r => r.data)
|
||||
.catch(console.log)
|
||||
return data || {}
|
||||
}
|
||||
|
||||
function parseStart(item) {
|
||||
return dayjs(item.s)
|
||||
}
|
||||
|
||||
function parseStop(item) {
|
||||
return dayjs(item.e)
|
||||
}
|
||||
|
||||
function parseItems(content, channel) {
|
||||
if (!content) return []
|
||||
const data = typeof content === 'string' ? JSON.parse(content) : content
|
||||
if (!data || !Array.isArray(data.entries)) return []
|
||||
const entity = data.entries.find(e => e.o === `lgi-obolite-sk-prod-master:${channel.site_id}`)
|
||||
return entity ? entity.l : []
|
||||
}
|
||||
|
||||
function parseDescription(detail) {
|
||||
if (!detail) return []
|
||||
if (!detail.program) return []
|
||||
return detail.program.longDescription || null
|
||||
}
|
||||
|
||||
function parseCategory(detail) {
|
||||
if (!detail) return []
|
||||
if (!detail.program) return []
|
||||
if (!detail.program.categories) return []
|
||||
let categories = []
|
||||
detail.program.categories.forEach(category => {
|
||||
categories.push(category.title)
|
||||
})
|
||||
return categories
|
||||
}
|
||||
|
||||
function parseSeason(detail) {
|
||||
if (!detail) return null
|
||||
if (!detail.program) return null
|
||||
if (!detail.program.seriesNumber) return null
|
||||
if (String(detail.program.seriesNumber).length > 2) return null
|
||||
return detail.program.seriesNumber
|
||||
}
|
||||
|
||||
function parseEpisode(detail) {
|
||||
if (!detail) return null
|
||||
if (!detail.program) return null
|
||||
if (!detail.program.seriesEpisodeNumber) return null
|
||||
if (String(detail.program.seriesEpisodeNumber).length > 3) return null
|
||||
return detail.program.seriesEpisodeNumber
|
||||
}
|
||||
|
||||
function parseDirectors(detail) {
|
||||
if (!detail) return []
|
||||
if (!detail.program) return []
|
||||
return detail.program.directors || []
|
||||
}
|
||||
|
||||
function parseActors(detail) {
|
||||
if (!detail) return []
|
||||
if (!detail.program) return []
|
||||
return detail.program.cast || []
|
||||
}
|
||||
|
||||
function parseYear(detail) {
|
||||
if (!detail) return null
|
||||
if (!detail.program) return null
|
||||
return detail.program.year || null
|
||||
}
|
||||
const axios = require('axios')
|
||||
const dayjs = require('dayjs')
|
||||
|
||||
const API_ENDPOINT = 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web'
|
||||
|
||||
module.exports = {
|
||||
site: 'horizon.tv',
|
||||
days: 3,
|
||||
request: {
|
||||
cache: {
|
||||
ttl: 60 * 60 * 1000 // 1 hour
|
||||
}
|
||||
},
|
||||
url: function ({ date }) {
|
||||
return `${API_ENDPOINT}/programschedules/${date.format('YYYYMMDD')}/1`
|
||||
},
|
||||
async parser({ content, channel, date }) {
|
||||
let programs = []
|
||||
let items = parseItems(content, channel)
|
||||
if (!items.length) return programs
|
||||
const d = date.format('YYYYMMDD')
|
||||
const promises = [
|
||||
axios.get(`${API_ENDPOINT}/programschedules/${d}/2`),
|
||||
axios.get(`${API_ENDPOINT}/programschedules/${d}/3`),
|
||||
axios.get(`${API_ENDPOINT}/programschedules/${d}/4`)
|
||||
]
|
||||
await Promise.allSettled(promises)
|
||||
.then(results => {
|
||||
results.forEach(r => {
|
||||
if (r.status === 'fulfilled') {
|
||||
items = items.concat(parseItems(r.value.data, channel))
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(console.error)
|
||||
for (let item of items) {
|
||||
const detail = await loadProgramDetails(item)
|
||||
programs.push({
|
||||
title: item.t,
|
||||
description: parseDescription(detail),
|
||||
category: parseCategory(detail),
|
||||
season: parseSeason(detail),
|
||||
episode: parseEpisode(detail),
|
||||
actors: parseActors(detail),
|
||||
directors: parseDirectors(detail),
|
||||
date: parseYear(detail),
|
||||
start: parseStart(item),
|
||||
stop: parseStop(item)
|
||||
})
|
||||
}
|
||||
|
||||
return programs
|
||||
},
|
||||
async channels() {
|
||||
const data = await axios
|
||||
.get(`${API_ENDPOINT}/channels`)
|
||||
.then(r => r.data)
|
||||
.catch(console.log)
|
||||
|
||||
return data.channels.map(item => {
|
||||
return {
|
||||
lang: 'sk',
|
||||
site_id: item.id.replace('lgi-obolite-sk-prod-master:5-', ''),
|
||||
name: item.title
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
async function loadProgramDetails(item) {
|
||||
if (!item.i) return {}
|
||||
const url = `${API_ENDPOINT}/listings/${item.i}`
|
||||
const data = await axios
|
||||
.get(url)
|
||||
.then(r => r.data)
|
||||
.catch(console.log)
|
||||
return data || {}
|
||||
}
|
||||
|
||||
function parseStart(item) {
|
||||
return dayjs(item.s)
|
||||
}
|
||||
|
||||
function parseStop(item) {
|
||||
return dayjs(item.e)
|
||||
}
|
||||
|
||||
function parseItems(content, channel) {
|
||||
if (!content) return []
|
||||
const data = typeof content === 'string' ? JSON.parse(content) : content
|
||||
if (!data || !Array.isArray(data.entries)) return []
|
||||
const entity = data.entries.find(e => e.o === `lgi-obolite-sk-prod-master:${channel.site_id}`)
|
||||
return entity ? entity.l : []
|
||||
}
|
||||
|
||||
function parseDescription(detail) {
|
||||
if (!detail) return []
|
||||
if (!detail.program) return []
|
||||
return detail.program.longDescription || null
|
||||
}
|
||||
|
||||
function parseCategory(detail) {
|
||||
if (!detail) return []
|
||||
if (!detail.program) return []
|
||||
if (!detail.program.categories) return []
|
||||
let categories = []
|
||||
detail.program.categories.forEach(category => {
|
||||
categories.push(category.title)
|
||||
})
|
||||
return categories
|
||||
}
|
||||
|
||||
function parseSeason(detail) {
|
||||
if (!detail) return null
|
||||
if (!detail.program) return null
|
||||
if (!detail.program.seriesNumber) return null
|
||||
if (String(detail.program.seriesNumber).length > 2) return null
|
||||
return detail.program.seriesNumber
|
||||
}
|
||||
|
||||
function parseEpisode(detail) {
|
||||
if (!detail) return null
|
||||
if (!detail.program) return null
|
||||
if (!detail.program.seriesEpisodeNumber) return null
|
||||
if (String(detail.program.seriesEpisodeNumber).length > 3) return null
|
||||
return detail.program.seriesEpisodeNumber
|
||||
}
|
||||
|
||||
function parseDirectors(detail) {
|
||||
if (!detail) return []
|
||||
if (!detail.program) return []
|
||||
return detail.program.directors || []
|
||||
}
|
||||
|
||||
function parseActors(detail) {
|
||||
if (!detail) return []
|
||||
if (!detail.program) return []
|
||||
return detail.program.cast || []
|
||||
}
|
||||
|
||||
function parseYear(detail) {
|
||||
if (!detail) return null
|
||||
if (!detail.program) return null
|
||||
return detail.program.year || null
|
||||
}
|
||||
|
||||
@@ -1,246 +1,246 @@
|
||||
const { parser, url } = require('./horizon.tv.config.js')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const axios = require('axios')
|
||||
const dayjs = require('dayjs')
|
||||
const utc = require('dayjs/plugin/utc')
|
||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||
dayjs.extend(customParseFormat)
|
||||
dayjs.extend(utc)
|
||||
|
||||
jest.mock('axios')
|
||||
|
||||
const date = dayjs.utc('2023-02-07', 'YYYY-MM-DD').startOf('d')
|
||||
const channel = {
|
||||
site_id: '10024',
|
||||
xmltv_id: 'AMCCzechRepublic.cz'
|
||||
}
|
||||
|
||||
it('can generate valid url', () => {
|
||||
expect(url({ date, channel })).toBe(
|
||||
'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/programschedules/20230207/1'
|
||||
)
|
||||
})
|
||||
|
||||
it('can parse response', done => {
|
||||
const content = JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content.json'), 'utf8'))
|
||||
|
||||
axios.get.mockImplementation(url => {
|
||||
if (
|
||||
url === 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/programschedules/20230207/2'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content_1.json'), 'utf8'))
|
||||
})
|
||||
} else if (
|
||||
url === 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/programschedules/20230207/3'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content_2.json'), 'utf8'))
|
||||
})
|
||||
} else if (
|
||||
url === 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/programschedules/20230207/4'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content_3.json'), 'utf8'))
|
||||
})
|
||||
} else if (
|
||||
url === 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/listings/crid:~~2F~~2Fport.cs~~2F122941980,imi:7ca159c917344e0dd3fbe1cd8db5ff8043d96a78'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content_listings_1.json'), 'utf8'))
|
||||
})
|
||||
} else if (
|
||||
url === 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/listings/crid:~~2F~~2Fport.cs~~2F248281986,imi:e85129f9d1e211406a521df7a36f22237c22651b'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content_listings_2.json'), 'utf8'))
|
||||
})
|
||||
} else if (
|
||||
url === 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/listings/crid:~~2F~~2Fport.cs~~2F1379541,imi:5f806a2a0bc13e9745e14907a27116c60ea2c6ad'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content_listings_3.json'), 'utf8'))
|
||||
})
|
||||
} else if (
|
||||
url === 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/listings/crid:~~2F~~2Fport.cs~~2F71927954,imi:f1b4b0285b72cf44cba74e1c62322a4c682385c7'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content_listings_4.json'), 'utf8'))
|
||||
})
|
||||
} else {
|
||||
return Promise.resolve({ data: '' })
|
||||
}
|
||||
})
|
||||
|
||||
parser({ content, channel, date })
|
||||
.then(result => {
|
||||
result = result.map(p => {
|
||||
p.start = p.start.toJSON()
|
||||
p.stop = p.stop.toJSON()
|
||||
return p
|
||||
})
|
||||
|
||||
expect(result).toMatchObject([
|
||||
{
|
||||
start: '2023-02-06T21:35:00.000Z',
|
||||
stop: '2023-02-06T23:05:00.000Z',
|
||||
title: 'Avengement',
|
||||
description:
|
||||
'Během propustky z vězení za účelem návštěvy umírající matky v nemocnici zločinec Cain Burgess (Scott Adkins) unikne svým dozorcům a mizí v ulicích Londýna. Jde o epickou cestu krve a bolesti za dosažením vytoužené pomsty na těch, kteří z něj udělali chladnokrevného vraha.',
|
||||
category: ['Drama', 'Akcia'],
|
||||
directors: ['Jesse V. Johnson'],
|
||||
actors: [
|
||||
'Scott Adkins',
|
||||
'Craig Fairbrass',
|
||||
'Thomas Turgoose',
|
||||
'Nick Moran',
|
||||
'Kierston Wareing',
|
||||
'Leo Gregory',
|
||||
'Mark Strange',
|
||||
'Luke LaFontaine',
|
||||
'Beau Fowler',
|
||||
'Dan Styles',
|
||||
'Christopher Sciueref',
|
||||
'Matt Routledge',
|
||||
'Jane Thorne',
|
||||
'Louis Mandylor',
|
||||
'Terence Maynard',
|
||||
'Greg Burridge',
|
||||
'Michael Higgs',
|
||||
'Damian Gallagher',
|
||||
'Daniel Adegboyega',
|
||||
'John Ioannou',
|
||||
'Sofie Golding-Spittle',
|
||||
'Joe Egan',
|
||||
'Darren Swain',
|
||||
'Lee Charles',
|
||||
'Dominic Kinnaird',
|
||||
"Ross O'Hennessy",
|
||||
'Teresa Mahoney',
|
||||
'Andrew Dunkelberger',
|
||||
'Sam Hardy',
|
||||
'Ivan Moy',
|
||||
'Mark Sears',
|
||||
'Phillip Ray Tommy'
|
||||
],
|
||||
date: '2019'
|
||||
},
|
||||
{
|
||||
start: '2023-02-07T04:35:00.000Z',
|
||||
stop: '2023-02-07T05:00:00.000Z',
|
||||
title: 'Zoom In',
|
||||
description: 'Film/Kino',
|
||||
category: ['Hudba a umenie', 'Film'],
|
||||
date: '2010'
|
||||
},
|
||||
{
|
||||
start: '2023-02-07T09:10:00.000Z',
|
||||
stop: '2023-02-07T11:00:00.000Z',
|
||||
title: 'Studentka',
|
||||
description:
|
||||
'Ambiciózní vysokoškolačka Valentina (Sophie Marceau) studuje literaturu na pařížské Sorbonně a právě se připravuje k závěrečným zkouškám. Žádný odpočinek, žádné volno, žádné večírky, téměř žádný spánek a především a hlavně ... žádná láska! Věří, že jedině tak obstojí před zkušební komisí. Jednoho dne se však odehraje něco, s čím nepočítala. Potká charismatického hudebníka Neda - a bláznivě se zamiluje. V tuto chvíli stojí před osudovým rozhodnutím: zahodí roky obrovského studijního nasazení, nebo odmítne lásku? Nebo se snad dá obojí skloubit dohromady?',
|
||||
category: ['Film', 'Komédia'],
|
||||
actors: [
|
||||
'Sophie Marceauová',
|
||||
'Vincent Lindon',
|
||||
'Elisabeth Vitali',
|
||||
'Elena Pompei',
|
||||
'Jean-Claude Leguay',
|
||||
'Brigitte Chamarande',
|
||||
'Christian Pereira',
|
||||
'Gérard Dacier',
|
||||
'Roberto Attias',
|
||||
'Beppe Chierici',
|
||||
'Nathalie Mann',
|
||||
'Anne Macina',
|
||||
'Janine Souchon',
|
||||
'Virginie Demians',
|
||||
'Hugues Leforestier',
|
||||
'Jacqueline Noëlle',
|
||||
'Marc-André Brunet',
|
||||
'Isabelle Caubère',
|
||||
'André Chazel',
|
||||
'Med Salah Cheurfi',
|
||||
'Guillaume Corea',
|
||||
'Eric Denize',
|
||||
'Gilles Gaston-Dreyfuss',
|
||||
'Benoît Gourley',
|
||||
'Marc Innocenti',
|
||||
'Najim Laouriga',
|
||||
'Laurent Ledermann',
|
||||
'Philippe Maygal',
|
||||
'Dominique Pifarely',
|
||||
'Ysé Tran'
|
||||
],
|
||||
directors: ['Francis De Gueltz', 'Dominique Talmon', 'Claude Pinoteau'],
|
||||
date: '1988'
|
||||
},
|
||||
{
|
||||
start: '2023-02-07T16:05:00.000Z',
|
||||
stop: '2023-02-07T17:45:00.000Z',
|
||||
title: 'Zilionáři',
|
||||
description:
|
||||
'David (Zach Galifianakis) je nekomplikovaný muž, který uvízl v monotónním životě. Den co den usedá za volant svého obrněného automobilu, aby odvážel obrovské sumy peněz jiných lidí. Jediným vzrušujícím momentem v jeho životě je flirtování s kolegyní Kelly (Kristen Wiig), která ho však brzy zatáhne do těžko uvěřitelného dobrodružství. Skupinka nepříliš inteligentních loserů, pod vedením Steva (Owen Wilson), plánuje vyloupit banku a David jim v tom má samozřejmě pomoci. Navzdory absolutně amatérskému plánu se ale stane nemožné a oni mají najednou v kapse 17 miliónů dolarů. A protože tato partička je opravdu bláznivá, začne je hned ve velkém roztáčet. Peníze létají vzduchem za luxusní a kolikrát i zbytečné věci, ale nedochází jim, že pro policii tak zanechávají jasné stopy...',
|
||||
category: ['Drama', 'Akcia'],
|
||||
actors: [
|
||||
'Zach Galifianakis',
|
||||
'Kristen Wiigová',
|
||||
'Owen Wilson',
|
||||
'Kate McKinnon',
|
||||
'Leslie Jones',
|
||||
'Jason Sudeikis',
|
||||
'Ross Kimball',
|
||||
'Devin Ratray',
|
||||
'Mary Elizabeth Ellisová',
|
||||
'Jon Daly',
|
||||
'Ken Marino',
|
||||
'Daniel Zacapa',
|
||||
'Tom Werme',
|
||||
'Njema Williams',
|
||||
'Nils Cruz',
|
||||
'Michael Fraguada',
|
||||
'Christian Gonzalez',
|
||||
'Candace Blanchard',
|
||||
'Karsten Friske',
|
||||
'Dallas Edwards',
|
||||
'Barry Ratcliffe',
|
||||
'Shelton Grant',
|
||||
'Laura Palka',
|
||||
'Reegus Flenory',
|
||||
'Wynn Reichert',
|
||||
'Jill Jane Clements',
|
||||
'Joseph S. Wilson',
|
||||
'Jee An',
|
||||
'Rhoda Griffisová',
|
||||
'Nicole Dupre Sobchack'
|
||||
],
|
||||
directors: [
|
||||
'Scott August',
|
||||
'Richard L. Fox',
|
||||
'Michelle Malley-Campos',
|
||||
'Sebastian Mazzola',
|
||||
'Steven Ritzi',
|
||||
'Pete Waterman',
|
||||
'Jared Hess'
|
||||
],
|
||||
date: '2016'
|
||||
}
|
||||
])
|
||||
done()
|
||||
})
|
||||
.catch(done)
|
||||
})
|
||||
|
||||
it('can handle empty guide', done => {
|
||||
parser({
|
||||
content: fs.readFileSync(path.resolve(__dirname, '__data__/no_content.json')),
|
||||
channel,
|
||||
date
|
||||
})
|
||||
.then(result => {
|
||||
expect(result).toMatchObject([])
|
||||
done()
|
||||
})
|
||||
.catch(done)
|
||||
})
|
||||
const { parser, url } = require('./horizon.tv.config.js')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const axios = require('axios')
|
||||
const dayjs = require('dayjs')
|
||||
const utc = require('dayjs/plugin/utc')
|
||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||
dayjs.extend(customParseFormat)
|
||||
dayjs.extend(utc)
|
||||
|
||||
jest.mock('axios')
|
||||
|
||||
const date = dayjs.utc('2023-02-07', 'YYYY-MM-DD').startOf('d')
|
||||
const channel = {
|
||||
site_id: '10024',
|
||||
xmltv_id: 'AMCCzechRepublic.cz'
|
||||
}
|
||||
|
||||
it('can generate valid url', () => {
|
||||
expect(url({ date, channel })).toBe(
|
||||
'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/programschedules/20230207/1'
|
||||
)
|
||||
})
|
||||
|
||||
it('can parse response', done => {
|
||||
const content = JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content.json'), 'utf8'))
|
||||
|
||||
axios.get.mockImplementation(url => {
|
||||
if (
|
||||
url === 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/programschedules/20230207/2'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content_1.json'), 'utf8'))
|
||||
})
|
||||
} else if (
|
||||
url === 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/programschedules/20230207/3'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content_2.json'), 'utf8'))
|
||||
})
|
||||
} else if (
|
||||
url === 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/programschedules/20230207/4'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content_3.json'), 'utf8'))
|
||||
})
|
||||
} else if (
|
||||
url === 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/listings/crid:~~2F~~2Fport.cs~~2F122941980,imi:7ca159c917344e0dd3fbe1cd8db5ff8043d96a78'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content_listings_1.json'), 'utf8'))
|
||||
})
|
||||
} else if (
|
||||
url === 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/listings/crid:~~2F~~2Fport.cs~~2F248281986,imi:e85129f9d1e211406a521df7a36f22237c22651b'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content_listings_2.json'), 'utf8'))
|
||||
})
|
||||
} else if (
|
||||
url === 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/listings/crid:~~2F~~2Fport.cs~~2F1379541,imi:5f806a2a0bc13e9745e14907a27116c60ea2c6ad'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content_listings_3.json'), 'utf8'))
|
||||
})
|
||||
} else if (
|
||||
url === 'https://legacy-static.oesp.horizon.tv/oesp/v4/SK/slk/web/listings/crid:~~2F~~2Fport.cs~~2F71927954,imi:f1b4b0285b72cf44cba74e1c62322a4c682385c7'
|
||||
) {
|
||||
return Promise.resolve({
|
||||
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content_listings_4.json'), 'utf8'))
|
||||
})
|
||||
} else {
|
||||
return Promise.resolve({ data: '' })
|
||||
}
|
||||
})
|
||||
|
||||
parser({ content, channel, date })
|
||||
.then(result => {
|
||||
result = result.map(p => {
|
||||
p.start = p.start.toJSON()
|
||||
p.stop = p.stop.toJSON()
|
||||
return p
|
||||
})
|
||||
|
||||
expect(result).toMatchObject([
|
||||
{
|
||||
start: '2023-02-06T21:35:00.000Z',
|
||||
stop: '2023-02-06T23:05:00.000Z',
|
||||
title: 'Avengement',
|
||||
description:
|
||||
'Během propustky z vězení za účelem návštěvy umírající matky v nemocnici zločinec Cain Burgess (Scott Adkins) unikne svým dozorcům a mizí v ulicích Londýna. Jde o epickou cestu krve a bolesti za dosažením vytoužené pomsty na těch, kteří z něj udělali chladnokrevného vraha.',
|
||||
category: ['Drama', 'Akcia'],
|
||||
directors: ['Jesse V. Johnson'],
|
||||
actors: [
|
||||
'Scott Adkins',
|
||||
'Craig Fairbrass',
|
||||
'Thomas Turgoose',
|
||||
'Nick Moran',
|
||||
'Kierston Wareing',
|
||||
'Leo Gregory',
|
||||
'Mark Strange',
|
||||
'Luke LaFontaine',
|
||||
'Beau Fowler',
|
||||
'Dan Styles',
|
||||
'Christopher Sciueref',
|
||||
'Matt Routledge',
|
||||
'Jane Thorne',
|
||||
'Louis Mandylor',
|
||||
'Terence Maynard',
|
||||
'Greg Burridge',
|
||||
'Michael Higgs',
|
||||
'Damian Gallagher',
|
||||
'Daniel Adegboyega',
|
||||
'John Ioannou',
|
||||
'Sofie Golding-Spittle',
|
||||
'Joe Egan',
|
||||
'Darren Swain',
|
||||
'Lee Charles',
|
||||
'Dominic Kinnaird',
|
||||
"Ross O'Hennessy",
|
||||
'Teresa Mahoney',
|
||||
'Andrew Dunkelberger',
|
||||
'Sam Hardy',
|
||||
'Ivan Moy',
|
||||
'Mark Sears',
|
||||
'Phillip Ray Tommy'
|
||||
],
|
||||
date: '2019'
|
||||
},
|
||||
{
|
||||
start: '2023-02-07T04:35:00.000Z',
|
||||
stop: '2023-02-07T05:00:00.000Z',
|
||||
title: 'Zoom In',
|
||||
description: 'Film/Kino',
|
||||
category: ['Hudba a umenie', 'Film'],
|
||||
date: '2010'
|
||||
},
|
||||
{
|
||||
start: '2023-02-07T09:10:00.000Z',
|
||||
stop: '2023-02-07T11:00:00.000Z',
|
||||
title: 'Studentka',
|
||||
description:
|
||||
'Ambiciózní vysokoškolačka Valentina (Sophie Marceau) studuje literaturu na pařížské Sorbonně a právě se připravuje k závěrečným zkouškám. Žádný odpočinek, žádné volno, žádné večírky, téměř žádný spánek a především a hlavně ... žádná láska! Věří, že jedině tak obstojí před zkušební komisí. Jednoho dne se však odehraje něco, s čím nepočítala. Potká charismatického hudebníka Neda - a bláznivě se zamiluje. V tuto chvíli stojí před osudovým rozhodnutím: zahodí roky obrovského studijního nasazení, nebo odmítne lásku? Nebo se snad dá obojí skloubit dohromady?',
|
||||
category: ['Film', 'Komédia'],
|
||||
actors: [
|
||||
'Sophie Marceauová',
|
||||
'Vincent Lindon',
|
||||
'Elisabeth Vitali',
|
||||
'Elena Pompei',
|
||||
'Jean-Claude Leguay',
|
||||
'Brigitte Chamarande',
|
||||
'Christian Pereira',
|
||||
'Gérard Dacier',
|
||||
'Roberto Attias',
|
||||
'Beppe Chierici',
|
||||
'Nathalie Mann',
|
||||
'Anne Macina',
|
||||
'Janine Souchon',
|
||||
'Virginie Demians',
|
||||
'Hugues Leforestier',
|
||||
'Jacqueline Noëlle',
|
||||
'Marc-André Brunet',
|
||||
'Isabelle Caubère',
|
||||
'André Chazel',
|
||||
'Med Salah Cheurfi',
|
||||
'Guillaume Corea',
|
||||
'Eric Denize',
|
||||
'Gilles Gaston-Dreyfuss',
|
||||
'Benoît Gourley',
|
||||
'Marc Innocenti',
|
||||
'Najim Laouriga',
|
||||
'Laurent Ledermann',
|
||||
'Philippe Maygal',
|
||||
'Dominique Pifarely',
|
||||
'Ysé Tran'
|
||||
],
|
||||
directors: ['Francis De Gueltz', 'Dominique Talmon', 'Claude Pinoteau'],
|
||||
date: '1988'
|
||||
},
|
||||
{
|
||||
start: '2023-02-07T16:05:00.000Z',
|
||||
stop: '2023-02-07T17:45:00.000Z',
|
||||
title: 'Zilionáři',
|
||||
description:
|
||||
'David (Zach Galifianakis) je nekomplikovaný muž, který uvízl v monotónním životě. Den co den usedá za volant svého obrněného automobilu, aby odvážel obrovské sumy peněz jiných lidí. Jediným vzrušujícím momentem v jeho životě je flirtování s kolegyní Kelly (Kristen Wiig), která ho však brzy zatáhne do těžko uvěřitelného dobrodružství. Skupinka nepříliš inteligentních loserů, pod vedením Steva (Owen Wilson), plánuje vyloupit banku a David jim v tom má samozřejmě pomoci. Navzdory absolutně amatérskému plánu se ale stane nemožné a oni mají najednou v kapse 17 miliónů dolarů. A protože tato partička je opravdu bláznivá, začne je hned ve velkém roztáčet. Peníze létají vzduchem za luxusní a kolikrát i zbytečné věci, ale nedochází jim, že pro policii tak zanechávají jasné stopy...',
|
||||
category: ['Drama', 'Akcia'],
|
||||
actors: [
|
||||
'Zach Galifianakis',
|
||||
'Kristen Wiigová',
|
||||
'Owen Wilson',
|
||||
'Kate McKinnon',
|
||||
'Leslie Jones',
|
||||
'Jason Sudeikis',
|
||||
'Ross Kimball',
|
||||
'Devin Ratray',
|
||||
'Mary Elizabeth Ellisová',
|
||||
'Jon Daly',
|
||||
'Ken Marino',
|
||||
'Daniel Zacapa',
|
||||
'Tom Werme',
|
||||
'Njema Williams',
|
||||
'Nils Cruz',
|
||||
'Michael Fraguada',
|
||||
'Christian Gonzalez',
|
||||
'Candace Blanchard',
|
||||
'Karsten Friske',
|
||||
'Dallas Edwards',
|
||||
'Barry Ratcliffe',
|
||||
'Shelton Grant',
|
||||
'Laura Palka',
|
||||
'Reegus Flenory',
|
||||
'Wynn Reichert',
|
||||
'Jill Jane Clements',
|
||||
'Joseph S. Wilson',
|
||||
'Jee An',
|
||||
'Rhoda Griffisová',
|
||||
'Nicole Dupre Sobchack'
|
||||
],
|
||||
directors: [
|
||||
'Scott August',
|
||||
'Richard L. Fox',
|
||||
'Michelle Malley-Campos',
|
||||
'Sebastian Mazzola',
|
||||
'Steven Ritzi',
|
||||
'Pete Waterman',
|
||||
'Jared Hess'
|
||||
],
|
||||
date: '2016'
|
||||
}
|
||||
])
|
||||
done()
|
||||
})
|
||||
.catch(done)
|
||||
})
|
||||
|
||||
it('can handle empty guide', done => {
|
||||
parser({
|
||||
content: fs.readFileSync(path.resolve(__dirname, '__data__/no_content.json')),
|
||||
channel,
|
||||
date
|
||||
})
|
||||
.then(result => {
|
||||
expect(result).toMatchObject([])
|
||||
done()
|
||||
})
|
||||
.catch(done)
|
||||
})
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
# horizon.tv
|
||||
|
||||
https://horizon.tv/
|
||||
|
||||
### Download the guide
|
||||
|
||||
```sh
|
||||
npm run grab --- --site=horizon.tv
|
||||
```
|
||||
|
||||
### Update channel list
|
||||
|
||||
```sh
|
||||
npm run channels:parse --- --config=./sites/horizon.tv/horizon.tv.config.js --output=./sites/horizon.tv/horizon.tv.channels.xml
|
||||
```
|
||||
|
||||
### Test
|
||||
|
||||
```sh
|
||||
npm test --- horizon.tv
|
||||
```
|
||||
# horizon.tv
|
||||
|
||||
https://horizon.tv/
|
||||
|
||||
### Download the guide
|
||||
|
||||
```sh
|
||||
npm run grab --- --site=horizon.tv
|
||||
```
|
||||
|
||||
### Update channel list
|
||||
|
||||
```sh
|
||||
npm run channels:parse --- --config=./sites/horizon.tv/horizon.tv.config.js --output=./sites/horizon.tv/horizon.tv.channels.xml
|
||||
```
|
||||
|
||||
### Test
|
||||
|
||||
```sh
|
||||
npm test --- horizon.tv
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user