on master help sign in
[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'.

commit321ddc91bca5e2267e2fb0ab7233cc403f5a456f authorAllen <64094914+allendema@users.noreply.github.com> dateSat 15 Jan 2022, 19:08 (5 years ago) parent82ac634
1 file changed+18−1
searx/autocomplete.py+18−1
searx/autocomplete.py+18−1
@@ -35,6 +35,22 @@ def get(*args, **kwargs):
3535 return http_get(*args, **kwargs)
3636
3737
38+def brave(query, lang):
39+ # brave search autocompleter
40+ url = 'https://search.brave.com/api/suggest?{query}'
41+
42+ resp = get(url.format(query=urlencode({'q': query})))
43+
44+ results = []
45+
46+ if resp.ok:
47+ data = loads(resp.text)
48+ for suggestion in data[1]:
49+ results.append(suggestion)
50+
51+ return results
52+
53+
3854def dbpedia(query, lang):
3955 # dbpedia autocompleter, no HTTPS
4056 autocomplete_url = 'https://lookup.dbpedia.org/api/search.asmx/KeywordSearch?'
@@ -120,7 +136,8 @@ def wikipedia(query, lang):
120136 return []
121137
122138
123−backends = {'dbpedia': dbpedia,
139+backends = {'brave': brave,
140+ 'dbpedia': dbpedia,
124141 'duckduckgo': duckduckgo,
125142 'google': google,
126143 'startpage': startpage,