@@ -626,20 +626,34 @@ def index():
626626 mimetype='application/json')
627627 elif output_format == 'csv':
628628 csv = UnicodeWriter(StringIO())
629− keys = ('title', 'url', 'content', 'host', 'engine', 'score')
629+ keys = ('title', 'url', 'content', 'host', 'engine', 'score', 'type')
630630 csv.writerow(keys)
631631 for row in results:
632632 row['host'] = row['parsed_url'].netloc
633+ row['type'] = 'result'
634+ csv.writerow([row.get(key, '') for key in keys])
635+ for a in result_container.answers:
636+ row = {'title': a, 'type': 'answer'}
637+ csv.writerow([row.get(key, '') for key in keys])
638+ for a in result_container.suggestions:
639+ row = {'title': a, 'type': 'suggestion'}
640+ csv.writerow([row.get(key, '') for key in keys])
641+ for a in result_container.corrections:
642+ row = {'title': a, 'type': 'correction'}
633643 csv.writerow([row.get(key, '') for key in keys])
634644 csv.stream.seek(0)
635645 response = Response(csv.stream.read(), mimetype='application/csv')
636− cont_disp = 'attachment;Filename=searx_-_{0}.csv'.format(search_query.query)
646+ cont_disp = 'attachment;Filename=searx_-_{0}.csv'.format(search_query.query.decode('utf-8'))
637647 response.headers.add('Content-Disposition', cont_disp)
638648 return response
639649 elif output_format == 'rss':
650+ print(results)
640651 response_rss = render(
641652 'opensearch_response_rss.xml',
642653 results=results,
654+ answers=result_container.answers,
655+ corrections=result_container.corrections,
656+ suggestions=result_container.suggestions,
643657 q=request.form['q'],
644658 number_of_results=number_of_results,
645659 base_url=get_base_url(),