[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