summaryrefslogtreecommitdiff
path: root/searx/autocomplete.py
diff options
context:
space:
mode:
authorAdam Tauber <asciimoo@gmail.com>2014-03-29 16:30:49 +0100
committerAdam Tauber <asciimoo@gmail.com>2014-03-29 16:30:49 +0100
commitfd730ebcad436ded8720d5ee25b575e39eeb05f4 (patch)
treeedf0275cdb0551df4dbe2b2f60585c4fb2665cf3 /searx/autocomplete.py
parent41dd4d9ba3429b387bf32a65ce4b1bfe4f82444c (diff)
downloadsearxng-fd730ebcad436ded8720d5ee25b575e39eeb05f4.tar.gz
searxng-fd730ebcad436ded8720d5ee25b575e39eeb05f4.zip
[fix] autocompleter.py added
Diffstat (limited to 'searx/autocomplete.py')
-rw-r--r--searx/autocomplete.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/searx/autocomplete.py b/searx/autocomplete.py
new file mode 100644
index 000000000..e9cdc8ba9
--- /dev/null
+++ b/searx/autocomplete.py
@@ -0,0 +1,48 @@
+from lxml import etree
+from requests import get
+from json import loads
+
+
+def dbpedia(query):
+ # dbpedia autocompleter
+ autocomplete_url = 'http://lookup.dbpedia.org/api/search.asmx/KeywordSearch?QueryString={q}' # noqa
+
+ response = get(autocomplete_url.format(q=query))
+
+ results = []
+
+ if response.ok:
+ dom = etree.fromstring(response.content)
+ results = dom.xpath('//a:Result/a:Label//text()',
+ namespaces={'a': 'http://lookup.dbpedia.org/'})
+
+ return results
+
+
+def google(query):
+ # google autocompleter
+ autocomplete_url = 'http://suggestqueries.google.com/complete/search?client=toolbar&q={q}' # noqa
+
+ response = get(autocomplete_url.format(q=query))
+
+ results = []
+
+ if response.ok:
+ dom = etree.fromstring(response.content)
+ results = dom.xpath('//suggestion/@data')
+
+ return results
+
+
+def wikipedia(query):
+ # wikipedia autocompleter
+ url = 'https://en.wikipedia.org/w/api.php?action=opensearch&search={q}&limit=10&namespace=0&format=json' # noqa
+
+ resp = loads(get(url.format(q=query)).text)
+ return resp[1]
+
+
+backends = {'dbpedia': dbpedia,
+ 'google': google,
+ 'wikipedia': wikipedia
+ }