diff options
| author | Adam Tauber <asciimoo@gmail.com> | 2014-01-04 14:55:22 -0800 |
|---|---|---|
| committer | Adam Tauber <asciimoo@gmail.com> | 2014-01-04 14:55:22 -0800 |
| commit | 27cae541972cabd460142aa3d009ea00c37c29d5 (patch) | |
| tree | 794d0928f966f9d90603cf4a4354119870329c6d /searx/engines/yacy.py | |
| parent | 42c85a094acb77b65a10cda0c6673293aad72ba4 (diff) | |
| parent | efb6eca39e9dd851645f76bd72ac076f61a11c09 (diff) | |
Merge pull request #13 from pw3t/master
Filecrop & Yacy engine
Diffstat (limited to 'searx/engines/yacy.py')
| -rw-r--r-- | searx/engines/yacy.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/searx/engines/yacy.py b/searx/engines/yacy.py new file mode 100644 index 000000000..e24edde56 --- /dev/null +++ b/searx/engines/yacy.py @@ -0,0 +1,38 @@ +from json import loads +from urllib import urlencode, quote + +url = 'http://localhost:8090' +search_url = '/yacysearch.json?{query}&maximumRecords=10' + +def request(query, params): + params['url'] = url + search_url.format(query=urlencode({'query':query})) + return params + +def response(resp): + raw_search_results = loads(resp.text) + + if not len(raw_search_results): + return [] + + search_results = raw_search_results.get('channels', {})[0].get('items', []) + + results = [] + + for result in search_results: + tmp_result = {} + tmp_result['title'] = result['title'] + tmp_result['url'] = result['link'] + tmp_result['content'] = '' + + if len(result['description']): + tmp_result['content'] += result['description'] +"<br/>" + + if len(result['pubDate']): + tmp_result['content'] += result['pubDate'] + "<br/>" + + if result['size'] != '-1': + tmp_result['content'] += result['sizename'] + + results.append(tmp_result) + + return results |