From 1afd91f57b9dd1157d3b8bd6309e5b3997e013a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mlendea=2C=20Hora=C8=9Biu?= Date: Sat, 17 Oct 2020 15:50:31 +0300 Subject: [PATCH 1/7] Renamed DontCache to AllowCaching --- Data/providers.xml | 16 ++++++++-------- DataAccess/DataObjects/PlaylistProviderEntity.cs | 3 ++- README.md | 2 +- Service/Mapping/PlaylistProviderMapping.cs | 4 ++-- Service/Models/PlaylistProvider.cs | 2 +- Service/PlaylistFetcher.cs | 4 ++-- 6 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Data/providers.xml b/Data/providers.xml index d17fd0d..6ddb332 100644 --- a/Data/providers.xml +++ b/Data/providers.xml @@ -29,7 +29,7 @@ hmlendea-livestreams-int true 5 - true + false hmlendea's livestreams INT http://hmlendea.go.ro/iptv/livestreams/int/playlist.m3u @@ -71,7 +71,7 @@ true 120 cstoicescu's GitHub RO Channels - true + false https://raw.githubusercontent.com/cstoicescu/iptv-free-tv/master/playlist.m3u @@ -143,7 +143,7 @@ hmlendea-livestreams-ro true 300 - true + false hmlendea's livestreams RO http://hmlendea.go.ro/iptv/livestreams/ro/playlist.m3u @@ -152,7 +152,7 @@ hmlendea-livestreams-md true 301 - true + false hmlendea's livestreams MD http://hmlendea.go.ro/iptv/livestreams/md/playlist.m3u @@ -722,7 +722,7 @@ true 998 Salex777-gif's IPTV GitHub RO Channels - true + false https://raw.githubusercontent.com/salex777/iptvX/master/i.m3u @@ -731,7 +731,7 @@ true 999 Valentin-gif's IPTV GitHub RO Channels - true + false https://raw.githubusercontent.com/Valentin-gif/silver-lamp/master/page1.txt @@ -740,7 +740,7 @@ true 9999998 hmlendea's GitHub Channels RO (Timed) - true + false https://raw.githubusercontent.com/hmlendea/iptv-playlist/master/ro-timed.m3u @@ -749,7 +749,7 @@ true 9999999 hmlendea's GitHub Channels MD (Timed) - true + false https://raw.githubusercontent.com/hmlendea/iptv-playlist/master/md-timed.m3u diff --git a/DataAccess/DataObjects/PlaylistProviderEntity.cs b/DataAccess/DataObjects/PlaylistProviderEntity.cs index b187b4d..94bcda4 100644 --- a/DataAccess/DataObjects/PlaylistProviderEntity.cs +++ b/DataAccess/DataObjects/PlaylistProviderEntity.cs @@ -8,7 +8,7 @@ public class PlaylistProviderEntity : EntityBase public int Priority { get; set; } - public bool DontCache { get; set; } + public bool AllowCaching { get; set; } public string Name { get; set; } @@ -19,6 +19,7 @@ public class PlaylistProviderEntity : EntityBase public PlaylistProviderEntity() { Priority = int.MaxValue; + AllowCaching = true; } } } diff --git a/README.md b/README.md index 6410602..b756bca 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,6 @@ PlaylistProviderDefinitionEntity fields: - *Id* (string): The ID of the provider. You can put anything here, used only to distinguish between them. - *IsEnabled* (bool): Indicates whether this provider will be used or not. - *Priority* (int): The lower the value, the sooner the provider will be processed. Try to make sure the most reliable providers are processed first, as once a channel is matched with a provider, it will be ignored for all other providers after it. - - *DontCache* (bool): (Optional) Indicates whether this provider's playlist should be cached or not. Useful when the provider updates the playlist multiple times a day. By default it's false. + - *AllowCaching* (bool): (Optional) Indicates whether this provider's playlist should be cached or not. Useful when the provider updates the playlist multiple times a day. By default it's true. - *UrlFormat* (string): The URL to the m3u playlist file of that provider. Replace the date part of the URL with a timestamp format. For example, *2019-05-19* will be replaced with *{0:yyyy-MM-dd}*. The *0* is the calendar day that is processed (today, or one of the previous ones depending on the *daysToCheck* setting) - *ChannelNameOverride* (string): (Optional) The channel name override for all the channels in the provider's playlist. diff --git a/Service/Mapping/PlaylistProviderMapping.cs b/Service/Mapping/PlaylistProviderMapping.cs index eabdfb2..172d025 100644 --- a/Service/Mapping/PlaylistProviderMapping.cs +++ b/Service/Mapping/PlaylistProviderMapping.cs @@ -14,7 +14,7 @@ internal static PlaylistProvider ToServiceModel(this PlaylistProviderEntity data serviceModel.Id = dataObject.Id; serviceModel.IsEnabled = dataObject.IsEnabled; serviceModel.Priority = dataObject.Priority; - serviceModel.DontCache = dataObject.DontCache; + serviceModel.AllowCaching = dataObject.AllowCaching; serviceModel.Name = dataObject.Name; serviceModel.UrlFormat = dataObject.UrlFormat; serviceModel.ChannelNameOverride = dataObject.ChannelNameOverride; @@ -28,7 +28,7 @@ internal static PlaylistProviderEntity ToDataObject(this PlaylistProvider servic dataObject.Id = serviceModel.Id; dataObject.IsEnabled = serviceModel.IsEnabled; dataObject.Priority = serviceModel.Priority; - dataObject.DontCache = serviceModel.DontCache; + dataObject.AllowCaching = serviceModel.AllowCaching; dataObject.Name = serviceModel.Name; dataObject.UrlFormat = serviceModel.UrlFormat; dataObject.ChannelNameOverride = serviceModel.ChannelNameOverride; diff --git a/Service/Models/PlaylistProvider.cs b/Service/Models/PlaylistProvider.cs index 75b286a..7ad2ac3 100644 --- a/Service/Models/PlaylistProvider.cs +++ b/Service/Models/PlaylistProvider.cs @@ -8,7 +8,7 @@ public class PlaylistProvider public int Priority { get; set; } - public bool DontCache { get; set; } + public bool AllowCaching { get; set; } public string Name { get; set; } diff --git a/Service/PlaylistFetcher.cs b/Service/PlaylistFetcher.cs index ec5f6cb..4b6623c 100644 --- a/Service/PlaylistFetcher.cs +++ b/Service/PlaylistFetcher.cs @@ -119,7 +119,7 @@ async Task GetPlaylistForTodayAsync(PlaylistProvider provider) playlist = playlistFileBuilder.TryParseFile(playlistFile); } - if (!Playlist.IsNullOrEmpty(playlist) && !provider.DontCache) + if (provider.AllowCaching && !Playlist.IsNullOrEmpty(playlist)) { cache.StorePlaylistFile(provider.Id, DateTime.UtcNow, playlistFile); } @@ -153,7 +153,7 @@ Playlist GetPlaylistForPastDays(PlaylistProvider provider) Playlist LoadPlaylistFromCache(PlaylistProvider provider, DateTime date) { - if (provider.DontCache) + if (provider.AllowCaching) { return null; } From 167597409cd4c1ad35cff153a645d0b6587a955b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mlendea=2C=20Hora=C8=9Biu?= Date: Sat, 17 Oct 2020 15:50:55 +0300 Subject: [PATCH 2/7] Disallow caching some GitHub providers --- Data/providers.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Data/providers.xml b/Data/providers.xml index 6ddb332..50d9880 100644 --- a/Data/providers.xml +++ b/Data/providers.xml @@ -5,6 +5,7 @@ github-hmlendea-ro true 1 + false hmlendea's GitHub Channels RO https://raw.githubusercontent.com/hmlendea/iptv-playlist/master/ro.m3u @@ -13,6 +14,7 @@ github-hmlendea-md true 2 + false hmlendea's GitHub Channels MD https://raw.githubusercontent.com/hmlendea/iptv-playlist/master/md.m3u @@ -21,6 +23,7 @@ github-hmlendea-en true 2 + false hmlendea's GitHub Channels EN https://raw.githubusercontent.com/hmlendea/iptv-playlist/master/en.m3u From c3618887d64ec7f4fcd777d67774e48af3e6e6dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mlendea=2C=20Hora=C8=9Biu?= Date: Sat, 17 Oct 2020 16:07:48 +0300 Subject: [PATCH 3/7] Added the Country property to channels --- Data/channels.xml | 422 +++++++++++++++++- .../DataObjects/ChannelDefinitionEntity.cs | 2 + Service/Mapping/ChannelDefinitionMapping.cs | 2 + Service/Models/Channel.cs | 2 + Service/Models/ChannelDefinition.cs | 2 + Service/PlaylistAggregator.cs | 1 + Service/PlaylistFileBuilder.cs | 6 + 7 files changed, 435 insertions(+), 2 deletions(-) diff --git a/Data/channels.xml b/Data/channels.xml index 442e9ec..188f78c 100644 --- a/Data/channels.xml +++ b/Data/channels.xml @@ -3,6 +3,7 @@ 10TV.md 10TV + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/10tv.png @@ -12,12 +13,14 @@ 1HD.ro 1 HD + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/1muz.png MBC.md Moldavian Business Channel + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/mbc.png @@ -28,6 +31,7 @@ MusicChannel.ro 1 Music Channel + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/1_music_channel.png @@ -40,6 +44,7 @@ MusicChannel.hu false 1 Music Channel HU + HU music https://static.epg.best/hu/MusicChannel.hu.png @@ -51,6 +56,7 @@ 1TV.ro 1TV + RO local-moldova http://stvron.com/canale/mari/1-tv-neamt.png @@ -60,12 +66,14 @@ 6TV.ro 6 TV + RO general https://new.6tv.ro/wp-content/uploads/2017/08/6tv_logo.png A7TV.ro A7 TV + RO general https://a7tv.ro/wp-content/uploads/2017/12/logo-a7tv.png @@ -75,6 +83,7 @@ AccentTV.md Accent TV + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/accent_tv.png @@ -85,6 +94,7 @@ ActualitateaTV.ro Actualitatea TV + RO local-moldova https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/actualitatea_tv.png @@ -95,6 +105,7 @@ AcumTV.ro Acum TV + RO local-moldova http://acum-tv.ro/wp-content/uploads/2019/01/logo-acum-tv-xs-1-300x98.png @@ -106,6 +117,7 @@ AgroTV.ro Agro TV + RO thematic https://agro-tv.ro/wp-content/uploads/2018/09/favicon.png @@ -115,6 +127,7 @@ AgroTV.md Agro TV Moldova + MD thematic https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/agro_tv_moldova.png @@ -124,25 +137,28 @@ AlbaCarolina.ro Alba Carolina TV + RO local-transilvania https://www.albacarolinatv.ro/wp-content/uploads/2018/05/alba-carolina-tv-logo250.png AlegeTV.ro Alege TV + RO unknown http://stvron.com/canale/mari/alege-tv.png AlephNews.ro - true Aleph News + RO news https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/aleph_news.png AlfaOmegaTV.ro Alfa & Omega + RO religious https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/alfa_omega_tv.png @@ -152,6 +168,7 @@ AlphaMedia.ro Alpha Media + RO local-dobrogea https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/alpha_media.png @@ -164,18 +181,21 @@ AMC.ro AMC + RO movies http://storage.alltvplay.com/images/channels/57d2bd46bc33b1566d8b4694.png AnimalPlanet.ro Animal Planet + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/animal_planet.png Antena1.ro Antena 1 + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/antena1.png @@ -185,12 +205,14 @@ Antena3.ro Antena 3 + RO news http://storage.alltvplay.com/images/channels/57d2bd3fbc33b1566d8b45ac.png AntenaComedy.ro Antena Comedy Play + RO entertainment https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/comedy_play.png @@ -203,6 +225,7 @@ AntenaCook.ro Antena Cook&Play + RO entertainment https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/cook_and_play.png @@ -216,23 +239,27 @@ AntenaInternational.ro Antena Internațional + RO international https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/antena_international.png AntenaMonden.ro Antena Monden + RO news https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/antena-monden.png AntenaSatelor.ro Antena Satelor + RO radio AntenaStars.ro Antena Stars + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/antena_stars.png @@ -245,6 +272,7 @@ AntenaStarsDirect.ro Antena Stars Direct + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/antena_stars.png @@ -257,6 +285,7 @@ ApoloniaTV.ro Apolonia TV + RO unknown RO: Apollonia @@ -265,6 +294,7 @@ ArcadiaWorld.ro Arcadia World + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/arcadia_tv.png @@ -275,17 +305,20 @@ ArdealTV.ro Ardeal TV + RO local-transilvania https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/ardeal_tv.png AutoMotorSport.ro Auto Motor Sport + RO sport AVBAction.ro AVB Action + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/avb.png @@ -295,6 +328,7 @@ AVBCartoons.ro AVB Cartoons + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/avb_cartoons.png @@ -304,6 +338,7 @@ AVNChristmas.ro AVB Christmas + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/avb.png @@ -313,6 +348,7 @@ AVBHorror.ro AVB Horror + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/avb.png @@ -322,6 +358,7 @@ AVBMynele.ro Mynele + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/avb.png @@ -331,6 +368,7 @@ AXN.ro AXN + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/axn.png @@ -340,6 +378,7 @@ AxialTV.md Axial TV + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/axial_tv.png @@ -350,18 +389,21 @@ AXNBlack.ro AXN Black + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/axn_black.png AXNSpin.ro AXN Spin + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/axn_spin.png AXNWhite.ro AXN White + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/axn_white.png @@ -371,6 +413,7 @@ B1TV.ro B1 TV + RO news https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/b1tv.png @@ -381,12 +424,14 @@ BalkanikaMusicTv.ro Balkanika TV + RO music http://stvron.com/canale/mari/balkanika-tv.png BaltiTV.md Bălți TV + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/balti_tv.png @@ -396,18 +441,21 @@ BanatTV.ro Banat TV + RO local-banat https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/banat_tv.png BBCEarth.ro BBC Earth + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/bbc_earth.png BitTV.ro Bit TV + RO local-moldova https://bittv.info/wp-content/uploads/2016/02/cropped-logo1.png @@ -417,6 +465,7 @@ BloombergTV.us Bloomberg + US foreign https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/bloomberg.png @@ -426,6 +475,7 @@ BollywoodTV.ro Bollywood + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/bollywood.png @@ -441,6 +491,7 @@ BollywoodClassic.ro Bollywood Clasic + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/bollywood_classic.png @@ -451,30 +502,35 @@ Boomerang.ro Boomerang + RO kids https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Boomerang_2014_logo.svg/230px-Boomerang_2014_logo.svg.png BrasovTV.ro Brașov TV + RO local-transilvania https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/brasov_tv.png BucovinaTV.ro Bucovina TV + RO local-bucovina https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/bucovina_tv.png BucurestiTV.ro București TV + RO local-muntenia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/bucuresti_tv.png BusuiocTV.md Busuioc TV + MD music https://busuioctv.md/wp-content/uploads/2018/03/cropped-Favicon-Busuioc.png @@ -485,6 +541,7 @@ CampusTV.ro Campus TV + RO local-muntenia http://stvron.com/canale/mari/campus-tv.png @@ -494,6 +551,7 @@ Canal2.md Canal 2 + MD local-basarabia https://upload.wikimedia.org/wikipedia/ro/7/7f/Logo_Canal_2.png @@ -503,6 +561,7 @@ Canal3.md Canal 3 + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/canal_3.png @@ -512,6 +571,7 @@ Canal33.ro Canal 33 + RO news https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/canal33.png @@ -519,6 +579,7 @@ CanalRegional.md false Canal Regional + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/canal_regional.png @@ -529,29 +590,34 @@ CartoonNetwork.ro Cartoon Network + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/cartoon_network.png CBSReality.ro CBS Reality + RO entertainment https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/cbs_reality.png CI.ro CI + RO unknown Cinemaraton.ro Cinemaraton + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/cinemaraton.png Cinemax.ro CineMAX 1 + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/cinemax1.png @@ -561,18 +627,21 @@ Cinemax2.ro CineMAX 2 + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/cinemax2.png Cinethronix.ro Cinethronix + RO thematic https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/cinethronix.png Ciresarii.ro Cireșarii TV + RO religious https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/ciresarii_tv.png @@ -582,12 +651,14 @@ CNN.ro CNN + RO foreign https://upload.wikimedia.org/wikipedia/commons/thumb/b/b1/CNN.svg/800px-CNN.svg.png ColumnaTV.ro Columna TV + RO local-muntenia http://stvron.com/canale/mari/columna-tv.png @@ -599,30 +670,35 @@ ComedyCentral.ro Comedy Central + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/comedy_central.png ComedyEst.ro Comedy Est + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/comedy_est.png CorneaTV.ro Cornea TV + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/cornea_tv.png CredoTV.ro Credo TV + RO religious https://upload.wikimedia.org/wikipedia/commons/5/56/Banner-credo-tv.png Cromtel.ro Cromtel + RO local-bucovina https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/cromtel.png @@ -635,6 +711,7 @@ CTCMega.md CTC Mega + MD movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/ctc_mega.png @@ -644,6 +721,7 @@ CurierTV.ro Curier TV + RO local-muntenia http://stvron.com/canale/mari/curier-tv.png @@ -653,6 +731,7 @@ DanceFM.ro Dance FM + RO radio https://raw.githubusercontent.com/hmlendea/radio-logos/master/logos/dance_fm.png @@ -662,11 +741,13 @@ DarkEdgeRadio.ro Dark Edge Radio + RO radio DaVinciLearning.ro DaVinci Learning + RO educational http://storage.alltvplay.com/images/channels/58025817bc33b1525f8b77ce.png @@ -676,11 +757,13 @@ DeeaFM.ro Deea FM + RO radio DeutscheWelle.de Deutsche Welle + DE foreign https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/deutsche_welle.png @@ -690,12 +773,14 @@ DiasporaTV.ro Diaspora TV + RO international https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/diaspora_tv.png DibiTV.ro Dibi TV + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/dibitv.png @@ -705,23 +790,27 @@ DigiAnimalworld.ro Digi Animal World + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/digi_animal_world.png DigiFM.ro Digi FM + RO radio DigiLife.ro Digi Life + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/digi_life.png DigiSport1.ro Digi Sport 1 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/digi_sport_1.png @@ -731,6 +820,7 @@ DigiSport2.ro Digi Sport 2 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/digi_sport_2.png @@ -740,6 +830,7 @@ DigiSport3.ro Digi Sport 3 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/digi_sport_3.png @@ -749,6 +840,7 @@ DigiSport4.ro Digi Sport 4 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/digi_sport_4.png @@ -758,6 +850,7 @@ DigiWorld.ro Digi World + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/digi_world.png @@ -767,60 +860,70 @@ Digi24.ro Digi24 + RO news https://www.flux24.ro/wp-content/uploads/2014/12/digi_24_ro_hd.png Digi4K.ro Digi 4K + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/digi_4k.png Digi24Brasov.ro Digi24 Brașov + RO local-transilvania https://www.flux24.ro/wp-content/uploads/2014/12/digi_24_ro_hd.png Digi24Cluj.ro Digi24 Cluj + RO local-transilvania https://www.flux24.ro/wp-content/uploads/2014/12/digi_24_ro_hd.png Digi24Constanta.ro Digi24 Constanța + RO local-dobrogea https://www.flux24.ro/wp-content/uploads/2014/12/digi_24_ro_hd.png Digi24Craiova.ro Digi24 Craiova + RO local-oltenia https://www.flux24.ro/wp-content/uploads/2014/12/digi_24_ro_hd.png Digi24Galati.ro Digi24 Galați + RO local-moldova https://www.flux24.ro/wp-content/uploads/2014/12/digi_24_ro_hd.png Digi24Iasi.ro Digi24 Iași + RO local-moldova https://www.flux24.ro/wp-content/uploads/2014/12/digi_24_ro_hd.png Digi24Oradea.ro Digi24 Oradea + RO local-crisana https://www.flux24.ro/wp-content/uploads/2014/12/digi_24_ro_hd.png Digi24Timis.ro Digi24 Timiș + RO local-banat https://www.flux24.ro/wp-content/uploads/2014/12/digi_24_ro_hd.png @@ -830,6 +933,7 @@ DiscoveryChannel.ro Discovery Channel + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/discovery_channel.png @@ -839,6 +943,7 @@ DiscoveryID.ro Discovery Investigation + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/discovery_investigation.png @@ -852,6 +957,7 @@ DiscoveryIDX.ro Discovery Investigation Extra + RO educational https://static.epg.best/ro/DiscoveryID.ro.png @@ -864,12 +970,14 @@ DiscoveryScience.ro Discovery Science + RO educational https://upload.wikimedia.org/wikipedia/commons/6/6d/SCI-network-logo-192x192-v2.png DiscoveryShowcase.ro Discovery Showcase + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/discovery_showcase.png @@ -879,6 +987,7 @@ DiscoveryTurboXtra.hu Discovery Turbo Extra + HU educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/discovery_turbo_extra.png @@ -889,12 +998,14 @@ DiscoveryWorld.ro Discovery World + RO educational https://upload.wikimedia.org/wikipedia/commons/thumb/8/85/World_Discovery_HD_logo.svg/1200px-World_Discovery_HD_logo.svg.png DisneyChannel.ro Disney Channel + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/disney_channel.png @@ -905,6 +1016,7 @@ DisneyJunior.ro Disney Junior + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/disney_junior.png @@ -915,6 +1027,7 @@ DivaUniversal.ro Diva Universal + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/diva.png @@ -925,6 +1038,7 @@ DJingTV.ro DJing TV + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/djing_tv.png @@ -932,17 +1046,20 @@ DocuBox.pl false DocuBox + PL unknown DottoTV.ro Dotto TV + RO local-dobrogea https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/dotto.png DrochiaTV.md Drochia TV + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/drochia_tv.png @@ -954,12 +1071,14 @@ DuckTV.ro Duck TV + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/duck_tv.png DunaTV.ro Duna + RO unknown RO: Duna TV @@ -968,6 +1087,7 @@ EEntertainment.ro E! Entertainment + RO entertainment http://storage.alltvplay.com/images/channels/5a86376cc7b718d6048b4571.png @@ -979,6 +1099,7 @@ ElitaTV.md Elita TV + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/elita_tv.png @@ -991,6 +1112,7 @@ EpicDrama.ro Epic Drama + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/epic_drama.png @@ -1001,11 +1123,13 @@ ErdelyTV.ro false Erdely TV + RO local-transilvania EstTV.ro Est TV + RO local-muntenia http://www.tvsatmediagroup.ro/images/15063296804206_SIGLA%20EST%20TV.png @@ -1015,12 +1139,14 @@ EtnicTV.ro Etnic TV + RO music http://tvrohdonline.com/wp-content/uploads/2019/01/3.png Etno.ro Etno + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/etno_tv.png @@ -1031,11 +1157,13 @@ EuropaFM.ro Europa FM + RO radio EuropaPlus.ro Europa Plus + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/europa_plus.png @@ -1045,6 +1173,7 @@ Eurosport1.ro EuroSport 1 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/eurosport1.png @@ -1055,6 +1184,7 @@ Eurosport2.ro EuroSport 2 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/eurosport2.png @@ -1064,18 +1194,21 @@ ExclusivTV.ro Exclusiv TV + RO local-moldova Exotica true Exotica + INT porn https://iptv.live/images/logo/channel/smalls/ee3a3d059b0289892dd9b6466488c101.png ExtremeSports.ro Extreme Sports + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/extreme_sports.png @@ -1086,6 +1219,7 @@ Fallout76AppalachiaRadio.com Fallout 76 Appalachia Radio + INT radio https://raw.githubusercontent.com/hmlendea/radio-logos/master/logos/fallout_76_appalachia_radio.png @@ -1095,6 +1229,7 @@ FalloutRadio.com Fallout Radio + INT radio https://www.freepnglogos.com/uploads/fallout-4-logo/fallout-high-resolution-logo-13.png @@ -1104,11 +1239,13 @@ FashionTV.ro Fashion TV + RO unknown Favorit.ro Favorit TV + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/favorit_tv.png @@ -1120,12 +1257,14 @@ FightBox.ro FightBox + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/fight_box.png FilmCafe.ro Film Cafe + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/film_cafe.png @@ -1135,11 +1274,13 @@ FilmMania.ro Film Mania + RO movies FilmNow.ro Film Now + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/filmnow.png @@ -1152,24 +1293,28 @@ FilmBox.ro FilmBox + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/filmbox.png FilmBoxExtra.ro FilmBox Extra + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/filmbox_extra.png FilmBoxFamily.ro FilmBox Family + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/filmbox_family.png FilmBoxPlus.ro FilmBox Plus + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/filmbox_plus.png @@ -1179,24 +1324,28 @@ FilmBoxPremium.ro FilmBox Premium + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/filmbox_premium.png FineLiving.ro Fine Living + RO thematic http://stvron.com/canale/mari/fine-living.png FixAndFoxi.ro Fix and Foxi + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/fix_and_foxi.png FoodNetwork.ro Food Network + RO thematic https://upload.wikimedia.org/wikipedia/commons/f/f9/Food_Network_New_Logo.png @@ -1206,29 +1355,34 @@ France24.fr France24 + INT foreign https://static.epg.best/fr/France24.fr.png FRBTV.ro FRB TV + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/frb_tv.png FRFTV.ro FRF TV + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/frf_tv.png GagiuTV.ro Gagiu TV + RO unknown GoldTV.md Gold TV + MD music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/gold_tv.png @@ -1239,6 +1393,7 @@ GurinelTV.md Gurinel TV + MD kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/gurinel_tv.png @@ -1250,30 +1405,35 @@ HD365.ro HD365 + RO local-transilvania https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hd365.png HDNetAction.ro HD Net Action + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hdnet.png HDNetBollywood.ro HD Net Bollywood + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hdnet.png HDNetComedy.ro HD Net Comedy + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hdnet.png HDNetDeNiro.ro HD Net De Niro + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hdnet.png @@ -1283,48 +1443,56 @@ HDNetHorror.ro HD Net Horror + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hdnet.png HDNetIUmor.ro HD Net iUmor + RO entertainment https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hdnet.png HDNetKids.ro HD Net Kids + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hdnet.png HDNetLasFierbinti.ro HD Net Las Fierbinti + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hdnet.png HDNetPremiere.ro HD Net Premiere + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hdnet.png HDNetSciFi.ro HD Net Sci-Fi + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hdnet.png HDNetThriller.ro HD Net Thriller + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hdnet.png HDNetVanDamme.ro HD Net Van Damme + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hdnet.png @@ -1335,6 +1503,7 @@ HTMusic.ro H!T Music Channel + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/h!t_music_channel.png @@ -1350,6 +1519,7 @@ HTMusic.hu false H!T Music Channel HU + HU music http://stvron.com/canale/mari/hit-music-channel.png @@ -1359,6 +1529,7 @@ HappyChannel.ro Happy Channel + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/happy_channel.png @@ -1369,6 +1540,7 @@ HBO.ro HBO 1 + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hbo.png @@ -1381,6 +1553,7 @@ HBO2.ro HBO 2 + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hbo2.png @@ -1393,6 +1566,7 @@ HBO3.ro HBO 3 + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hbo3.png @@ -1405,12 +1579,14 @@ HeavyMetalTV.ro Heavy Metal TV + RO music https://png2.kisspng.com/sh/1a311527bd4f8133545f3b46d99b1000/L0KzQYm3VcI5N6Fmg5H0aYP2gLBuTfNiap1qReZubHX5ecTwjB4uf5ZngeV4ZHWwhLnsTfZzaZ9wReVxb4ewdrr5hgR3NZlqeehELX3ohLLzTcVjOJNnUdY9OUS3RbKATsUyO2k1UKg5MUW1R4WCVcEzPGc1T6U3cH7q/kisspng-cable-television-webisode-the-frank-show-firetv-heavy-metal-5b0bb9d49445a7.5138086015274951246073.png HistoryChannel.ro History Channel + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/history_channel.png @@ -1422,12 +1598,14 @@ HoraTV.ro Hora TV + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hora_tv.png IasiTVLife.ro Iași TV Life + RO local-moldova https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/iasi_tv_life.png @@ -1437,24 +1615,28 @@ IbizaGlobalTV.com Ibiza Global TV + INT music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/ibiza_global_tv.png IDATV.ro IDA TV + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/ida.png ImpactTV.ro Impact TV + RO music http://stvron.com/canale/mari/impact-tv.png IneditTV.ro Inedit TV + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/inedit_tv.png @@ -1464,12 +1646,14 @@ InfinitTV.ro Infinit TV + RO local-moldova http://stvron.com/canale/mari/infinit-tv.png InfoHD.ro Info HD + RO local-transilvania https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/info_hd.png @@ -1479,18 +1663,21 @@ InfoPescar.ro Info Pescar + RO thematic https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/info_pescar.png InformatiaTV.ro Informația TV + RO local-maramures https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/informatia_tv.png Intermedia.ro Intermedia + RO local-bucovina http://stvron.com/canale/mari/intermedia-tv.png @@ -1503,6 +1690,7 @@ ITVMoldova.md ITV Moldova + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/itv_moldova.png @@ -1513,6 +1701,7 @@ ___broken false INVALID_CHANNEL + unknown Acasa TV @@ -1523,6 +1712,7 @@ ___foreignChannels false FOREIGN_CHANNEL + unknown AF-South Africa: SuperSport 1 @@ -1567,6 +1757,7 @@ ___separators false INVALID_CHANNEL + unknown -----ROMANIA------ @@ -1577,12 +1768,14 @@ JasminTV.com true Jasmin TV + INT porn https://scontent.fomr1-1.fna.fbcdn.net/v/t1.0-9/11046972_1547016762228097_8978976372468915740_n.png?_nc_cat=109&_nc_ht=scontent.fomr1-1.fna&oh=8df2ed1cd1fd688ba368ce537ea6a83b&oe=5D2F9A04 JimJam.ro Jim Jam + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/jimjam.png @@ -1592,6 +1785,7 @@ JobTV.ro Job TV + RO thematic https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/job_tv.png @@ -1601,6 +1795,7 @@ JohnnyBravo.ro Johnny Bravo + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/johnny_bravo.png @@ -1609,6 +1804,7 @@ JurnalTV.md Jurnal TV + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/jurnal_tv.png @@ -1619,6 +1815,7 @@ KanalD.ro Kanal D + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/kanal_d.png @@ -1628,6 +1825,7 @@ KapitalTV.ro Kapital TV + RO general http://www.kapitaltv.ro/wp-content/uploads/2016/10/logo-ktv-1.png @@ -1638,11 +1836,13 @@ KissFM.ro Kiss FM + RO radio KissTV.ro KissTV + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/kiss_tv.png @@ -1652,6 +1852,7 @@ LinkpressTV.ro Linkpress TV + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/linkpress_tv.png @@ -1661,12 +1862,14 @@ LitoralTV.ro Litoral TV + RO local-dobrogea https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/litoral_tv.png LookPlus.ro Look Plus + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/look_plus.png @@ -1676,6 +1879,7 @@ LookSport1.ro Look Sport 1 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/look_sport1.png @@ -1688,6 +1892,7 @@ LookSport2.ro Look Sport 2 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/look_sport2.png @@ -1697,6 +1902,7 @@ LookSport3.ro Look Sport 3 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/look_sport3.png @@ -1706,23 +1912,27 @@ LoungeVNature.com LoungeV Nature + INT thematic https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/loungev.png MagicFM.ro Magic FM + RO radio MagicTV.ro Magic TV + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magic_tv.png Magura4K.ro Măgura 4K + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1732,6 +1942,7 @@ MaguraAction.ro Măgura Action + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1741,6 +1952,7 @@ MaguraBruceWillis.ro Măgura Bruce Willis + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1750,6 +1962,7 @@ MaguraCinema.ro Măgura Cinema + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1759,6 +1972,7 @@ MaguraComedy.ro Măgura Comedy + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1768,6 +1982,7 @@ MaguraFamily.ro Măgura Family + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1777,6 +1992,7 @@ MaguraFilmeRomanesti.ro Măgura Filme Românești + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1786,6 +2002,7 @@ MaguraHorror.ro Măgura Horror + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1795,6 +2012,7 @@ MaguraIstoric.ro Măgura Istoric + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1804,6 +2022,7 @@ MaguraJackieChan.ro Măgura Jackie Chan + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1813,6 +2032,7 @@ MaguraKeanuReeves.ro Măgura Keanu Reeves + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1822,6 +2042,7 @@ MaguraKids.ro Măgura Kids + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1831,6 +2052,7 @@ MaguraKungFu.ro Măgura Kung Fu + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1840,6 +2062,7 @@ MaguraManele.ro Măgura Manele + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1849,6 +2072,7 @@ MaguraMuzicaAscultare.ro Măgura Muzică de Ascultare + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1858,6 +2082,7 @@ MaguraReligioase.ro Măgura Religioase + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1867,6 +2092,7 @@ MaguraSylvesterStallone.ro Măgura Stallone + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1876,6 +2102,7 @@ MaguraSupereroi.ro Măgura Supereroi + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1885,6 +2112,7 @@ MaguraVanDamme.ro Măgura Van Damme + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/magura_media.png @@ -1894,6 +2122,7 @@ MDI.ro MDI TV + RO local-oltenia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/mdi_tv.png @@ -1903,6 +2132,7 @@ MediaTV.md Media TV Cimișlia + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/media_tv.png @@ -1913,6 +2143,7 @@ Megamax.ro MegaMax + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/megamax.png @@ -1923,12 +2154,14 @@ MelodyChannel Melody Channel + INT music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/melody_channel.png Metropola.ro Metropola TV + RO local-oltenia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/metropola.png @@ -1938,6 +2171,7 @@ Mezzo.hu Mezzo + HU music https://logonoid.com/images/mezzo-tv-logo.png @@ -1945,12 +2179,14 @@ MiamiTV true Miami TV + INT porn https://iptv.live/images/logo/channel/smalls/f561aaf6ef0bf14d4208bb46a4ccb3ad.png Minimax.ro MiniMax + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/minimax.png @@ -1960,12 +2196,14 @@ MioritaTV.ro Miorița TV + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/miorita.png MisaTV.ro Misa Senzațional TV + RO religious https://misatv.ro/wp-content/uploads/2018/09/MTV-Logo-Cropped2.png @@ -1975,6 +2213,7 @@ Moldova1.md Moldova 1 + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/moldova1.png @@ -1986,6 +2225,7 @@ Moldova2.md Moldova 2 + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/moldova2.png @@ -1996,12 +2236,14 @@ MoldovaSport.md Moldova Sport + MD sport http://live-tv.me/wp-content/uploads/2014/08/MOLDOVA-SPORT-TV.gif MoozDance.ro Mooz Dance + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/mooz_dance.png @@ -2011,12 +2253,14 @@ MoozHits.ro Mooz Hits + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/mooz_hits.png MoozRo.ro MOOZ RO! + RO music https://upload.wikimedia.org/wikipedia/ro/thumb/5/50/Dolce_mooz_ro.png/220px-Dolce_mooz_ro.png @@ -2026,11 +2270,13 @@ MoozTV.ro Mooz TV + RO music MTVClub.ro MTV Club + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/mtv_club.png @@ -2040,29 +2286,34 @@ MTVDance.ro MTV Dance + RO music https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/MTV_Dance_2013_logo.svg/220px-MTV_Dance_2013_logo.svg.png MTVEurope.ro MTV Europe + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/mtv_europe.png MTVHits.ro MTV Hits + RO music https://upload.wikimedia.org/wikipedia/commons/thumb/f/f8/MTV_Hits_2017_logo.svg/1200px-MTV_Hits_2017_logo.svg.png MTVLive.ro MTV Live + RO music MTVMusic.ro MTV Music 24 + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/mtv_music24.png @@ -2072,12 +2323,14 @@ MTVRocks.ro MTV Rocks + RO music https://upload.wikimedia.org/wikipedia/commons/thumb/2/22/MTV_Rocks_2017_logo.svg/1200px-MTV_Rocks_2017_logo.svg.png MuscelTV.ro Muscel TV + RO local-muntenia http://musceltv.ro/site/wp-content/uploads/2016/05/microsigla-frontala.png @@ -2087,6 +2340,7 @@ MusicHits17.ro Music Hits '17 + RO music RO: Music Hits '17 (music only - numai muzica) @@ -2095,6 +2349,7 @@ N4.md N4 + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/n4.png @@ -2104,6 +2359,7 @@ NASAChannel.us NASA TV + US educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/nasa_tv.png @@ -2116,12 +2372,14 @@ NasulTV.ro Nașul TV + RO news https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/nasul_tv.png NatGeo.ro National Geographic + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/national_geographic.png @@ -2134,6 +2392,7 @@ NatGeoWild.ro National Geographic Wild + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/national_geographic_wild.png @@ -2145,6 +2404,7 @@ National24Plus.ro Național 24 Plus + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/national_24_plus.png @@ -2156,6 +2416,7 @@ NationalTV.ro Național TV + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/national_tv.png @@ -2167,6 +2428,7 @@ NCNTV.ro NCN TV + RO news https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/ncn_tv.png @@ -2176,6 +2438,7 @@ NeptunTV.ro Neptun TV + RO local-dobrogea https://static.epg.best/ro/NeptunTV.ro.png @@ -2186,12 +2449,14 @@ NETv.ro NETv + RO local-moldova https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/netv.png Nickelodeon.ro Nickelodeon + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/nickelodeon.png @@ -2201,6 +2466,7 @@ NickJr.ro Nickelodeon Junior + RO kids https://static.epg.best/ro/NickJr.ro.png @@ -2211,6 +2477,7 @@ NickToons.ro Nickelodeon Toons + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/nickelodeon_toons.png @@ -2222,6 +2489,7 @@ NestTV.ro Nord Est TV + RO local-moldova https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/nest_tv.png @@ -2235,6 +2503,7 @@ Noroc.md Noroc TV + MD music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/noroc_tv.png @@ -2245,6 +2514,7 @@ NovaTV.ro Nova TV + RO local-transilvania http://stvron.com/canale/mari/nova-tv-brasov.png @@ -2255,6 +2525,7 @@ HGTV.ro HGTV + RO thematic https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/hgtv.png @@ -2262,6 +2533,7 @@ HTBMoldova.md false NTV Moldova + MD local-basarabia https://www.deschide.md/images/cms-image-000036515.png @@ -2275,17 +2547,20 @@ ONAir.unknown false ON Air + foreign onetv One TV + RO movies http://stvron.com/canale/mici/one-tv.png OrheiTV.md Orhei TV + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/orhei_tv.png @@ -2295,6 +2570,7 @@ OrizontTV.md Orizont TV + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/orizont_tv.md.png @@ -2304,12 +2580,14 @@ OrizontTV.ro Orizont TV + RO music http://stvron.com/canale/mari/orizont-tv.png ParamountChannel.ro Paramount Channel + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/paramount_channel.png @@ -2319,6 +2597,7 @@ PartenerTV.ro Partener TV + RO local-muntenia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/partener_tv.png @@ -2328,6 +2607,7 @@ PCGarage.ro PC Garage + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/pcgarage.png @@ -2335,12 +2615,14 @@ PenthouseGold true Penthouse Gold + INT porn https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/penthouse.png FishingHunting.ro Pescuit și Vânătoare TV + RO thematic https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/fishing_and_hunting.png @@ -2352,6 +2634,7 @@ FMF.md FMF TV + MD sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/fmf_tv.png @@ -2362,6 +2645,7 @@ PrimaTV.ro Prima TV + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/prima_tv.png @@ -2371,6 +2655,7 @@ Prime.md Prime + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/prime.png @@ -2380,6 +2665,7 @@ Primul.md Primul în Moldova + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/primul_in_moldova.png @@ -2392,12 +2678,14 @@ PrivateTV true Private TV + INT porn https://iptv.live/images/logo/channel/smalls/7a3dd1b1de6a97b599768aa52df85a7d.png Pro2.ro Pro 2 + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/pro_2.png @@ -2411,6 +2699,7 @@ Acasa.md false Pro 2 Moldova + MD movies MD: Acasa @@ -2421,18 +2710,21 @@ ProCinema.ro Pro Cinema + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/pro_cinema.png ProFM.ro Pro FM + RO radio https://raw.githubusercontent.com/hmlendea/radio-logos/master/logos/pro_fm.png AcasaGold.ro Pro Gold + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/pro_gold.png @@ -2444,6 +2736,7 @@ ASTShemale true AST Shemale + INT porn https://www.ast.tv/img/ast-tv_logo-beta.png @@ -2451,18 +2744,21 @@ ASTTV true AST TV + INT porn https://www.ast.tv/img/ast-tv_logo-beta.png ProTV.ro Pro TV + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/pro_tv.png ProTVChisinau.md Pro TV Chișinău + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/pro_tv_chisinau.png @@ -2473,6 +2769,7 @@ ProTVInternational.ro Pro TV Internațional + RO international https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/pro_tv_international.png @@ -2485,6 +2782,7 @@ ProTVNews.ro Pro TV Știri + RO news https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/pro_tv_news.png @@ -2496,6 +2794,7 @@ ProX.ro Pro X + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/pro_x.png @@ -2507,6 +2806,7 @@ Profit.ro Profit.ro + RO news https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/profit.ro.png @@ -2517,6 +2817,7 @@ PublikaTV.md Publika TV + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/publika.png @@ -2529,6 +2830,7 @@ QTV.ro QTV + RO unknown @@ -2537,14 +2839,15 @@ QubTV.ro - true Qub TV + RO local-banat https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/qub.png RadioCluj.ro Radio Cluj + RO radio RO: SRR Radio Cluj @@ -2553,32 +2856,38 @@ RadioGuerrilla.ro Radio Guerrilla + RO radio RadioHot.ro Radio Hot + RO radio RadioLiberty.ro Radio Liberty + RO radio M2O.com Radio m2o TV + INT music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/m2o.png RadioZU.ro Radio ZU + RO radio RealitateaTV.ro Realitatea + RO news https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/realitatea_tv.png @@ -2594,6 +2903,7 @@ RealitateaPlus.ro Realitatea Plus + RO news https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/realitatea_plus.png @@ -2604,18 +2914,21 @@ Redlight true Redlight + INT porn https://iptv.live/images/logo/channel/smalls/cfa3e0729768e459dd2edbea24522af1.png RetroTV.ro Retro TV + RO music https://upload.wikimedia.org/wikipedia/commons/7/7b/Retro_Music_TV_logo.png ROChannel.ro RO Channel + RO international https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/ro_channel.png @@ -2626,12 +2939,14 @@ RockTV.ro Rock TV + RO music https://upload.wikimedia.org/wikipedia/commons/8/85/Rock_TV.png RomanTV.ro Roman TV + RO local-moldova https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/roman_tv.png @@ -2641,17 +2956,20 @@ RomaTV.bg Roma TV + BG music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/roma_tv.png RomanticFM.ro Romantic FM + RO radio RomaniaActualitati.ro România Actualități + RO radio RO: SRR Radio România Actualități @@ -2660,6 +2978,7 @@ RomaniaTv.ro România TV + RO news https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/romania_tv.png @@ -2670,6 +2989,7 @@ RTR.md RTR Moldova + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/rtr_moldova.png @@ -2679,6 +2999,7 @@ RTS.ro RT Severin + RO local-oltenia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/rt_severin.png @@ -2688,6 +3009,7 @@ RUTV.md RU TV + MD music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/ru_tv.png @@ -2697,12 +3019,14 @@ SalajeanulTV.ro Sălăjeanul TV + RO local-crisana https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/salajeanul_tv.png STV.ro Sîngeorz TV + RO local-transilvania http://sangeorztv.ro/wp-content/uploads/2015/01/logoSTV.png @@ -2716,12 +3040,14 @@ SlagerTV.ro false Slager TV + RO music https://yt3.ggpht.com/a-/AAuE7mBTIF3JiRM-v2hhQb6ByqCNLV0Talt5igzvEw=s900-mo-c-c0xffffffff-rj-k-no Somax.ro Somax + RO local-moldova https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/somax.png @@ -2731,6 +3057,7 @@ SorTV.md Soroca TV + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/soroca_tv.png @@ -2741,12 +3068,14 @@ SperantaTV.ro Speranța TV + RO religious https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/speranta_tv.png StudioL.md Studio-L + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/studio-l.png @@ -2757,6 +3086,7 @@ Sundance.ro Sundance + RO movies https://static.epg.best/ro/Sundance.ro.png @@ -2767,12 +3097,14 @@ SuperOne.ro true Super One + RO porn https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/super_one.png SuperTV.ro Super TV + RO local-muntenia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/super_tv.png @@ -2782,12 +3114,14 @@ SuperTennis.ro SuperTennis + RO sport http://stvron.com/canale/mici/super-tennis.png TarafTV.ro Taraf + RO music https://www.taraf.tv/images/logo.png @@ -2797,6 +3131,7 @@ tele2drobeta Tele 2 Drobeta + RO local-oltenia https://tele2drobeta.ro/wp-content/uploads/2018/03/cropped-SIGLA_00002.png @@ -2806,6 +3141,7 @@ TeleEuropaNova.ro Tele Nova + RO local-banat https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/telenova.png @@ -2816,6 +3152,7 @@ TelekomSport1.ro Telekom Sport 1 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/telekom_sport_1.png @@ -2828,6 +3165,7 @@ TelekomSport2.ro Telekom Sport 2 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/telekom_sport_2.png @@ -2840,6 +3178,7 @@ TelekomSport3.ro Telekom Sport 3 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/telekom_sport_3.png @@ -2852,6 +3191,7 @@ TelekomSport4.ro Telekom Sport 4 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/telekom_sport_4.png @@ -2864,6 +3204,7 @@ TelekomSport5.ro Telekom Sport 5 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/telekom_sport_5.png @@ -2876,6 +3217,7 @@ TelekomSport6.ro Telekom Sport 6 + RO sport https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/telekom_sport_6.png @@ -2888,6 +3230,7 @@ TeleMBotosani.ro TeleM Botoșani + RO local-moldova http://stvron.com/canale/mari/tele-m-botosani.png @@ -2897,6 +3240,7 @@ TeleMIasi.ro TeleM Iași + RO local-moldova https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/telem_iasi.png @@ -2907,6 +3251,7 @@ TeleMNeamt.ro TeleM Neamț + RO local-moldova https://telemneamt.net/wp-content/uploads/2015/06/Logo-repr-TeleM.png @@ -2917,6 +3262,7 @@ TeleMPlus.ro TeleM Plus + RO local-moldova https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/telem_plus.png @@ -2927,18 +3273,21 @@ TeleMusica Tele Música + music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tele_musica.png TeleshopTV.ro Teleshop TV + RO unknown http://stvron.com/canale/mari/telestar-1.png Telestar1.ro Telestar1 + RO foreign http://stvron.com/canale/mari/telestar-1.png @@ -2950,6 +3299,7 @@ TeleviziuneaCentrala.md Televiziunea Centrală + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/televiziunea_centrala.png @@ -2960,6 +3310,7 @@ TezaurTV.md Tezaur Folc TV + MD music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tezaur_folc_tv.png @@ -2975,18 +3326,21 @@ TezaurTV.ro Tezaur TV + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tezaur_tv.png TheVoice.ro The Voice + RO music https://upload.wikimedia.org/wikipedia/commons/a/a7/%D0%A2heVoiceTV-logo.png THTMusic.ru THT Music + RU music https://tntmusic.ru/static/img/logo@x2.png @@ -2996,11 +3350,13 @@ Tigo.ro Tigo Music + RO music TimelessDrama.ro Timeless Drama + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/timeless_drama.png @@ -3010,6 +3366,7 @@ TLPlus.ro TL+ Maramureș + RO local-maramures http://stvron.com/canale/mari/tl-plus-maramures.png @@ -3019,30 +3376,35 @@ TLC.ro TLC + RO educational https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/TLC-Logo_2016.png/200px-TLC-Logo_2016.png TNT.ro TNT + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tnt.png TraditiiTV.ro Tradiții TV + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/traditii_tv.png TraditionalTV.ro Tradițional TV + RO local-moldova https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/traditional_tv.png TravelChannel.ro Travel Channel + RO thematic https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/travel_channel.png @@ -3052,6 +3414,7 @@ TravelMix.ro Travel Mix + RO thematic https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/travel_mix.png @@ -3061,6 +3424,7 @@ TrinitasTV.ro Trinitas + RO religious https://www.trinitas.tv/wp-content/themes/trinitas.tv/assets/imgs/favicons/android-icon-192x192.png @@ -3070,11 +3434,13 @@ Trinity.ro Trinity + RO unknown TVBuzau.ro TV Buzău + RO local-muntenia http://stvron.com/canale/mari/tv-buzau.png @@ -3084,6 +3450,7 @@ TVC21.md TVC21 + MD local-basarabia https://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/Logo_TVC21_%282011%29.svg/1920px-Logo_TVC21_%282011%29.svg.png @@ -3095,6 +3462,7 @@ TVCity.ro TV City + RO local-muntenia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tv_city.png @@ -3104,6 +3472,7 @@ TVCNS.ro TV CNS + RO local-moldova https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tv_cns.png @@ -3114,6 +3483,7 @@ TVPaprika.ro TV Paprika + RO thematic https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tv_paprika.png @@ -3124,12 +3494,14 @@ TVPlusSuceava.ro TV Plus Suceava + RO local-bucovina https://televiziuneaplus.ro/wp-content/uploads/2019/04/cropped-tv-plus-regional.png TVPrim.md TV Prim + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tv_prim.png @@ -3139,6 +3511,7 @@ TVSud.ro TV Sud + RO local-oltenia http://www.tvsud.ro/wp-content/uploads/logo/logo-tv.png @@ -3148,6 +3521,7 @@ TVSudEst.ro TV SudEst + RO local-muntenia http://stvron.com/canale/mari/tv-sud-est.png @@ -3158,6 +3532,7 @@ TVTotal.ro TV Total + RO local-moldova https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tv_total.png @@ -3167,12 +3542,14 @@ TV1000.ro TV1000 + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tv1000.png TV5Monde.fr TV5 Monde + INT foreign https://static.epg.best/nl/TV5Monde.nl.png @@ -3185,6 +3562,7 @@ TV8Moldova.md TV8 Moldova + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tv8.png @@ -3195,12 +3573,14 @@ TVH.ro TVH + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tvh.png TVH20.ro TVH 20 + RO unknown RO: TVH2O @@ -3209,6 +3589,7 @@ TVR1.ro TVR 1 + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tvr1.png @@ -3219,6 +3600,7 @@ TVR2.ro TVR 2 + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tvr2.png @@ -3228,6 +3610,7 @@ TVR3.ro TVR 3 + RO general https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tvr3.png @@ -3237,18 +3620,21 @@ TVRCluj.ro TVR Cluj + RO local-transilvania https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tvr_cluj.png TVRCraiova.ro TVR Craiova + RO local-oltenia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tvr_craiova.png TVRIasi.ro TVR Iași + RO local-moldova https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tvr_iasi.png @@ -3260,6 +3646,7 @@ TVRInternational.ro TVR Internațional + RO international https://upload.wikimedia.org/wikipedia/ro/thumb/d/d9/TVRiLogo.svg/1200px-TVRiLogo.svg.png @@ -3271,6 +3658,7 @@ TVRMoldova.md TVR Moldova + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tvr_moldova.png @@ -3281,6 +3669,7 @@ TVRTarguMures.ro TVR Târgu Mureș + RO local-transilvania https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tvr_targu_mures.png @@ -3293,6 +3682,7 @@ TVRTimisoara.ro TVR Timișoara + RO local-banat https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tvr_timisoara.png @@ -3302,18 +3692,21 @@ TVSat.ro TVSat + RO local-muntenia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/tvs_at.png UTV.ro U TV + RO music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/utv.png VPTV.ro Valea Prahovei TV + RO local-muntenia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/valea_prahovei_tv.png @@ -3324,6 +3717,7 @@ VeziTV.ro Vezi TV + RO local-oltenia https://vtv.ro/wp-content/uploads/2018/06/vtv-100.png @@ -3333,18 +3727,21 @@ VH1.ro VH1 + RO music http://stvron.com/canale/mari/vh1.png VH1Classic.ro VH1 Classic + RO music http://stvron.com/canale/mari/vh1.png ViasatExplore.ro Viasat Explore + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/viasat_explore.png @@ -3355,24 +3752,28 @@ ViasatHistory.ro Viasat History + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/viasat_history.png ViasatNature.ro Viasat Nature + RO educational https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/viasat_nature.png VibeFM.ro Vibe FM + RO radio VividRed.pl true Vivid Red TV + PL porn https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vivid_red.png @@ -3380,12 +3781,14 @@ VividFR.ca true Vivid TV + CA porn https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vivid.png VoceaBasarabiei.md Vocea Basarabiei + MD local-basarabia https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vocea_basarabiei.png @@ -3395,6 +3798,7 @@ VSV4K.ro VSV 4K + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vsv_4k.png @@ -3404,36 +3808,42 @@ VSVAction.ro VSV Action + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vsv_action.png VSVBollywood.ro VSV Bollywood + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vsv_bollywood.png VSVCartoons.ro VSV Cartoons + RO kids https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vsv_cartoons.png VSVChristmas.ro VSV Christmas + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vsv_christmas.png VSVCinema.ro VSV Cinema + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vsv_cinema.png VSVCinemaJS.ro VSV Cinema Jason Statham + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vsv_cinema_js.png @@ -3443,24 +3853,28 @@ VSVCollection.ro VSV Collection + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vsv_collection.png VSVComedy.ro VSV Comedy + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vsv_comedy.png VSVHorror.ro VSV Horror + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vsv_horror.png VSVMarvel.ro VSV Marvel + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vsv_marvel.png @@ -3470,6 +3884,7 @@ VSVSciFi.ro VSV Sci-Fi + RO movies https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/vsv_sci-fi.png @@ -3477,12 +3892,14 @@ XTV true X TV + INT porn https://iptv.live/images/logo/channel/smalls/a1d557a00a3b02b2848cf3d5a701c741.png ZonaM.md ZonaM + MD music https://raw.githubusercontent.com/hmlendea/tv-logos/master/logos/zonam.png @@ -3492,6 +3909,7 @@ ZUTV.ro ZU TV + RO music https://upload.wikimedia.org/wikipedia/ro/a/a2/ZUTVLogo.png diff --git a/DataAccess/DataObjects/ChannelDefinitionEntity.cs b/DataAccess/DataObjects/ChannelDefinitionEntity.cs index 28cda93..76ad121 100644 --- a/DataAccess/DataObjects/ChannelDefinitionEntity.cs +++ b/DataAccess/DataObjects/ChannelDefinitionEntity.cs @@ -12,6 +12,8 @@ public sealed class ChannelDefinitionEntity : EntityBase public string Name { get; set; } + public string Country { get; set; } + public string GroupId { get; set; } public string LogoUrl { get; set; } diff --git a/Service/Mapping/ChannelDefinitionMapping.cs b/Service/Mapping/ChannelDefinitionMapping.cs index ac02168..00da3ae 100644 --- a/Service/Mapping/ChannelDefinitionMapping.cs +++ b/Service/Mapping/ChannelDefinitionMapping.cs @@ -14,6 +14,7 @@ internal static ChannelDefinition ToServiceModel(this ChannelDefinitionEntity da serviceModel.Id = dataObject.Id; serviceModel.IsEnabled = dataObject.IsEnabled; serviceModel.Name = new ChannelName(dataObject.Name, dataObject.Aliases); + serviceModel.Country = dataObject.Country; serviceModel.GroupId = dataObject.GroupId; serviceModel.LogoUrl = dataObject.LogoUrl; @@ -26,6 +27,7 @@ internal static ChannelDefinitionEntity ToDataObject(this ChannelDefinition serv dataObject.Id = serviceModel.Id; dataObject.IsEnabled = serviceModel.IsEnabled; dataObject.Name = serviceModel.Name.Value; + dataObject.Country = serviceModel.Country; dataObject.GroupId = serviceModel.GroupId; dataObject.LogoUrl = serviceModel.LogoUrl; dataObject.Aliases = serviceModel.Name.Aliases.ToList(); diff --git a/Service/Models/Channel.cs b/Service/Models/Channel.cs index d9dac4d..38058eb 100644 --- a/Service/Models/Channel.cs +++ b/Service/Models/Channel.cs @@ -7,6 +7,8 @@ public sealed class Channel public string Name { get; set; } public string Group { get; set; } + + public string Country { get; set; } public string LogoUrl { get; set; } diff --git a/Service/Models/ChannelDefinition.cs b/Service/Models/ChannelDefinition.cs index d564427..3cc0f39 100644 --- a/Service/Models/ChannelDefinition.cs +++ b/Service/Models/ChannelDefinition.cs @@ -8,6 +8,8 @@ public sealed class ChannelDefinition public ChannelName Name { get; set; } + public string Country { get; set; } + public string GroupId { get; set; } public string LogoUrl { get; set; } diff --git a/Service/PlaylistAggregator.cs b/Service/PlaylistAggregator.cs index 57b017e..5f704e5 100644 --- a/Service/PlaylistAggregator.cs +++ b/Service/PlaylistAggregator.cs @@ -168,6 +168,7 @@ IEnumerable GetEnabledChannels(IEnumerable filteredProviderCha Channel channel = new Channel(); channel.Id = channelDef.Id; channel.Name = channelDef.Name.Value; + channel.Country = channelDef.Country; channel.Group = groups[channelDef.GroupId].Name; channel.LogoUrl = channelDef.LogoUrl; channel.Url = matchedChannel.Url; diff --git a/Service/PlaylistFileBuilder.cs b/Service/PlaylistFileBuilder.cs index 7e8319a..fc82646 100644 --- a/Service/PlaylistFileBuilder.cs +++ b/Service/PlaylistFileBuilder.cs @@ -18,6 +18,7 @@ public sealed class PlaylistFileBuilder : IPlaylistFileBuilder const string TvGuideNameTagKey = "tvg-name"; const string TvGuideIdTagKey = "tvg-id"; const string TvGuideLogoTagKey = "tvg-logo"; + const string TvGuideCountryTagKey = "tvg-country"; const string TvGuideGroupTagKey = "group-title"; const int DefaultEntryRuntime = -1; @@ -138,6 +139,11 @@ string BuildTvGuideHeaderTags(Channel channel) tvgTags += $" {TvGuideLogoTagKey}=\"{channel.LogoUrl}\""; } + if (!string.IsNullOrWhiteSpace(channel.Country)) + { + tvgTags += $" {TvGuideCountryTagKey}=\"{channel.Country}\""; + } + if (!string.IsNullOrWhiteSpace(channel.Group)) { tvgTags += $" {TvGuideGroupTagKey}=\"{channel.Group}\""; From 24d7675011cf4f4eaaccb5a1508a26af31b74a0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mlendea=2C=20Hora=C8=9Biu?= Date: Sat, 17 Oct 2020 16:13:36 +0300 Subject: [PATCH 4/7] Improved channel matching --- Service/ChannelMatcher.cs | 2 +- UnitTests/Service/ChannelMatcherTests.cs | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Service/ChannelMatcher.cs b/Service/ChannelMatcher.cs index 03adeb2..bf19728 100644 --- a/Service/ChannelMatcher.cs +++ b/Service/ChannelMatcher.cs @@ -24,7 +24,7 @@ public sealed class ChannelMatcher : IChannelMatcher { "([a-zA-Z0-9_ ]{3})[ _\\|\\[\\(\\]\\)\".:-](Ultra|[FU])*_*[HMS][DQ]", "$1" }, { "4[Kk]\\+*", "" }, - { "^ *[\\|\\[\\(\\]\\)\".:-]* *([A-Z][A-Z]) *[\\|\\[\\(\\]\\)\".:-] *", "$1:" }, + { "^( *[\\|\\[\\(\\]\\)\".:-]* *([A-Z][A-Z]) *[\\|\\[\\(\\]\\)\".:-] *)+", "$2:" }, { "^ *([A-Z][A-Z]): *(.*) \\(*\\1\\)*$", "$1: $2" }, { "Moldavia", "Moldova" }, diff --git a/UnitTests/Service/ChannelMatcherTests.cs b/UnitTests/Service/ChannelMatcherTests.cs index 03ef47b..8f61f82 100644 --- a/UnitTests/Service/ChannelMatcherTests.cs +++ b/UnitTests/Service/ChannelMatcherTests.cs @@ -95,6 +95,9 @@ public void ChannelNamesDoNotMatch( [TestCase("DIGI SPORT 4 (RO)", "DIGISPORT4")] [TestCase("Jurnal TV Moldova", "MDJURNALTV")] [TestCase("MD: Canal Regional (Moldova)", "MDCANALREGIONAL")] + [TestCase("MD: MD: [MD] Publika", "MDPUBLIKA")] + [TestCase("MD: MD: Moldova 1", "MDMOLDOVA1")] + [TestCase("MD: MD| Pro TV Chișinău.", "MDPROTVCHISINAU")] [TestCase("MD: ProTV Chisinau", "MDPROTVCHISINAU")] [TestCase("MINIMAX ROMANIA HD", "MINIMAXROMANIA")] [TestCase("Pro TV [B] RO", "PROTV")] From b42de83baa7c6df34ae7618a79b839f99a2321d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mlendea=2C=20Hora=C8=9Biu?= Date: Sat, 17 Oct 2020 16:52:13 +0300 Subject: [PATCH 5/7] Added the country property to providers --- Data/providers.xml | 92 +++++++++++++++++++ .../DataObjects/PlaylistProviderEntity.cs | 2 + Service/ChannelMatcher.cs | 23 +++-- Service/IChannelMatcher.cs | 4 +- Service/Mapping/ChannelDefinitionMapping.cs | 2 +- Service/Mapping/PlaylistProviderMapping.cs | 2 + Service/Models/ChannelName.cs | 26 +++++- Service/Models/PlaylistProvider.cs | 2 + Service/PlaylistAggregator.cs | 4 +- Service/PlaylistFetcher.cs | 8 ++ UnitTests/Service/ChannelMatcherTests.cs | 83 +++++++++++++---- 11 files changed, 214 insertions(+), 34 deletions(-) diff --git a/Data/providers.xml b/Data/providers.xml index 50d9880..df89a28 100644 --- a/Data/providers.xml +++ b/Data/providers.xml @@ -8,6 +8,7 @@ false hmlendea's GitHub Channels RO https://raw.githubusercontent.com/hmlendea/iptv-playlist/master/ro.m3u + RO @@ -17,6 +18,7 @@ false hmlendea's GitHub Channels MD https://raw.githubusercontent.com/hmlendea/iptv-playlist/master/md.m3u + M @@ -35,6 +37,7 @@ false hmlendea's livestreams INT http://hmlendea.go.ro/iptv/livestreams/int/playlist.m3u + INT @@ -43,6 +46,7 @@ 100 IPTV org's GitHub RO Channels https://raw.githubusercontent.com/iptv-org/iptv/master/channels/ro.m3u + RO @@ -51,6 +55,7 @@ 101 IPTV org's GitHub MD Channels https://raw.githubusercontent.com/iptv-org/iptv/master/channels/md.m3u + MD @@ -59,6 +64,7 @@ 110 kilirushi's IPTV GitHub RO Channels https://raw.githubusercontent.com/kilirushi/m3u/master/ro.m3u + RO @@ -67,6 +73,7 @@ 111 kilirushi's IPTV GitHub MD Channels https://raw.githubusercontent.com/kilirushi/m3u/master/md.m3u + MD @@ -76,6 +83,7 @@ cstoicescu's GitHub RO Channels false https://raw.githubusercontent.com/cstoicescu/iptv-free-tv/master/playlist.m3u + RO @@ -84,6 +92,7 @@ 130 mak-iptv's GitHub RO Channels https://raw.githubusercontent.com/mak-iptv/iptv/master/channels/ro.m3u + RO @@ -92,6 +101,7 @@ 140 awinashrkdf's GitHub RO Channels https://raw.githubusercontent.com/awinashrkdf/iptv/master/channels/ro.m3u + RO @@ -100,6 +110,7 @@ 141 awinashrkdf's GitHub MD Channels https://raw.githubusercontent.com/awinashrkdf/iptv/master/channels/md.m3u + MD @@ -108,6 +119,7 @@ 150 Free-IPTV's IPTV GitHub RO Channels https://raw.githubusercontent.com/Free-IPTV/Countries/master/RO01_ROMANIA.m3u + RO @@ -116,6 +128,7 @@ 170 Cristy's IPTV GitLab RO Channels https://gitlab.com/Cristy/iptv/-/raw/master/Romania + RO @@ -124,6 +137,7 @@ 171 Cristy's IPTV GitLab MD Channels https://gitlab.com/Cristy/iptv/-/raw/master/Moldova + MD @@ -132,6 +146,7 @@ 180 Pablo-Angel's IPTV GitHub RO Channels https://raw.githubusercontent.com/Pablo-Angel/StabilePablo.m3u/master/Romania.m3u + RO @@ -140,6 +155,7 @@ 181 gabubu112's IPTV GitHub RO Channels https://raw.githubusercontent.com/gabubu112/Romania-IPTV/master/romaniatv.m3u + RO @@ -149,6 +165,7 @@ false hmlendea's livestreams RO http://hmlendea.go.ro/iptv/livestreams/ro/playlist.m3u + RO @@ -158,6 +175,7 @@ false hmlendea's livestreams MD http://hmlendea.go.ro/iptv/livestreams/md/playlist.m3u + MD @@ -166,6 +184,7 @@ 400 IPTV CAT RO 1 https://iptvcat.com/romania?.m3u8 + RO @@ -174,6 +193,7 @@ 401 IPTV CAT RO 2 https://iptvcat.com/romania/2?.m3u8 + RO @@ -182,6 +202,7 @@ 410 IPTV CAT MD 1 https://iptvcat.com/moldova?.m3u8 + MD @@ -190,6 +211,7 @@ 411 IPTV CAT MD 2 https://iptvcat.com/moldova/2?.m3u8 + MD @@ -198,6 +220,7 @@ 500 DailyIPTVList List 1 https://dailyiptvlist.com/dl/ro-m3uplaylist-{0:yyyy-MM-dd}-1.m3u + RO @@ -206,6 +229,7 @@ 501 DailyIPTVList List 2 https://dailyiptvlist.com/dl/ro-m3uplaylist-{0:yyyy-MM-dd}-2.m3u + RO @@ -214,6 +238,7 @@ 502 DailyIPTVList List 3 https://dailyiptvlist.com/dl/ro-m3uplaylist-{0:yyyy-MM-dd}-3.m3u + RO @@ -222,6 +247,7 @@ 503 DailyIPTVList List 4 https://dailyiptvlist.com/dl/ro-m3uplaylist-{0:yyyy-MM-dd}-4.m3u + RO @@ -230,6 +256,7 @@ 504 DailyIPTVList List 5 https://dailyiptvlist.com/dl/ro-m3uplaylist-{0:yyyy-MM-dd}-5.m3u + RO @@ -238,6 +265,7 @@ 505 DailyIPTVList List 6 https://dailyiptvlist.com/dl/ro-m3uplaylist-{0:yyyy-MM-dd}-6.m3u + RO @@ -246,6 +274,7 @@ 506 DailyIPTVList List 7 https://dailyiptvlist.com/dl/ro-m3uplaylist-{0:yyyy-MM-dd}-7.m3u + RO @@ -254,6 +283,7 @@ 510 Best Free IPTV https://bestfreeiptv.com/dl/ro-bestfreeiptv-{0:yyyy-MM-dd}.m3u + RO @@ -262,6 +292,7 @@ 511 Best Free IPTV Backup 1 https://bestfreeiptv.com/dl/ro-bestfreeiptv-{0:yyyy-MM-dd}_1.m3u + RO @@ -270,6 +301,7 @@ 512 Best Free IPTV Backup 2 https://bestfreeiptv.com/dl/ro-bestfreeiptv-{0:yyyy-MM-dd}_2.m3u + RO @@ -278,6 +310,7 @@ 513 Best Free IPTV Backup 3 https://bestfreeiptv.com/dl/ro-bestfreeiptv-{0:yyyy-MM-dd}_3.m3u + RO @@ -286,6 +319,7 @@ 514 Best Free IPTV Backup 4 https://bestfreeiptv.com/dl/ro-bestfreeiptv-{0:yyyy-MM-dd}_4.m3u + RO @@ -294,6 +328,7 @@ 530 Free IPTV Playlist https://www.freeiptvplaylist.com/m3u/ro-freeiptvplaylist-com-{0:dd-MM-yy}.m3u + RO @@ -302,6 +337,7 @@ 531 Free IPTV Playlist Backup 1 https://www.freeiptvplaylist.com/m3u/ro-freeiptvplaylist-com-{0:dd-MM-yy}-backuplist1.m3u + RO @@ -310,6 +346,7 @@ 532 Free IPTV Playlist Backup 2 https://www.freeiptvplaylist.com/m3u/ro-freeiptvplaylist-com-{0:dd-MM-yy}-backuplist2.m3u + RO @@ -318,6 +355,7 @@ 533 Free IPTV Playlist Backup 3 https://www.freeiptvplaylist.com/m3u/ro-freeiptvplaylist-com-{0:dd-MM-yy}-backuplist3.m3u + RO @@ -326,6 +364,7 @@ 534 Free IPTV Playlist Backup 4 https://www.freeiptvplaylist.com/m3u/ro-freeiptvplaylist-com-{0:dd-MM-yy}-backuplist4.m3u + RO @@ -334,6 +373,7 @@ 540 IPTVM3UList List 1 https://iptvm3ulist.com/m3u/ro01_iptvm3ulist_com_{0:ddMMyy}.m3u + RO @@ -342,6 +382,7 @@ 541 IPTVM3UList List 2 https://iptvm3ulist.com/m3u/ro02_iptvm3ulist_com_{0:ddMMyy}.m3u + RO @@ -350,6 +391,7 @@ 542 IPTVM3UList List 3 https://iptvm3ulist.com/m3u/ro03_iptvm3ulist_com_{0:ddMMyy}.m3u + RO @@ -358,6 +400,7 @@ 543 IPTVM3UList List 4 https://iptvm3ulist.com/m3u/ro04_iptvm3ulist_com_{0:ddMMyy}.m3u + RO @@ -366,6 +409,7 @@ 544 IPTVM3UList List 5 https://iptvm3ulist.com/m3u/ro05_iptvm3ulist_com_{0:ddMMyy}.m3u + RO @@ -374,6 +418,7 @@ 545 IPTVM3UList List 6 https://iptvm3ulist.com/m3u/ro06_iptvm3ulist_com_{0:ddMMyy}.m3u + RO @@ -382,6 +427,7 @@ 546 IPTVM3UList List 7 https://iptvm3ulist.com/m3u/ro07_iptvm3ulist_com_{0:ddMMyy}.m3u + RO @@ -390,6 +436,7 @@ 570 IPTVsource https://www.iptvsource.com/dl/ro_{0:ddMMyy}_iptvsource_com.m3u + RO @@ -398,6 +445,7 @@ 571 IPTVsource Backup 1 https://www.iptvsource.com/dl/ro_{0:ddMMyy}_iptvsource_com2.m3u + RO @@ -406,6 +454,7 @@ 572 IPTVsource Backup 2 https://www.iptvsource.com/dl/ro_{0:ddMMyy}_iptvsource_com3.m3u + RO @@ -414,6 +463,7 @@ 573 IPTVsource Backup 3 https://www.iptvsource.com/dl/ro_{0:ddMMyy}_iptvsource_com4.m3u + RO @@ -422,6 +472,7 @@ 574 IPTVsource Backup 4 https://www.iptvsource.com/dl/ro_{0:ddMMyy}_iptvsource_com5.m3u + RO @@ -430,6 +481,7 @@ 570 IPTVsource (Alternative) https://www.iptvsource.com/lists/ro_{0:ddMMyy}_iptvsource_com.m3u + RO @@ -438,6 +490,7 @@ 571 IPTVsource Backup 1 (Alternative) https://www.iptvsource.com/lists/ro_{0:ddMMyy}_iptvsource_com2.m3u + RO @@ -446,6 +499,7 @@ 572 IPTVsource Backup 2 (Alternative) https://www.iptvsource.com/lists/ro_{0:ddMMyy}_iptvsource_com3.m3u + RO @@ -454,6 +508,7 @@ 573 IPTVsource Backup 3 (Alternative) https://www.iptvsource.com/lists/ro_{0:ddMMyy}_iptvsource_com4.m3u + RO @@ -462,6 +517,7 @@ 574 IPTVsource Backup 4 (Alternative) https://www.iptvsource.com/lists/ro_{0:ddMMyy}_iptvsource_com5.m3u + RO @@ -470,6 +526,7 @@ 580 Gratis IPTV List 1 https://gratisiptv.com/dl/ro-gratisiptvm3u-{0:yyyy-MM-dd}-1.m3u + RO @@ -478,6 +535,7 @@ 581 Gratis IPTV List 2 https://gratisiptv.com/dl/ro-gratisiptvm3u-{0:yyyy-MM-dd}-2.m3u + RO @@ -486,6 +544,7 @@ 582 Gratis IPTV List 3 https://gratisiptv.com/dl/ro-gratisiptvm3u-{0:yyyy-MM-dd}-3.m3u + RO @@ -494,6 +553,7 @@ 583 Gratis IPTV List 4 https://gratisiptv.com/dl/ro-gratisiptvm3u-{0:yyyy-MM-dd}-4.m3u + RO @@ -502,6 +562,7 @@ 584 Gratis IPTV List 5 https://gratisiptv.com/dl/ro-gratisiptvm3u-{0:yyyy-MM-dd}-5.m3u + RO @@ -510,6 +571,7 @@ 585 Gratis IPTV List 1 (Alternative) https://gratisiptv.com/m3u/ro-gratisiptvm3u-{0:yyyy-MM-dd}-1.m3u + RO @@ -518,6 +580,7 @@ 586 Gratis IPTV List 2 (Alternative) https://gratisiptv.com/m3u/ro-gratisiptvm3u-{0:yyyy-MM-dd}-2.m3u + RO @@ -526,6 +589,7 @@ 587 Gratis IPTV List 3 (Alternative) https://gratisiptv.com/m3u/ro-gratisiptvm3u-{0:yyyy-MM-dd}-3.m3u + RO @@ -534,6 +598,7 @@ 588 Gratis IPTV List 4 (Alternative) https://gratisiptv.com/m3u/ro-gratisiptvm3u-{0:yyyy-MM-dd}-4.m3u + RO @@ -542,6 +607,7 @@ 589 Gratis IPTV List 5 (Alternative) https://gratisiptv.com/m3u/ro-gratisiptvm3u-{0:yyyy-MM-dd}-5.m3u + RO @@ -550,6 +616,7 @@ 590 iPTV Resources https://iptvresources.com/iptv/ro-iptv-{0:yyyy-MM-dd}.m3u + RO @@ -558,6 +625,7 @@ 591 iPTV Resources Backup https://iptvresources.com/iptv/ro-iptv-{0:yyyy-MM-dd}-1.m3u + RO @@ -566,6 +634,7 @@ 620 Free IPTV Server https://freeiptvserver.com/dl/ro_{0:ddMMyy}_iptvsource_com.m3u + RO @@ -574,6 +643,7 @@ 621 Free IPTV Server Backup 1 https://freeiptvserver.com/dl/ro_{0:ddMMyy}_iptvsource_com2.m3u + RO @@ -582,6 +652,7 @@ 623 Free IPTV Server Backup 2 https://freeiptvserver.com/dl/ro_{0:ddMMyy}_iptvsource_com3.m3u + RO @@ -590,6 +661,7 @@ 624 Free IPTV Server Backup 3 https://freeiptvserver.com/dl/ro_{0:ddMMyy}_iptvsource_com4.m3u + RO @@ -598,6 +670,7 @@ 625 Free IPTV Server Backup 4 https://freeiptvserver.com/dl/ro_{0:ddMMyy}_iptvsource_com5.m3u + RO @@ -606,6 +679,7 @@ 626 Free IPTV Server Backup 5 https://freeiptvserver.com/dl/ro_{0:ddMMyy}_iptvsource_com6.m3u + RO @@ -614,6 +688,7 @@ 650 M3U Playlist List 1 http://m3uplaylist.com/m3u-files/romania_iptv_{0:dd-MM-yyyy}_m3uplaylist_com_S1.m3u + RO @@ -622,6 +697,7 @@ 660 M3U Playlist List 2 http://m3uplaylist.com/m3u-files/romania_iptv_m3uplaylist_com.m3u + RO @@ -630,6 +706,7 @@ 680 Free Tux TV Romania http://database.freetuxtv.net/playlists/playlist_webtv_ro.m3u + RO @@ -638,6 +715,7 @@ 681 Free Tux TV Moldova http://database.freetuxtv.net/playlists/playlist_webtv_md.m3u + MD @@ -646,6 +724,7 @@ 950 yonni55555's IPTV GitHub RO Channels https://raw.githubusercontent.com/yonni55555/RP/master/Romania.m3u + RO @@ -654,6 +733,7 @@ 960 vb6rocod's IPTV GitHub RO Channels https://raw.githubusercontent.com/vb6rocod/hddlinks_android/master/tv/pl/Frecvente.m3u + RO @@ -662,6 +742,7 @@ 961 vb6rocod's IPTV GitHub RO TVR Channels https://raw.githubusercontent.com/vb6rocod/hddlinks_android/master/tv/pl/TVR.m3u + RO @@ -670,6 +751,7 @@ 970 SharyRajpoot's IPTV GitHub RO Channels https://raw.githubusercontent.com/SharyRajpoot/iptv/master/channels/countries/ro.m3u + RO @@ -678,6 +760,7 @@ 971 SharyRajpoot's IPTV GitHub MD Channels https://raw.githubusercontent.com/SharyRajpoot/iptv/master/channels/countries/md.m3u + MD @@ -686,6 +769,7 @@ 972 ratul0547's IPTV GitHub RO Channels https://raw.githubusercontent.com/ratul0547/sturdy-iptv/main/countries/ROMANIA.m3u + RO @@ -694,6 +778,7 @@ 974 ap-rose's IPTV GitHub RO Channels https://raw.githubusercontent.com/ap-rose/TV/master/ro.m3u + RO @@ -702,6 +787,7 @@ 975 ap-rose's IPTV GitHub MD Channels https://raw.githubusercontent.com/ap-rose/TV/master/md.m3u + MD @@ -710,6 +796,7 @@ 980 Tempest0580's IPTV GitHub RO Channels https://raw.githubusercontent.com/Tempest0580/xml/master/foreign_channels/ro.m3u + RO @@ -718,6 +805,7 @@ 981 Tempest0580's IPTV GitHub MD Channels https://raw.githubusercontent.com/Tempest0580/xml/master/foreign_channels/md.m3u + MD @@ -727,6 +815,7 @@ Salex777-gif's IPTV GitHub RO Channels false https://raw.githubusercontent.com/salex777/iptvX/master/i.m3u + RO @@ -736,6 +825,7 @@ Valentin-gif's IPTV GitHub RO Channels false https://raw.githubusercontent.com/Valentin-gif/silver-lamp/master/page1.txt + RO @@ -745,6 +835,7 @@ hmlendea's GitHub Channels RO (Timed) false https://raw.githubusercontent.com/hmlendea/iptv-playlist/master/ro-timed.m3u + RO @@ -754,6 +845,7 @@ hmlendea's GitHub Channels MD (Timed) false https://raw.githubusercontent.com/hmlendea/iptv-playlist/master/md-timed.m3u + RO diff --git a/DataAccess/DataObjects/PlaylistProviderEntity.cs b/DataAccess/DataObjects/PlaylistProviderEntity.cs index 94bcda4..4d6e7d2 100644 --- a/DataAccess/DataObjects/PlaylistProviderEntity.cs +++ b/DataAccess/DataObjects/PlaylistProviderEntity.cs @@ -14,6 +14,8 @@ public class PlaylistProviderEntity : EntityBase public string UrlFormat { get; set; } + public string Country { get; set; } + public string ChannelNameOverride { get; set; } public PlaylistProviderEntity() diff --git a/Service/ChannelMatcher.cs b/Service/ChannelMatcher.cs index bf19728..f0a2818 100644 --- a/Service/ChannelMatcher.cs +++ b/Service/ChannelMatcher.cs @@ -65,7 +65,7 @@ public ChannelMatcher(ICacheManager cache) this.cache = cache; } - public string NormaliseName(string name) + public string NormaliseName(string name, string country) { string normalisedName = cache.GetNormalisedChannelName(name); @@ -74,7 +74,16 @@ public string NormaliseName(string name) return normalisedName; } - normalisedName = name.RemoveDiacritics(); + if (string.IsNullOrWhiteSpace(country)) + { + normalisedName = name; + } + else + { + normalisedName = $"{country}: {name}"; + } + + normalisedName = normalisedName.RemoveDiacritics(); normalisedName = StripChannelName(normalisedName); normalisedName = normalisedName.ToUpper(); @@ -83,12 +92,12 @@ public string NormaliseName(string name) return normalisedName; } - public bool DoesMatch(ChannelName name1, string name2) - => DoChannelNamesMatch(name1.Value, name2) || - name1.Aliases.Any(x => DoChannelNamesMatch(x, name2)); + public bool DoesMatch(ChannelName name1, string name2, string country2) + => DoChannelNamesMatch(name1.Value, name1.Country, name2, country2) || + name1.Aliases.Any(name1alias => DoChannelNamesMatch(name1alias, name1.Country, name2, country2)); - bool DoChannelNamesMatch(string name1, string name2) - => NormaliseName(name1).Equals(NormaliseName(name2)); + bool DoChannelNamesMatch(string name1, string country1, string name2, string country2) + => NormaliseName(name1, country1).Equals(NormaliseName(name2, country2)); string StripChannelName(string name) { diff --git a/Service/IChannelMatcher.cs b/Service/IChannelMatcher.cs index ce68a86..a8d2919 100644 --- a/Service/IChannelMatcher.cs +++ b/Service/IChannelMatcher.cs @@ -4,8 +4,8 @@ namespace IptvPlaylistAggregator.Service { public interface IChannelMatcher { - string NormaliseName(string name); + string NormaliseName(string name, string country); - bool DoesMatch(ChannelName name1, string name2); + bool DoesMatch(ChannelName name1, string name2, string country2); } } diff --git a/Service/Mapping/ChannelDefinitionMapping.cs b/Service/Mapping/ChannelDefinitionMapping.cs index 00da3ae..4a5dcc0 100644 --- a/Service/Mapping/ChannelDefinitionMapping.cs +++ b/Service/Mapping/ChannelDefinitionMapping.cs @@ -13,7 +13,7 @@ internal static ChannelDefinition ToServiceModel(this ChannelDefinitionEntity da ChannelDefinition serviceModel = new ChannelDefinition(); serviceModel.Id = dataObject.Id; serviceModel.IsEnabled = dataObject.IsEnabled; - serviceModel.Name = new ChannelName(dataObject.Name, dataObject.Aliases); + serviceModel.Name = new ChannelName(dataObject.Name, dataObject.Country, dataObject.Aliases); serviceModel.Country = dataObject.Country; serviceModel.GroupId = dataObject.GroupId; serviceModel.LogoUrl = dataObject.LogoUrl; diff --git a/Service/Mapping/PlaylistProviderMapping.cs b/Service/Mapping/PlaylistProviderMapping.cs index 172d025..e64347a 100644 --- a/Service/Mapping/PlaylistProviderMapping.cs +++ b/Service/Mapping/PlaylistProviderMapping.cs @@ -17,6 +17,7 @@ internal static PlaylistProvider ToServiceModel(this PlaylistProviderEntity data serviceModel.AllowCaching = dataObject.AllowCaching; serviceModel.Name = dataObject.Name; serviceModel.UrlFormat = dataObject.UrlFormat; + serviceModel.Country = dataObject.Country; serviceModel.ChannelNameOverride = dataObject.ChannelNameOverride; return serviceModel; @@ -31,6 +32,7 @@ internal static PlaylistProviderEntity ToDataObject(this PlaylistProvider servic dataObject.AllowCaching = serviceModel.AllowCaching; dataObject.Name = serviceModel.Name; dataObject.UrlFormat = serviceModel.UrlFormat; + dataObject.Country = serviceModel.Country; dataObject.ChannelNameOverride = serviceModel.ChannelNameOverride; return dataObject; diff --git a/Service/Models/ChannelName.cs b/Service/Models/ChannelName.cs index f27ccf3..1967a60 100644 --- a/Service/Models/ChannelName.cs +++ b/Service/Models/ChannelName.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; namespace IptvPlaylistAggregator.Service.Models { @@ -6,21 +7,36 @@ public sealed class ChannelName { public string Value { get; set; } + public string Country { get; set; } + public IEnumerable Aliases { get; set; } public ChannelName(string name) - : this(name, new List()) + : this(name, country: null) { - } - public ChannelName(string name, IEnumerable aliases) + public ChannelName(string name, string country) + : this(name, country, new List()) { - Value = name; - Aliases = aliases; } public ChannelName(string name, params string[] aliases) + : this(name, country: null, aliases) + { + } + + public ChannelName(string name, string country, params string[] aliases) + : this(name, country, aliases.ToList()) + { + } + + public ChannelName(string name, IEnumerable aliases) + : this(name, country: null, aliases) + { + } + + public ChannelName(string name, string country, IEnumerable aliases) { Value = name; Aliases = aliases; diff --git a/Service/Models/PlaylistProvider.cs b/Service/Models/PlaylistProvider.cs index 7ad2ac3..1f7e5ae 100644 --- a/Service/Models/PlaylistProvider.cs +++ b/Service/Models/PlaylistProvider.cs @@ -14,6 +14,8 @@ public class PlaylistProvider public string UrlFormat { get; set; } + public string Country { get; set; } + public string ChannelNameOverride { get; set; } } } diff --git a/Service/PlaylistAggregator.cs b/Service/PlaylistAggregator.cs index 5f704e5..2117009 100644 --- a/Service/PlaylistAggregator.cs +++ b/Service/PlaylistAggregator.cs @@ -139,7 +139,7 @@ IEnumerable GetEnabledChannels(IEnumerable filteredProviderCha new LogInfo(MyLogInfoKey.Channel, channelDef.Name.Value)); List matchedChannels = filteredProviderChannels - .Where(x => channelMatcher.DoesMatch(channelDef.Name, x.Name)) + .Where(x => channelMatcher.DoesMatch(channelDef.Name, x.Name, x.Country)) .ToList(); if (!matchedChannels.Any()) @@ -196,7 +196,7 @@ IEnumerable GetUnmatchedChannels(IEnumerable filteredProviderC logger.Info(MyOperation.ChannelMatching, OperationStatus.InProgress, $"Getting unmatched channels"); IEnumerable unmatchedChannels = filteredProviderChannels - .Where(x => channelDefinitions.All(y => !channelMatcher.DoesMatch(y.Name, x.Name))) + .Where(x => channelDefinitions.All(y => !channelMatcher.DoesMatch(y.Name, x.Name, x.Country))) .GroupBy(x => x.Name) .Select(g => g.First()) .OrderBy(x => x.Name); diff --git a/Service/PlaylistFetcher.cs b/Service/PlaylistFetcher.cs index 4b6623c..42c1318 100644 --- a/Service/PlaylistFetcher.cs +++ b/Service/PlaylistFetcher.cs @@ -54,6 +54,14 @@ public IEnumerable FetchProviderPlaylists(IEnumerable playlist); + + if (!string.IsNullOrWhiteSpace(provider.Country)) + { + foreach (Channel channel in playlist.Channels) + { + channel.Country = provider.Country; + } + } } }); diff --git a/UnitTests/Service/ChannelMatcherTests.cs b/UnitTests/Service/ChannelMatcherTests.cs index 8f61f82..8abffed 100644 --- a/UnitTests/Service/ChannelMatcherTests.cs +++ b/UnitTests/Service/ChannelMatcherTests.cs @@ -22,9 +22,7 @@ public void SetUp() } [TestCase("Agro TV", "RO: Agro", "Agro RO")] - [TestCase("AMC", null, "RO: AMC Romania")] [TestCase("Antena 1", "RO: Antenna", "RO: Antenna HD")] - [TestCase("Antena 3", null, "Antena 3 Ultra_HD")] [TestCase("Ardeal TV", "RO: Ardeal TV", "|RO| Ardeal TV")] [TestCase("Bollywood TV", "RO: BO TV", "BO TV")] [TestCase("Cartoon Network", "RO: Cartoon Network", "VIP|RO|: Cartoon Network")] @@ -35,16 +33,12 @@ public void SetUp() [TestCase("Duna", "RO: Duna TV", "RO | Duna Tv")] [TestCase("Golf Channel", "FR: Golf Channel", "|FR| GOLF CHANNEL FHD")] [TestCase("H!T Music Channel", "RO: Hit", "RO | HIT")] - [TestCase("HBO 3", null, "HBO 3 F_HD")] [TestCase("HD Net Van Damme", "HD NET Jean Claude Van Damme", "HD NET Jean Claude van Damme")] [TestCase("Jurnal TV", "MD: Jurnal TV", "Jurnal TV Moldavia")] [TestCase("MegaMax", "RO: MegaMax", "RO: MegaMax-HD")] - [TestCase("MTV Europe", null, "RO: MTV Europe")] [TestCase("NCN TV", "RO: NCN", "RO: NCN HD")] [TestCase("Pro TV News", "RO: Pro News", "Pro News")] - [TestCase("Pro TV", null, "PRO TV ULTRA_HD")] [TestCase("Publika TV", "MD: Publika", "PUBLIKA_TV_HD")] - [TestCase("Realitatea Plus", null, "Realitatea Plus")] [TestCase("România TV", "România TV", "RO\" Romania TV")] [TestCase("Somax", "RO: Somax TV", "Somax TV")] [TestCase("Sundance", "RO: Sundance TV", "RO: Sundance TV FHD (MultiSub)")] @@ -56,33 +50,83 @@ public void SetUp() [TestCase("TVC21", "MD: TVC21", "TVC 21 Moldova")] [TestCase("TVR Moldova", "RO: TVR Moldova", "RO: TVR Moldova")] [TestCase("TVR Târgu Mureș", "RO: TVR T?rgu-Mure?", "TVR: Targu Mureș")] - [TestCase("TVR", null, "RO: TVR HD (1080P)")] - [TestCase("U TV", null, "UTV")] - [TestCase("Vivid TV", null, "Vivid TV HD(18+)")] [TestCase("VSV De Niro", "VSV Robert de Niro", "VSV Robert de Niro HD")] [Test] - public void ChannelNamesDoMatch( + public void ChannelNamesDoMatch_WithAliasWithoutCountry( string definedName, string alias, string providerName) { ChannelName channelName = GetChannelName(definedName, alias); - Assert.IsTrue(channelMatcher.DoesMatch(channelName, providerName)); + Assert.IsTrue(channelMatcher.DoesMatch(channelName, providerName, country2: null)); + } + + [TestCase("AMC", "RO: AMC Romania")] + [TestCase("Antena 3", "Antena 3 Ultra_HD")] + [TestCase("HBO 3", "HBO 3 F_HD")] + [TestCase("MTV Europe", "RO: MTV Europe")] + [TestCase("Pro TV", "PRO TV ULTRA_HD")] + [TestCase("Realitatea Plus", "Realitatea Plus")] + [TestCase("TVR", "RO: TVR HD (1080P)")] + [TestCase("U TV", "UTV")] + [TestCase("Vivid TV", "Vivid TV HD(18+)")] + [Test] + public void ChannelNamesDoMatch_WithoutAliasWithoutCountry( + string definedName, + string providerName) + { + ChannelName channelName = GetChannelName(definedName, alias: null); + + Assert.IsTrue(channelMatcher.DoesMatch(channelName, providerName, country2: null)); } [TestCase("Cromtel", "Cmrotel", "Cmtel")] - [TestCase("Pro TV", null, "MD: ProTV Chisinau")] [TestCase("Telekom Sport 2", "RO: Telekom Sport 2", "RO: Digi Sport 2")] [Test] - public void ChannelNamesDoNotMatch( + public void ChannelNamesDoNotMatch_WithAliasWithoutCountry( string definedName, string alias, string providerName) { ChannelName channelName = GetChannelName(definedName, alias); - Assert.IsFalse(channelMatcher.DoesMatch(channelName, providerName)); + Assert.IsFalse(channelMatcher.DoesMatch(channelName, providerName, country2: null)); + } + + [TestCase("Pro TV", "MD: ProTV Chisinau")] + [Test] + public void ChannelNamesDoNotMatch_WithoutAliasWithoutCountry( + string definedName, + string providerName) + { + ChannelName channelName = GetChannelName(definedName, alias: null); + + Assert.IsFalse(channelMatcher.DoesMatch(channelName, providerName, country2: null)); + } + + [TestCase(" MD| Publika", "MD", "MDPUBLIKA")] + [TestCase("|AR| AD SPORT 4 HEVC", "AR", "ARADSPORT4")] + [TestCase("|FR| GOLF CHANNELS HD", "FR", "FRGOLFCHANNELS")] + [TestCase("|RO| Ardeal TV", "RO", "ARDEALTV")] + [TestCase("|ROM|: Cromtel", "RO", "CROMTEL")] + [TestCase("|UK| CHELSEA TV (Live On Matches) HD", "UK", "UKCHELSEATV")] + [TestCase("Canal Regional (Moldova)", "MD", "MDCANALREGIONAL")] + [TestCase("RO | Travel", "RO", "TRAVEL")] + [TestCase("RO: Travel", "RO", "TRAVEL")] + [TestCase("Travel Mix", "RO", "TRAVELMIX")] + [TestCase("TV Paprika", "RO", "TVPAPRIKA")] + [TestCase("TV8", "MD", "MDTV8")] + [TestCase("TVC21", "MD", "MDTVC21")] + [TestCase("TVR Moldova", "MD", "MDTVR")] + [TestCase("TVR Târgu Mureș", "RO", "TVRTARGUMURES")] + [TestCase("VSV De Niro", "RO", "VSVDENIRO")] + [Test] + public void NormaliseName_WithCountry_ReturnsExpectedValue(string name, string country, string expectedNormalisedName) + { + string actualNormalisedName = channelMatcher.NormaliseName(name, country); + + Assert.That(actualNormalisedName, Is.EqualTo(expectedNormalisedName)); } [TestCase(" MD| Publika", "MDPUBLIKA")] @@ -103,6 +147,8 @@ public void ChannelNamesDoNotMatch( [TestCase("Pro TV [B] RO", "PROTV")] [TestCase("PUBLIKA_TV_HD", "PUBLIKATV")] [TestCase("RO \" DIGI SPORT 1 HD RO", "DIGISPORT1")] + [TestCase("RO | Travel", "TRAVEL")] + [TestCase("RO: Travel", "TRAVEL")] [TestCase("RO-Animal Planet HD", "ANIMALPLANET")] [TestCase("Ro: 1 HD", "1HD")] [TestCase("RO: Animal World [768p]", "ANIMALWORLD")] @@ -138,21 +184,24 @@ public void ChannelNamesDoNotMatch( [TestCase("VSV Robert de Niro", "VSVROBERTDENIRO")] [TestCase("ZonaM Moldova", "MDZONAM")] [Test] - public void NormaliseName_ReturnsExpectedValue(string inputValue, string expectedValue) + public void NormaliseName_WithoutCountry_ReturnsExpectedValue(string inputValue, string expectedValue) { - string actualValue = channelMatcher.NormaliseName(inputValue); + string actualValue = channelMatcher.NormaliseName(inputValue, country: null); Assert.AreEqual(expectedValue, actualValue); } private ChannelName GetChannelName(string definedName, string alias) + => GetChannelName(definedName, country: null, alias); + + private ChannelName GetChannelName(string definedName, string country, string alias) { if (alias is null) { return new ChannelName(definedName); } - return new ChannelName(definedName, alias); + return new ChannelName(definedName, country, alias); } } } From fbc5c01fd99adafc6627e242cf59f2421cfe133e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mlendea=2C=20Hora=C8=9Biu?= Date: Sat, 17 Oct 2020 16:52:40 +0300 Subject: [PATCH 6/7] Updated the README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b756bca..ad0c30f 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,7 @@ ChannelDefinitionEntity fields: - *Id* (string): The TVG ID. If using a TVG provider within your IPTV application, make sure the channel IDs match the TVG IDs of your provider. - *IsEnabled* (bool): Indicates whether the final playlist will contain this channel or not. Even if enabled, if the group is disabled, the channel will still be omitted. - *Name* (string): The name of the channel, as displayed in your IPTV application. + - *Country* (string): (Optional) The country where the channel is being broadcasted. The `tvg-country` property will be populated with this value, if it exists. It will also be used uin the channel matching process. - *GroupId* (string): The ID of the group that this channel will be part of. - *LogoUrl* (string): The URL to a logo for the channel. Make sure your IPTV application supports the logo format you provide here. - *Aliases* (string collection): Different variants of the name of the channel, as it can appear in the provider playlists. This is the criteria used to match provider channels to this definition. @@ -131,4 +132,5 @@ PlaylistProviderDefinitionEntity fields: - *Priority* (int): The lower the value, the sooner the provider will be processed. Try to make sure the most reliable providers are processed first, as once a channel is matched with a provider, it will be ignored for all other providers after it. - *AllowCaching* (bool): (Optional) Indicates whether this provider's playlist should be cached or not. Useful when the provider updates the playlist multiple times a day. By default it's true. - *UrlFormat* (string): The URL to the m3u playlist file of that provider. Replace the date part of the URL with a timestamp format. For example, *2019-05-19* will be replaced with *{0:yyyy-MM-dd}*. The *0* is the calendar day that is processed (today, or one of the previous ones depending on the *daysToCheck* setting) + - *Country* (string): (Optional) If set, the country will be used in the channel matching process. - *ChannelNameOverride* (string): (Optional) The channel name override for all the channels in the provider's playlist. From c5d04bbc0e0238aa585826f3c76ec83e591e51bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mlendea=2C=20Hora=C8=9Biu?= Date: Sat, 17 Oct 2020 16:56:32 +0300 Subject: [PATCH 7/7] Improved UT --- UnitTests/Service/ChannelMatcherTests.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/UnitTests/Service/ChannelMatcherTests.cs b/UnitTests/Service/ChannelMatcherTests.cs index 8abffed..1638bd7 100644 --- a/UnitTests/Service/ChannelMatcherTests.cs +++ b/UnitTests/Service/ChannelMatcherTests.cs @@ -94,15 +94,21 @@ public void ChannelNamesDoNotMatch_WithAliasWithoutCountry( Assert.IsFalse(channelMatcher.DoesMatch(channelName, providerName, country2: null)); } + [TestCase("Pro TV", "MD: Pro TV")] [TestCase("Pro TV", "MD: ProTV Chisinau")] [Test] public void ChannelNamesDoNotMatch_WithoutAliasWithoutCountry( string definedName, string providerName) { + // Arrange ChannelName channelName = GetChannelName(definedName, alias: null); - Assert.IsFalse(channelMatcher.DoesMatch(channelName, providerName, country2: null)); + // Act + bool isMatch = channelMatcher.DoesMatch(channelName, providerName, country2: null); + + // Assert + Assert.That(isMatch, Is.False); } [TestCase(" MD| Publika", "MD", "MDPUBLIKA")]