[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'.

Cherry-pick: 71786bf9cb
This commit is contained in:
Allen 2022-01-02 23:05:49 +01:00 committed by Markus Heiser
parent f3d4b25e73
commit b8c98c4c0d

View File

@ -36,6 +36,20 @@ def get(*args, **kwargs):
return http_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 item in data[1]:
results.append(item)
return results
def dbpedia(query, lang): def dbpedia(query, lang):
# dbpedia autocompleter, no HTTPS # dbpedia autocompleter, no HTTPS
autocomplete_url = 'https://lookup.dbpedia.org/api/search.asmx/KeywordSearch?' autocomplete_url = 'https://lookup.dbpedia.org/api/search.asmx/KeywordSearch?'
@ -128,6 +142,7 @@ backends = {
'swisscows': swisscows, 'swisscows': swisscows,
'qwant': qwant, 'qwant': qwant,
'wikipedia': wikipedia, 'wikipedia': wikipedia,
'brave': brave,
} }