[fix] autocompleter.py added
This commit is contained in:
		
							parent
							
								
									41dd4d9ba3
								
							
						
					
					
						commit
						fd730ebcad
					
				
							
								
								
									
										48
									
								
								searx/autocomplete.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								searx/autocomplete.py
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||||
|  |             } | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user