mirror of
https://github.com/searxng/searxng.git
synced 2026-08-05 06:41:28 +00:00
[feat] autocomplete: add kagi autocompleter
This commit is contained in:
@@ -41,6 +41,7 @@
|
|||||||
- ``dbpedia``
|
- ``dbpedia``
|
||||||
- ``duckduckgo``
|
- ``duckduckgo``
|
||||||
- ``google``
|
- ``google``
|
||||||
|
- ``kagi``
|
||||||
- ``mwmbl``
|
- ``mwmbl``
|
||||||
- ``naver``
|
- ``naver``
|
||||||
- ``privacywall``
|
- ``privacywall``
|
||||||
|
|||||||
@@ -157,6 +157,24 @@ def google_complete(query: str, sxng_locale: str) -> list[str]:
|
|||||||
return results
|
return results
|
||||||
|
|
||||||
|
|
||||||
|
def kagi(query: str, sxng_locale: str) -> list[str]:
|
||||||
|
"""Autocomplete from Kagi."""
|
||||||
|
|
||||||
|
args: dict[str, str] = {'q': query}
|
||||||
|
|
||||||
|
if '-' in sxng_locale:
|
||||||
|
args['r'] = sxng_locale.split('-')[1].lower()
|
||||||
|
|
||||||
|
resp = get("https://kagisuggest.com/api/autosuggest?" + urlencode(args))
|
||||||
|
results: list[str] = []
|
||||||
|
|
||||||
|
if resp.ok:
|
||||||
|
data = resp.json()
|
||||||
|
if len(data) > 1:
|
||||||
|
results = data[1]
|
||||||
|
return results
|
||||||
|
|
||||||
|
|
||||||
def mwmbl(query: str, _sxng_locale: str) -> list[str]:
|
def mwmbl(query: str, _sxng_locale: str) -> list[str]:
|
||||||
"""Autocomplete from Mwmbl_."""
|
"""Autocomplete from Mwmbl_."""
|
||||||
|
|
||||||
@@ -380,6 +398,7 @@ backends: dict[str, t.Callable[[str, str], list[str]]] = {
|
|||||||
'dbpedia': dbpedia,
|
'dbpedia': dbpedia,
|
||||||
'duckduckgo': duckduckgo,
|
'duckduckgo': duckduckgo,
|
||||||
'google': google_complete,
|
'google': google_complete,
|
||||||
|
'kagi': kagi,
|
||||||
'mwmbl': mwmbl,
|
'mwmbl': mwmbl,
|
||||||
'naver': naver,
|
'naver': naver,
|
||||||
'privacywall': privacywall,
|
'privacywall': privacywall,
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ search:
|
|||||||
# Filter results. 0: None, 1: Moderate, 2: Strict
|
# Filter results. 0: None, 1: Moderate, 2: Strict
|
||||||
safe_search: 0
|
safe_search: 0
|
||||||
# Existing autocomplete backends: "360search", "baidu", "bing", "brave", "dbpedia", "duckduckgo", "google",
|
# Existing autocomplete backends: "360search", "baidu", "bing", "brave", "dbpedia", "duckduckgo", "google",
|
||||||
# "yandex", "privacywall", "mwmbl", "naver", "seznam", "sogou", "startpage", "swisscows", "quark", "qwant",
|
# "kagi", "yandex", "privacywall", "mwmbl", "naver", "seznam", "sogou", "startpage", "swisscows", "quark",
|
||||||
# "wikipedia" - leave blank to turn it off by default.
|
# "qwant", "wikipedia" - leave blank to turn it off by default.
|
||||||
autocomplete: ""
|
autocomplete: ""
|
||||||
# minimun characters to type before autocompleter starts
|
# minimun characters to type before autocompleter starts
|
||||||
autocomplete_min: 4
|
autocomplete_min: 4
|
||||||
|
|||||||
Reference in New Issue
Block a user