logo

searx

Unnamed repository; edit this file 'description' to name the repository.
commit: fd730ebcad436ded8720d5ee25b575e39eeb05f4
parent: 41dd4d9ba3429b387bf32a65ce4b1bfe4f82444c
Author: Adam Tauber <asciimoo@gmail.com>
Date:   Sat, 29 Mar 2014 16:30:49 +0100

[fix] autocompleter.py added

Diffstat:

searx/autocomplete.py | 48++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+), 0 deletions(-)

diff --git a/searx/autocomplete.py 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 + }