From 08885d0614f0b131a03f65af8bb4a601651dbacf Mon Sep 17 00:00:00 2001 From: Zhijie He Date: Sun, 30 Mar 2025 23:13:40 +0800 Subject: [PATCH] [feat] add Quark autocomplete support Co-authored-by: Bnyro --- docs/admin/settings/settings_search.rst | 1 + searx/autocomplete.py | 15 +++++++++++++++ searx/settings.yml | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/docs/admin/settings/settings_search.rst b/docs/admin/settings/settings_search.rst index 76441dd0b..775c35509 100644 --- a/docs/admin/settings/settings_search.rst +++ b/docs/admin/settings/settings_search.rst @@ -41,6 +41,7 @@ - ``duckduckgo`` - ``google`` - ``mwmbl`` + - ``quark`` - ``qwant`` - ``seznam`` - ``sogou`` diff --git a/searx/autocomplete.py b/searx/autocomplete.py index 8a4f0a66a..ebe6972e3 100644 --- a/searx/autocomplete.py +++ b/searx/autocomplete.py @@ -164,6 +164,20 @@ def qihu360search(query, _lang): return results +def quark(query, _lang): + # Quark search autocompleter + url = f"https://sugs.m.sm.cn/web?{urlencode({'q': query})}" + response = get(url) + + results = [] + + if response.ok: + data = response.json() + for item in data.get('r', []): + results.append(item['w']) + return results + + def seznam(query, _lang): # seznam search autocompleter url = 'https://suggest.seznam.cz/fulltext/cs?{query}' @@ -286,6 +300,7 @@ backends = { 'duckduckgo': duckduckgo, 'google': google_complete, 'mwmbl': mwmbl, + 'quark': quark, 'qwant': qwant, 'seznam': seznam, 'sogou': sogou, diff --git a/searx/settings.yml b/searx/settings.yml index 96a0c07cb..d09904dcf 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -34,7 +34,7 @@ search: # Filter results. 0: None, 1: Moderate, 2: Strict safe_search: 0 # Existing autocomplete backends: "360search", "baidu", "brave", "dbpedia", "duckduckgo", "google", "yandex", - # "mwmbl", "seznam", "sogou", "stract", "swisscows", "qwant", "wikipedia" - + # "mwmbl", "seznam", "sogou", "stract", "swisscows", "quark", "qwant", "wikipedia" - # leave blank to turn it off by default. autocomplete: "" # minimun characters to type before autocompleter starts