diff --git a/CHANGELOG.md b/CHANGELOG.md index ebbcbdeb6ac..b62a13d3754 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,12 +27,17 @@ See also the [v0.107.53 GitHub milestone][ms-v0.107.53]. NOTE: Add new changes BELOW THIS COMMENT. --> +### Added + +- Ecosia search engine is now supported in safe search ([#5009]). + ### Fixed - Update Google safe search domains list ([#7155]). - Enforce Bing safe search from Edge sidebar ([#7154]). - Text overflow on the query log page ([#7119]). +[#5009]: https://github.com/AdguardTeam/AdGuardHome/issues/5009 [#7119]: https://github.com/AdguardTeam/AdGuardHome/issues/7119 [#7154]: https://github.com/AdguardTeam/AdGuardHome/pull/7154 [#7155]: https://github.com/AdguardTeam/AdGuardHome/pull/7155 diff --git a/client/src/__locales/en.json b/client/src/__locales/en.json index 00c94a58733..c7428cdcdfb 100644 --- a/client/src/__locales/en.json +++ b/client/src/__locales/en.json @@ -154,7 +154,7 @@ "use_adguard_parental": "Use AdGuard parental control web service", "use_adguard_parental_hint": "AdGuard Home will check if domain contains adult materials. It uses the same privacy-friendly API as the browsing security web service.", "enforce_safe_search": "Use Safe Search", - "enforce_save_search_hint": "AdGuard Home will enforce safe search in the following search engines: Google, YouTube, Bing, DuckDuckGo, Yandex, Pixabay.", + "enforce_save_search_hint": "AdGuard Home will enforce safe search in the following search engines: Google, YouTube, Bing, DuckDuckGo, Ecosia, Yandex, Pixabay.", "no_servers_specified": "No servers specified", "general_settings": "General settings", "dns_settings": "DNS settings", diff --git a/internal/filtering/safesearch.go b/internal/filtering/safesearch.go index 39c05140ae6..50bba61d05a 100644 --- a/internal/filtering/safesearch.go +++ b/internal/filtering/safesearch.go @@ -22,6 +22,7 @@ type SafeSearchConfig struct { Bing bool `yaml:"bing" json:"bing"` DuckDuckGo bool `yaml:"duckduckgo" json:"duckduckgo"` + Ecosia bool `yaml:"ecosia" json:"ecosia"` Google bool `yaml:"google" json:"google"` Pixabay bool `yaml:"pixabay" json:"pixabay"` Yandex bool `yaml:"yandex" json:"yandex"` diff --git a/internal/filtering/safesearch/rules.go b/internal/filtering/safesearch/rules.go index 75e512e8be7..8a784ceb93b 100644 --- a/internal/filtering/safesearch/rules.go +++ b/internal/filtering/safesearch/rules.go @@ -14,6 +14,9 @@ var pixabay string //go:embed rules/duckduckgo.txt var duckduckgo string +//go:embed rules/ecosia.txt +var ecosia string + //go:embed rules/yandex.txt var yandex string @@ -27,6 +30,7 @@ var youtube string var safeSearchRules = map[Service]string{ Bing: bing, DuckDuckGo: duckduckgo, + Ecosia: ecosia, Google: google, Pixabay: pixabay, Yandex: yandex, diff --git a/internal/filtering/safesearch/rules/ecosia.txt b/internal/filtering/safesearch/rules/ecosia.txt new file mode 100644 index 00000000000..d75b34d34f5 --- /dev/null +++ b/internal/filtering/safesearch/rules/ecosia.txt @@ -0,0 +1 @@ +|www.ecosia.org^$dnsrewrite=NOERROR;CNAME;strict-safe-search.ecosia.org diff --git a/internal/filtering/safesearch/safesearch.go b/internal/filtering/safesearch/safesearch.go index 7ea1e3ad453..9417102fbe6 100644 --- a/internal/filtering/safesearch/safesearch.go +++ b/internal/filtering/safesearch/safesearch.go @@ -28,6 +28,7 @@ type Service string const ( Bing Service = "bing" DuckDuckGo Service = "duckduckgo" + Ecosia Service = "ecosia" Google Service = "google" Pixabay Service = "pixabay" Yandex Service = "yandex" @@ -41,6 +42,8 @@ func isServiceProtected(s filtering.SafeSearchConfig, service Service) (ok bool) return s.Bing case DuckDuckGo: return s.DuckDuckGo + case Ecosia: + return s.Ecosia case Google: return s.Google case Pixabay: diff --git a/internal/filtering/safesearch/safesearch_internal_test.go b/internal/filtering/safesearch/safesearch_internal_test.go index c6790dc3e4f..24282b75c7c 100644 --- a/internal/filtering/safesearch/safesearch_internal_test.go +++ b/internal/filtering/safesearch/safesearch_internal_test.go @@ -25,6 +25,7 @@ var defaultSafeSearchConf = filtering.SafeSearchConfig{ Enabled: true, Bing: true, DuckDuckGo: true, + Ecosia: true, Google: true, Pixabay: true, Yandex: true, diff --git a/internal/filtering/safesearch/safesearch_test.go b/internal/filtering/safesearch/safesearch_test.go index 9526c7912aa..bcd3534d1c4 100644 --- a/internal/filtering/safesearch/safesearch_test.go +++ b/internal/filtering/safesearch/safesearch_test.go @@ -34,6 +34,7 @@ var testConf = filtering.SafeSearchConfig{ Bing: true, DuckDuckGo: true, + Ecosia: true, Google: true, Pixabay: true, Yandex: true, diff --git a/internal/home/clientshttp.go b/internal/home/clientshttp.go index a8b318353fb..aae8c34add6 100644 --- a/internal/home/clientshttp.go +++ b/internal/home/clientshttp.go @@ -248,6 +248,7 @@ func copySafeSearch( if conf.Enabled { conf.Bing = true conf.DuckDuckGo = true + conf.Ecosia = true conf.Google = true conf.Pixabay = true conf.Yandex = true diff --git a/internal/home/config.go b/internal/home/config.go index 2c15740c1d9..b8d69daec6f 100644 --- a/internal/home/config.go +++ b/internal/home/config.go @@ -423,6 +423,7 @@ var config = &configuration{ Enabled: false, Bing: true, DuckDuckGo: true, + Ecosia: true, Google: true, Pixabay: true, Yandex: true, diff --git a/openapi/CHANGELOG.md b/openapi/CHANGELOG.md index de87f6fae96..e9894c37ba1 100644 --- a/openapi/CHANGELOG.md +++ b/openapi/CHANGELOG.md @@ -4,6 +4,14 @@ ## v0.108.0: API changes +## v0.107.55: API changes + +### The new field `"ecosia"` in `SafeSearchConfig` + +* The new field `"ecosia"` in `PUT /control/safesearch/settings` and + `GET /control/safesearch/status` is true if safe search is enforced for Ecosia + search engine. + ## v0.107.44: API changes ### The field `"upstream_mode"` in `DNSConfig` diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 300311c16a1..32c691d1157 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -2578,6 +2578,8 @@ 'type': 'boolean' 'duckduckgo': 'type': 'boolean' + 'ecosia': + 'type': 'boolean' 'google': 'type': 'boolean' 'pixabay':