diff --git a/scripts/filter.js b/scripts/filter.js index da0d30b7f8..04f6f26443 100644 --- a/scripts/filter.js +++ b/scripts/filter.js @@ -19,13 +19,12 @@ async function main() { log.finish() } -async function removeBlacklisted(playlist) { +function removeBlacklisted(playlist) { const channels = playlist.channels.filter(channel => { return !blacklist.find(item => { - const hasSameName = - item.name.toLowerCase() === channel.name.toLowerCase() || - item.aliases.map(alias => alias.toLowerCase()).includes(channel.name.toLowerCase()) - const fromSameCountry = channel.countries.find(c => c.code === item.country) + const regexp = new RegExp(item.regex, 'i') + const hasSameName = regexp.test(channel.name) + const fromSameCountry = playlist.country.code === item.country return hasSameName && fromSameCountry }) diff --git a/scripts/helpers/blacklist.json b/scripts/helpers/blacklist.json index 8893f5de14..f5c735d0e6 100644 --- a/scripts/helpers/blacklist.json +++ b/scripts/helpers/blacklist.json @@ -3,378 +3,630 @@ "name": "Animal Planet", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Animal Planet$" + }, + { + "name": "Arena 4", + "country": "hu", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Arena( |)4$" }, { "name": "Asian Food Network", "country": "sg", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Asian Food Network$" + }, + { + "name": "Astro SuperSport", + "country": "my", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Astro SuperSport$" + }, + { + "name": "Azteca 7", + "country": "mx", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Azteca 7$" + }, + { + "name": "beIN Sports", + "country": "qa", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^beIN Sports" + }, + { + "name": "Canal+ Sport", + "country": "fr", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Canal( |)+ Sport" }, { "name": "Cooking Channel", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Cooking Channel$" + }, + { + "name": "DAZN", + "country": "uk", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^DAZN($| [1-4] .*)$" + }, + { + "name": "Diema Sport", + "country": "bg", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Diema Sport($| [1-3])$" + }, + { + "name": "Digi Sport", + "country": "ro", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Digi Sport($| [1-4].*)" }, { "name": "Discovery Asia", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery Asia$" }, { "name": "Discovery Channel", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery Channel$" }, { "name": "Discovery Civiliztion", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery Civiliztion$" }, { "name": "Discovery en Espanol", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery en Espanol$" }, { "name": "Discovery Family", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery Family$" }, { "name": "Discovery Historia", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery Historia$" }, { "name": "Discovery History", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery History$" }, { "name": "Discovery Home and Health", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery Home and Health$" }, { "name": "Discovery Life", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery Life$" }, { "name": "Discovery Science", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery Science$" }, { "name": "Discovery Shed", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery Shed$" }, { "name": "Discovery Theater", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery Theater$" }, { "name": "Discovery Travel and Living", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery Travel and Living$" }, { "name": "Discovery Turbo Xtra", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery Turbo Xtra$" }, { "name": "Discovery World", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery World$" }, { "name": "Discovery", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Discovery$" }, { "name": "DIY Network", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^DIY Network$" }, { "name": "DKiss", "country": "es", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^DKiss$" }, { "name": "DMax", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^DMax$" }, { - "name": "Eurosport 1", - "country": "fr", - "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "name": "Eleven Sports", + "country": "uk", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Eleven Sports($| [1-6] .*)$" }, { - "name": "Eurosport 2", - "country": "fr", - "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "name": "ESPN", + "country": "us", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^ESPN($|[1-3]| .*)$" }, { "name": "Eurosport", "country": "fr", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Eurosport($| [1-2])$" }, { "name": "eve", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^eve$" }, { "name": "Familia Discovery", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Familia Discovery$" }, { "name": "Fatafeat", "country": "eg", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Fatafeat$" }, { "name": "FEM", "country": "no", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^FEM$" }, { "name": "Fine Living", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Fine Living$" + }, + { + "name": "Flow Sports", + "country": "uk", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Flow Sports$" }, { "name": "Food Network", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Food Network$" }, { "name": "food tv", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": ["foodtv"] + "regex": "^food( |)tv$" + }, + { + "name": "Fox Sports", + "country": "us", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Fox Sports$" }, { "name": "Frisbee", "country": "it", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Frisbee$" + }, + { + "name": "Futbol", + "country": "tj", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^(Futbol|Football TV|ТВ Футбол|Футбол)$" + }, + { + "name": "GTV Sports", + "country": "gh", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^GTV Sports" }, { "name": "Giallo", "country": "it", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Giallo$" }, { "name": "GolfTV", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": ["Golf TV"] + "regex": "^Golf( |)TV$" }, { "name": "HGTV", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^HGTV$" }, { "name": "Investigation Discovery", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": ["ID Investigation Discovery", "ID Investigation", "ID"] + "regex": "^(Investigation Discovery|ID Investigation Discovery|ID Investigation|ID)$" }, { "name": "K2", "country": "it", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^K2$" }, { "name": "Living Channel", "country": "nz", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Living Channel$" + }, + { + "name": "LookSport", + "country": "ro", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Look( |)Sport" }, { "name": "Mango", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Mango$" + }, + { + "name": "Match!", + "country": "ru", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^(Match|Матч)" }, { "name": "Motortrend", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Motortrend$" + }, + { + "name": "Mola TV", + "country": "id", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Mola TV($| .*)$" + }, + { + "name": "Movistar Liga de Campeones", + "country": "es", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Movistar Liga de Campeones [1-8]$" + }, + { + "name": "Nova Sport", + "country": "cz", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Nova Sport [1-3]$" + }, + { + "name": "Nova Sports", + "country": "gr", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Nova Sports [1-6]$" }, { "name": "Nove", "country": "it", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Nove($| .*)$" + }, + { + "name": "PPTV HD 36", + "country": "th", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^PPTV($| HD)$" + }, + { + "name": "One", + "country": "il", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^One$" }, { "name": "OWN", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": ["Oprah"] + "regex": "^(OWN|Oprah)$" }, { "name": "Quest Red", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Quest Red$" }, { "name": "Quest", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Quest$" }, { "name": "Real Time", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Real Time$" + }, + { + "name": "SABC Sport ", + "country": "za", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^SABC Sport" + }, + { + "name": "Setanta Sports", + "country": "ie", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Setanta Sports($| .*)$" + }, + { + "name": "Sky Sports", + "country": "uk", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Sky Sports$" + }, + { + "name": "Sky Sport Bundesliga", + "country": "de", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Sky Sport Bundesliga [0-9]+$" }, { "name": "Sky TG24", "country": "it", "dmca_notice": "https://github.com/iptv-org/iptv/pull/2294", - "aliases": [] + "regex": "^Sky TG24$" + }, + { + "name": "Sony Ten", + "country": "in", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Sony Ten [1-4]$" + }, + { + "name": "Spíler TV", + "country": "hu", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Spíler( |[1-2] )TV$" + }, + { + "name": "Šport TV", + "country": "si", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^(Šport|Sport) TV" + }, + { + "name": "Sport Klub", + "country": "hu", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^(Sport Klub|SK[1-9])" + }, + { + "name": "SportsNet", + "country": "ca", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^SportsNet$" + }, + { + "name": "StarHub TV", + "country": "sg", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^StarHub TV$" + }, + { + "name": "StarSat", + "country": "za", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^StarSat$" + }, + { + "name": "StarTimes TV", + "country": "mz", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^StarTimes TV" + }, + { + "name": "SuperSport", + "country": "al", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^SuperSport [1-7]$" + }, + { + "name": "Tivibu Spor", + "country": "tr", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Tivibu Spor" }, { "name": "TLC", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^TLC$" }, { "name": "Trvl Channel", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Trvl Channel$" + }, + { + "name": "TSN", + "country": "mt", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^TSN$" }, { "name": "TTV", "country": "pl", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^TTV$" }, { "name": "TV Norge", "country": "no", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^TV Norge$" + }, + { + "name": "TV Varzish", + "country": "tj", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^(TV Varzish|Varzish TV|Варзиш ТВ)$" + }, + { + "name": "TV3 Sport", + "country": "dk", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^TV( |)3 Sport$" + }, + { + "name": "tvN Asia", + "country": "kr", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^tvN($| Asia)$" }, { "name": "Tvn 24 Bis", "country": "pl", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Tvn 24 Bis$" }, { "name": "TVN 24", "country": "pl", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^TVN 24$" }, { "name": "Tvn 7", "country": "pl", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Tvn 7$" }, { "name": "TVN Extra", "country": "pl", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^TVN Extra$" }, { "name": "TVN Fabula", "country": "pl", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^TVN Fabula$" }, { "name": "TVN Meteo", "country": "pl", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^TVN Meteo$" }, { "name": "TVN Style", "country": "pl", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^TVN Style$" }, { "name": "TVN Turbo", "country": "pl", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^TVN Turbo$" }, { "name": "TVN Warszawa", "country": "pl", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^TVN Warszawa$" }, { "name": "TVN", "country": "pl", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^TVN$" + }, + { + "name": "V Sport", + "country": "no", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^V Sport" }, { "name": "Vox", "country": "no", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^Vox$" + }, + { + "name": "VTV Cab", + "country": "kr", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^VTV( |)Cab$" }, { "name": "World Discovery", "country": "us", "dmca_notice": "https://github.com/iptv-org/iptv/issues/1831", - "aliases": [] + "regex": "^World Discovery$" + }, + { + "name": "Xee", + "country": "dk", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^Xee$" + }, + { + "name": "XtvN", + "country": "kr", + "dmca_notice": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", + "regex": "^X( |)tvN$" } ]