From 321ddc91bca5e2267e2fb0ab7233cc403f5a456f Mon Sep 17 00:00:00 2001 From: Allen <64094914+allendema@users.noreply.github.com> Date: Sat, 15 Jan 2022 19:08:53 +0100 Subject: [PATCH] [enh] Add autocompleter from Brave (#3109) * [enh] Add autocompleter from Brave Raw response example: https://search.brave.com/api/suggest?q=how%20to:%20with%20j Headers are needed in order to get a 200 response, thus Searx user-agent is used. Other URL param could be '&rich=false' or '&rich=true'. --- searx/autocomplete.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/searx/autocomplete.py b/searx/autocomplete.py index cf2deb62..bed77758 100644 --- a/searx/autocomplete.py +++ b/searx/autocomplete.py @@ -35,6 +35,22 @@ def get(*args, **kwargs): return http_get(*args, **kwargs) +def brave(query, lang): + # brave search autocompleter + url = 'https://search.brave.com/api/suggest?{query}' + + resp = get(url.format(query=urlencode({'q': query}))) + + results = [] + + if resp.ok: + data = loads(resp.text) + for suggestion in data[1]: + results.append(suggestion) + + return results + + def dbpedia(query, lang): # dbpedia autocompleter, no HTTPS autocomplete_url = 'https://lookup.dbpedia.org/api/search.asmx/KeywordSearch?' @@ -120,7 +136,8 @@ def wikipedia(query, lang): return [] -backends = {'dbpedia': dbpedia, +backends = {'brave': brave, + 'dbpedia': dbpedia, 'duckduckgo': duckduckgo, 'google': google, 'startpage': startpage,