@@ -18,7 +18,8 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
1818'''
1919
2020from searx import settings
21−from flask import Flask, request, render_template, url_for, Response, make_response, redirect
21+from flask import Flask, request, render_template
22+from flask import url_for, Response, make_response, redirect
2223from searx.engines import search, categories, engines, get_engines_stats
2324import json
2425import cStringIO
@@ -70,7 +71,8 @@ def get_base_url():
7071def render(template_name, **kwargs):
7172 global categories
7273 kwargs['categories'] = ['general']
73− kwargs['categories'].extend(x for x in sorted(categories.keys()) if x != 'general')
74+ kwargs['categories'].extend(x for x in
75+ sorted(categories.keys()) if x != 'general')
7476 if not 'selected_categories' in kwargs:
7577 kwargs['selected_categories'] = []
7678 cookie_categories = request.cookies.get('categories', '').split(',')
@@ -114,7 +116,8 @@ def index():
114116 continue
115117 selected_categories.append(category)
116118 if not len(selected_categories):
117− cookie_categories = request.cookies.get('categories', '').split(',')
119+ cookie_categories = request.cookies.get('categories', '')
120+ cookie_categories = cookie_categories.split(',')
118121 for ccateg in cookie_categories:
119122 if ccateg in categories:
120123 selected_categories.append(ccateg)
@@ -122,7 +125,9 @@ def index():
122125 selected_categories = ['general']
123126
124127 for categ in selected_categories:
125− selected_engines.extend({'category': categ, 'name': x.name} for x in categories[categ])
128+ selected_engines.extend({'category': categ,
129+ 'name': x.name}
130+ for x in categories[categ])
126131
127132 results, suggestions = search(query, request, selected_engines)
128133
@@ -137,7 +142,8 @@ def index():
137142 result['content'] = html_to_text(result['content']).strip()
138143 result['title'] = html_to_text(result['title']).strip()
139144 if len(result['url']) > 74:
140− result['pretty_url'] = result['url'][:35] + '[..]' + result['url'][-35:]
145+ url_parts = result['url'][:35], result['url'][-35:]
146+ result['pretty_url'] = '{0}[...]{1}'.format(*url_parts)
141147 else:
142148 result['pretty_url'] = result['url']
143149
@@ -146,7 +152,8 @@ def index():
146152 result['favicon'] = engine
147153
148154 if request_data.get('format') == 'json':
149− return Response(json.dumps({'query': query, 'results': results}), mimetype='application/json')
155+ return Response(json.dumps({'query': query, 'results': results}),
156+ mimetype='application/json')
150157 elif request_data.get('format') == 'csv':
151158 csv = UnicodeWriter(cStringIO.StringIO())
152159 keys = ('title', 'url', 'content', 'host', 'engine', 'score')
@@ -157,7 +164,8 @@ def index():
157164 csv.writerow([row.get(key, '') for key in keys])
158165 csv.stream.seek(0)
159166 response = Response(csv.stream.read(), mimetype='application/csv')
160− response.headers.add('Content-Disposition', 'attachment;Filename=searx_-_{0}.csv'.format('_'.join(query.split())))
167+ content_disp = 'attachment;Filename=searx_-_{0}.csv'.format(query)
168+ response.headers.add('Content-Disposition', content_disp)
161169 return response
162170 elif request_data.get('format') == 'rss':
163171 response_rss = render(
@@ -240,15 +248,16 @@ def opensearch():
240248 base_url = get_base_url()
241249 ret = opensearch_xml.format(method=method, host=base_url)
242250 resp = Response(response=ret,
243− status=200,
244− mimetype="application/xml")
251+ status=200,
252+ mimetype="application/xml")
245253 return resp
246254
247255
248256@app.route('/favicon.ico')
249257def favicon():
250258 return send_from_directory(os.path.join(app.root_path, 'static/img'),
251− 'favicon.png', mimetype='image/vnd.microsoft.icon')
259+ 'favicon.png',
260+ mimetype='image/vnd.microsoft.icon')
252261
253262
254263def run():