From 8aec08727cdbc4d626b144dd22d04adecfb42e35 Mon Sep 17 00:00:00 2001 From: Andrey Meshkov Date: Thu, 4 Feb 2021 18:16:01 +0300 Subject: [PATCH] Added several blocked services Closes #2224 Closes #2401 Squashed commit of the following: commit 8d422091187d03273393775ddc691bdd2a6913f4 Merge: 7a8f598b fa33568f Author: Andrey Meshkov Date: Thu Feb 4 17:57:32 2021 +0300 Merge branch 'master' into fix-2224 commit 7a8f598b19a877c19cb1537047c0ae14fa8a0064 Author: Andrey Meshkov Date: Thu Feb 4 17:34:53 2021 +0300 Review comments commit 181db867fc56d89dd13a4d50a24922604eed4eae Author: Andrey Meshkov Date: Thu Feb 4 17:20:20 2021 +0300 fixed review comments commit fd5b0816d63952664c6e89a91494ca09dc4fc52d Author: Ildar Kamalov Date: Thu Feb 4 16:10:29 2021 +0300 + client: add service icons commit 724e0c26691488fdf7cd8215d200867ed3a86198 Author: Andrey Meshkov Date: Thu Feb 4 15:42:53 2021 +0300 Added several blocked services Closes #2224 Closes #2401 --- CHANGELOG.md | 3 + README.md | 2 +- client/src/components/ui/Icons.js | Bin 44350 -> 66115 bytes client/src/helpers/constants.js | 166 +++++++++++++++++++---------- internal/dnsfilter/blocked.go | 68 +++++++++++- internal/dnsfilter/blocked_test.go | 37 +++++++ 6 files changed, 217 insertions(+), 59 deletions(-) create mode 100644 internal/dnsfilter/blocked_test.go diff --git a/CHANGELOG.md b/CHANGELOG.md index b4af0e4a..858d11e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to ### Added +- Added more services to the "Blocked services" list ([#2224], [#2401]). - `ipset` subdomain matching, just like `dnsmasq` does ([#2179]). - Client ID support for DNS-over-HTTPS, DNS-over-QUIC, and DNS-over-TLS ([#1383]). @@ -33,10 +34,12 @@ and this project adheres to [#1383]: https://github.com/AdguardTeam/AdGuardHome/issues/1383 [#2102]: https://github.com/AdguardTeam/AdGuardHome/issues/2102 [#2179]: https://github.com/AdguardTeam/AdGuardHome/issues/2179 +[#2224]: https://github.com/AdguardTeam/AdGuardHome/issues/2224 [#2302]: https://github.com/AdguardTeam/AdGuardHome/issues/2302 [#2304]: https://github.com/AdguardTeam/AdGuardHome/issues/2304 [#2305]: https://github.com/AdguardTeam/AdGuardHome/issues/2305 [#2337]: https://github.com/AdguardTeam/AdGuardHome/issues/2337 +[#2401]: https://github.com/AdguardTeam/AdGuardHome/issues/2401 ### Changed diff --git a/README.md b/README.md index 41b5ab43..5402dc4c 100644 --- a/README.md +++ b/README.md @@ -303,7 +303,7 @@ Here is a link to AdGuard Home project: https://crowdin.com/project/adguard-appl Here's what you can also do to contribute: 1. [Look for issues](https://github.com/AdguardTeam/AdGuardHome/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+) marked as "help wanted". -2. Actualize the list of *Blocked services*. It it can be found in [dnsfilter/blocked_services.go](https://github.com/AdguardTeam/AdGuardHome/blob/master/internal/dnsfilter/blocked_services.go). +2. Actualize the list of *Blocked services*. It it can be found in [dnsfilter/blocked.go](https://github.com/AdguardTeam/AdGuardHome/blob/master/internal/dnsfilter/blocked.go). 3. Actualize the list of known *trackers*. It it can be found in [client/src/helpers/trackers/adguard.json](https://github.com/AdguardTeam/AdGuardHome/blob/master/client/src/helpers/trackers/adguard.json). 4. Actualize the list of vetted *blocklists*. It it can be found in [client/src/helpers/filters/filters.json](https://github.com/AdguardTeam/AdGuardHome/blob/master/client/src/helpers/filters/filters.json). diff --git a/client/src/components/ui/Icons.js b/client/src/components/ui/Icons.js index ec5bf8a32e76078aa5b971b9b786d312a671d17a..e2186529e6bd6f6552850df2820aa940f64470d2 100644 GIT binary patch delta 21180 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 Ly?!{J?4A7ro~&a* diff --git a/client/src/helpers/constants.js b/client/src/helpers/constants.js index b50ed007..bab8c925 100644 --- a/client/src/helpers/constants.js +++ b/client/src/helpers/constants.js @@ -200,92 +200,144 @@ export const FILTERS_URLS = { export const SERVICES = [ { - id: 'facebook', - name: 'Facebook', - }, - { - id: 'whatsapp', - name: 'WhatsApp', - }, - { - id: 'instagram', - name: 'Instagram', - }, - { - id: 'twitter', - name: 'Twitter', - }, - { - id: 'youtube', - name: 'YouTube', - }, - { - id: 'netflix', - name: 'Netflix', - }, - { - id: 'snapchat', - name: 'Snapchat', - }, - { - id: 'twitch', - name: 'Twitch', - }, - { - id: 'discord', - name: 'Discord', - }, - { - id: 'skype', - name: 'Skype', + id: '9gag', + name: '9Gag', }, { id: 'amazon', name: 'Amazon', }, - { - id: 'ebay', - name: 'eBay', - }, - { - id: 'origin', - name: 'Origin', - }, { id: 'cloudflare', - name: 'Cloudflare', + name: 'CloudFlare', }, { - id: 'steam', - name: 'Steam', + id: 'dailymotion', + name: 'Dailymotion', + }, + { + id: 'discord', + name: 'Discord', + }, + { + id: 'disneyplus', + name: 'Disney+', + }, + { + id: 'ebay', + name: 'EBay', }, { id: 'epic_games', name: 'Epic Games', }, + { + id: 'facebook', + name: 'Facebook', + }, + { + id: 'hulu', + name: 'Hulu', + }, + { + id: 'imgur', + name: 'Imgur', + }, + { + id: 'instagram', + name: 'Instagram', + }, + { + id: 'mail_ru', + name: 'Mail.ru', + }, + { + id: 'netflix', + name: 'Netflix', + }, + { + id: 'ok', + name: 'OK.ru', + }, + { + id: 'origin', + name: 'Origin', + }, + { + id: 'pinterest', + name: 'Pinterest', + }, + { + id: 'qq', + name: 'QQ', + }, { id: 'reddit', name: 'Reddit', }, { - id: 'ok', - name: 'OK', + id: 'skype', + name: 'Skype', }, { - id: 'vk', - name: 'VK', + id: 'snapchat', + name: 'Snapchat', }, { - id: 'mail_ru', - name: 'mail.ru', + id: 'spotify', + name: 'Spotify', + }, + { + id: 'steam', + name: 'Steam', + }, + { + id: 'telegram', + name: 'Telegram', }, { id: 'tiktok', name: 'TikTok', }, { - id: 'qq', - name: 'QQ', + id: 'tinder', + name: 'Tinder', + }, + { + id: 'twitch', + name: 'Twitch', + }, + { + id: 'twitter', + name: 'Twitter', + }, + { + id: 'viber', + name: 'Viber', + }, + { + id: 'vimeo', + name: 'Vimeo', + }, + { + id: 'vk', + name: 'VK.com', + }, + { + id: 'wechat', + name: 'WeChat', + }, + { + id: 'weibo', + name: 'Weibo', + }, + { + id: 'whatsapp', + name: 'WhatsApp', + }, + { + id: 'youtube', + name: 'YouTube', }, ]; diff --git a/internal/dnsfilter/blocked.go b/internal/dnsfilter/blocked.go index 473010c0..0905933b 100644 --- a/internal/dnsfilter/blocked.go +++ b/internal/dnsfilter/blocked.go @@ -161,7 +161,73 @@ var serviceRulesArray = []svc{ "||douyin.com^", "||tiktokv.com^", }}, - {"qq", []string{"||qq.com^", "||qqzaixian.com^"}}, + {"vimeo", []string{ + "||vimeo.com^", + "||vimeocdn.com^", + "*vod-adaptive.akamaized.net^", + }}, + {"pinterest", []string{ + "||pinterest.*^", + "||pinimg.com^", + }}, + {"imgur", []string{ + "||imgur.com^", + }}, + {"dailymotion", []string{ + "||dailymotion.com^", + "||dm-event.net^", + "||dmcdn.net^", + }}, + {"qq", []string{ + // block qq.com and subdomains excluding WeChat domains + "^(?!weixin|wx)([^.]+\\.)?qq\\.com$", + "||qqzaixian.com^", + }}, + {"wechat", []string{ + "||wechat.com^", + "||weixin.qq.com^", + "||wx.qq.com^", + }}, + {"viber", []string{ + "||viber.com^", + }}, + {"weibo", []string{ + "||weibo.com^", + }}, + {"9gag", []string{ + "||9cache.com^", + "||gag.com^", + }}, + {"telegram", []string{ + "||t.me^", + "||telegram.me^", + "||telegram.org^", + }}, + {"disneyplus", []string{ + "||disney-plus.net^", + "||disneyplus.com^", + }}, + {"hulu", []string{ + "||hulu.com^", + }}, + {"spotify", []string{ + "/_spotify-connect._tcp.local/", + "||spotify.com^", + "||scdn.co^", + "||spotify.com.edgesuite.net^", + "||spotify.map.fastly.net^", + "||spotify.map.fastlylb.net^", + "||spotifycdn.net^", + "||audio-ak-spotify-com.akamaized.net^", + "||audio4-ak-spotify-com.akamaized.net^", + "||heads-ak-spotify-com.akamaized.net^", + "||heads4-ak-spotify-com.akamaized.net^", + }}, + {"tinder", []string{ + "||gotinder.com^", + "||tinder.com^", + "||tindersparks.com^", + }}, } // convert array to map diff --git a/internal/dnsfilter/blocked_test.go b/internal/dnsfilter/blocked_test.go new file mode 100644 index 00000000..5227da6b --- /dev/null +++ b/internal/dnsfilter/blocked_test.go @@ -0,0 +1,37 @@ +// +build ignore + +package dnsfilter + +import ( + "fmt" + "sort" + "testing" +) + +// This is a simple tool that takes a list of services and prints them to the output. +// It is supposed to be used to update: +// client/src/helpers/constants.js +// client/src/components/ui/Icons.js +// +// Usage: +// 1. go run ./internal/dnsfilter/blocked_test.go +// 2. Use the output to replace `SERVICES` array in "client/src/helpers/constants.js". +// 3. You'll need to enter services names manually. +// 4. Don't forget to add missing icons to "client/src/components/ui/Icons.js". +// +// TODO(ameshkov): Rework generator: have a JSON file with all the metadata we need +// then use this JSON file to generate JS and Go code +func TestGenServicesArray(t *testing.T) { + services := make([]svc, len(serviceRulesArray)) + copy(services, serviceRulesArray) + + sort.Slice(services, func(i, j int) bool { + return services[i].name < services[j].name + }) + + fmt.Println("export const SERVICES = [") + for _, s := range services { + fmt.Printf(" {\n id: '%s',\n name: '%s',\n },\n", s.name, s.name) + } + fmt.Println("];") +}