mirror of https://github.com/searxng/searxng.git
Merge branch 'master' of https://github.com/asciimoo/searx into filtron
This commit is contained in:
commit
26b85659c0
|
@ -25,5 +25,29 @@
|
||||||
{% if r.pubdate %}<pubDate>{{ r.pubdate }}</pubDate>{% endif %}
|
{% if r.pubdate %}<pubDate>{{ r.pubdate }}</pubDate>{% endif %}
|
||||||
</item>
|
</item>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% if answers %}
|
||||||
|
{% for a in answers %}
|
||||||
|
<item>
|
||||||
|
<title>{{ a }}</title>
|
||||||
|
<type>answer</type>
|
||||||
|
</item>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if corrections %}
|
||||||
|
{% for a in corrections %}
|
||||||
|
<item>
|
||||||
|
<title>{{ a }}</title>
|
||||||
|
<type>correction</type>
|
||||||
|
</item>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if suggestions %}
|
||||||
|
{% for a in suggestions %}
|
||||||
|
<item>
|
||||||
|
<title>{{ a }}</title>
|
||||||
|
<type>suggestion</type>
|
||||||
|
</item>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
</channel>
|
</channel>
|
||||||
</rss>
|
</rss>
|
||||||
|
|
|
@ -626,20 +626,34 @@ def index():
|
||||||
mimetype='application/json')
|
mimetype='application/json')
|
||||||
elif output_format == 'csv':
|
elif output_format == 'csv':
|
||||||
csv = UnicodeWriter(StringIO())
|
csv = UnicodeWriter(StringIO())
|
||||||
keys = ('title', 'url', 'content', 'host', 'engine', 'score')
|
keys = ('title', 'url', 'content', 'host', 'engine', 'score', 'type')
|
||||||
csv.writerow(keys)
|
csv.writerow(keys)
|
||||||
for row in results:
|
for row in results:
|
||||||
row['host'] = row['parsed_url'].netloc
|
row['host'] = row['parsed_url'].netloc
|
||||||
|
row['type'] = 'result'
|
||||||
|
csv.writerow([row.get(key, '') for key in keys])
|
||||||
|
for a in result_container.answers:
|
||||||
|
row = {'title': a, 'type': 'answer'}
|
||||||
|
csv.writerow([row.get(key, '') for key in keys])
|
||||||
|
for a in result_container.suggestions:
|
||||||
|
row = {'title': a, 'type': 'suggestion'}
|
||||||
|
csv.writerow([row.get(key, '') for key in keys])
|
||||||
|
for a in result_container.corrections:
|
||||||
|
row = {'title': a, 'type': 'correction'}
|
||||||
csv.writerow([row.get(key, '') for key in keys])
|
csv.writerow([row.get(key, '') for key in keys])
|
||||||
csv.stream.seek(0)
|
csv.stream.seek(0)
|
||||||
response = Response(csv.stream.read(), mimetype='application/csv')
|
response = Response(csv.stream.read(), mimetype='application/csv')
|
||||||
cont_disp = 'attachment;Filename=searx_-_{0}.csv'.format(search_query.query)
|
cont_disp = 'attachment;Filename=searx_-_{0}.csv'.format(search_query.query.decode('utf-8'))
|
||||||
response.headers.add('Content-Disposition', cont_disp)
|
response.headers.add('Content-Disposition', cont_disp)
|
||||||
return response
|
return response
|
||||||
elif output_format == 'rss':
|
elif output_format == 'rss':
|
||||||
|
print(results)
|
||||||
response_rss = render(
|
response_rss = render(
|
||||||
'opensearch_response_rss.xml',
|
'opensearch_response_rss.xml',
|
||||||
results=results,
|
results=results,
|
||||||
|
answers=result_container.answers,
|
||||||
|
corrections=result_container.corrections,
|
||||||
|
suggestions=result_container.suggestions,
|
||||||
q=request.form['q'],
|
q=request.form['q'],
|
||||||
number_of_results=number_of_results,
|
number_of_results=number_of_results,
|
||||||
base_url=get_base_url(),
|
base_url=get_base_url(),
|
||||||
|
|
|
@ -99,9 +99,9 @@ class ViewsTestCase(SearxTestCase):
|
||||||
result = self.app.post('/', data={'q': 'test', 'format': 'csv'})
|
result = self.app.post('/', data={'q': 'test', 'format': 'csv'})
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
b'title,url,content,host,engine,score\r\n'
|
b'title,url,content,host,engine,score,type\r\n'
|
||||||
b'First Test,http://first.test.xyz,first test content,first.test.xyz,startpage,\r\n' # noqa
|
b'First Test,http://first.test.xyz,first test content,first.test.xyz,startpage,,result\r\n' # noqa
|
||||||
b'Second Test,http://second.test.xyz,second test content,second.test.xyz,youtube,\r\n', # noqa
|
b'Second Test,http://second.test.xyz,second test content,second.test.xyz,youtube,,result\r\n', # noqa
|
||||||
result.data
|
result.data
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue