on master help sign in
Merge pull request #536 from kvch/general-minor-refactors
11c2262Adam Tauber
searx/languages.py+2−2
@@ -20,10 +20,10 @@ language_codes = (
20 ("ar_XA", "Arabic", "Arabia"),
20 ("ar_XA", "Arabic", "Arabia"),
21 ("bg_BG", "Bulgarian", "Bulgaria"),
21 ("bg_BG", "Bulgarian", "Bulgaria"),
22 ("cs_CZ", "Czech", "Czech Republic"),
22 ("cs_CZ", "Czech", "Czech Republic"),
23− ("de_DE", "German", "Germany"),
24 ("da_DK", "Danish", "Denmark"),
23 ("da_DK", "Danish", "Denmark"),
25 ("de_AT", "German", "Austria"),
24 ("de_AT", "German", "Austria"),
26 ("de_CH", "German", "Switzerland"),
25 ("de_CH", "German", "Switzerland"),
26+ ("de_DE", "German", "Germany"),
27 ("el_GR", "Greek", "Greece"),
27 ("el_GR", "Greek", "Greece"),
28 ("en_AU", "English", "Australia"),
28 ("en_AU", "English", "Australia"),
29 ("en_CA", "English", "Canada"),
29 ("en_CA", "English", "Canada"),
@@ -58,10 +58,10 @@ language_codes = (
58 ("ko_KR", "Korean", "Korea"),
58 ("ko_KR", "Korean", "Korea"),
59 ("lt_LT", "Lithuanian", "Lithuania"),
59 ("lt_LT", "Lithuanian", "Lithuania"),
60 ("lv_LV", "Latvian", "Latvia"),
60 ("lv_LV", "Latvian", "Latvia"),
61− ("oc_OC", "Occitan", "Occitan"),
62 ("nb_NO", "Norwegian", "Norway"),
61 ("nb_NO", "Norwegian", "Norway"),
63 ("nl_BE", "Dutch", "Belgium"),
62 ("nl_BE", "Dutch", "Belgium"),
64 ("nl_NL", "Dutch", "Netherlands"),
63 ("nl_NL", "Dutch", "Netherlands"),
64+ ("oc_OC", "Occitan", "Occitan"),
65 ("pl_PL", "Polish", "Poland"),
65 ("pl_PL", "Polish", "Poland"),
66 ("pt_BR", "Portuguese", "Brazil"),
66 ("pt_BR", "Portuguese", "Brazil"),
67 ("pt_PT", "Portuguese", "Portugal"),
67 ("pt_PT", "Portuguese", "Portugal"),
searx/query.py+5−5
@@ -28,12 +28,12 @@ import re
28class Query(object):
28class Query(object):
29 """parse query"""
29 """parse query"""
30
30
31− def __init__(self, query, blocked_engines):
31+ def __init__(self, query, disabled_engines):
32 self.query = query
32 self.query = query
33− self.blocked_engines = []
33+ self.disabled_engines = []
34
34
35− if blocked_engines:
35+ if disabled_engines:
36− self.blocked_engines = blocked_engines
36+ self.disabled_engines = disabled_engines
37
37
38 self.query_parts = []
38 self.query_parts = []
39 self.engines = []
39 self.engines = []
@@ -107,7 +107,7 @@ class Query(object):
107 self.engines.extend({'category': prefix,
107 self.engines.extend({'category': prefix,
108 'name': engine.name}
108 'name': engine.name}
109 for engine in categories[prefix]
109 for engine in categories[prefix]
110− if (engine.name, prefix) not in self.blocked_engines)
110+ if (engine.name, prefix) not in self.disabled_engines)
111
111
112 if query_part[0] == '!':
112 if query_part[0] == '!':
113 self.specific = True
113 self.specific = True
searx/search.py+4−5
@@ -140,7 +140,7 @@ class Search(object):
140 self.lang = 'all'
140 self.lang = 'all'
141
141
142 # set blocked engines
142 # set blocked engines
143− self.blocked_engines = request.preferences.engines.get_disabled()
143+ self.disabled_engines = request.preferences.engines.get_disabled()
144
144
145 self.result_container = ResultContainer()
145 self.result_container = ResultContainer()
146 self.request_data = {}
146 self.request_data = {}
@@ -167,7 +167,7 @@ class Search(object):
167
167
168 # parse query, if tags are set, which change
168 # parse query, if tags are set, which change
169 # the serch engine or search-language
169 # the serch engine or search-language
170− query_obj = Query(self.request_data['q'], self.blocked_engines)
170+ query_obj = Query(self.request_data['q'], self.disabled_engines)
171 query_obj.parse_query()
171 query_obj.parse_query()
172
172
173 # set query
173 # set query
@@ -227,8 +227,7 @@ class Search(object):
227 # using user-defined default-configuration which
227 # using user-defined default-configuration which
228 # (is stored in cookie)
228 # (is stored in cookie)
229 if not self.categories:
229 if not self.categories:
230− cookie_categories = request.cookies.get('categories', '')
230+ cookie_categories = request.preferences.get_value('categories')
231− cookie_categories = cookie_categories.split(',')
232 for ccateg in cookie_categories:
231 for ccateg in cookie_categories:
233 if ccateg in categories:
232 if ccateg in categories:
234 self.categories.append(ccateg)
233 self.categories.append(ccateg)
@@ -244,7 +243,7 @@ class Search(object):
244 self.engines.extend({'category': categ,
243 self.engines.extend({'category': categ,
245 'name': engine.name}
244 'name': engine.name}
246 for engine in categories[categ]
245 for engine in categories[categ]
247− if (engine.name, categ) not in self.blocked_engines)
246+ if (engine.name, categ) not in self.disabled_engines)
248
247
249 # remove suspended engines
248 # remove suspended engines
250 self.engines = [e for e in self.engines
249 self.engines = [e for e in self.engines
searx/templates/courgette/preferences.html+1−1
@@ -109,7 +109,7 @@
109 <td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})&lrm;</td>
109 <td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})&lrm;</td>
110 <td>{{ _(categ) }}</td>
110 <td>{{ _(categ) }}</td>
111 <td class="engine_checkbox">
111 <td class="engine_checkbox">
112− <input type="checkbox" id="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}" name="engine_{{ search_engine.name }}__{{ categ }}"{% if (search_engine.name, categ) in blocked_engines %} checked="checked"{% endif %} />
112+ <input type="checkbox" id="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}" name="engine_{{ search_engine.name }}__{{ categ }}"{% if (search_engine.name, categ) in disabled_engines %} checked="checked"{% endif %} />
113 <label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label>
113 <label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label>
114 <label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label>
114 <label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label>
115 </td>
115 </td>
searx/templates/default/preferences.html+1−1
@@ -97,7 +97,7 @@
97 <td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})&lrm;</td>
97 <td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})&lrm;</td>
98 <td>{{ _(categ) }}</td>
98 <td>{{ _(categ) }}</td>
99 <td class="engine_checkbox">
99 <td class="engine_checkbox">
100− <input type="checkbox" id="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}" name="engine_{{ search_engine.name }}__{{ categ }}"{% if (search_engine.name, categ) in blocked_engines %} checked="checked"{% endif %} />
100+ <input type="checkbox" id="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}" name="engine_{{ search_engine.name }}__{{ categ }}"{% if (search_engine.name, categ) in disabled_engines %} checked="checked"{% endif %} />
101 <label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label>
101 <label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label>
102 <label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label>
102 <label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label>
103 </td>
103 </td>
searx/templates/oscar/preferences.html+2−2
@@ -157,7 +157,7 @@
157 {% if not search_engine.private %}
157 {% if not search_engine.private %}
158 <tr>
158 <tr>
159 {% if not rtl %}
159 {% if not rtl %}
160− <td>{{ checkbox_toggle('engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_'), (search_engine.name, categ) in blocked_engines) }}</td>
160+ <td>{{ checkbox_toggle('engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_'), (search_engine.name, categ) in disabled_engines) }}</td>
161 <th>{{ search_engine.name }}</th>
161 <th>{{ search_engine.name }}</th>
162 <td>{{ shortcuts[search_engine.name] }}</td>
162 <td>{{ shortcuts[search_engine.name] }}</td>
163 <td><input type="checkbox" {{ "checked" if search_engine.safesearch==True else ""}} readonly="readonly" disabled="disabled"></td>
163 <td><input type="checkbox" {{ "checked" if search_engine.safesearch==True else ""}} readonly="readonly" disabled="disabled"></td>
@@ -169,7 +169,7 @@
169 <td><input type="checkbox" {{ "checked" if search_engine.safesearch==True else ""}} readonly="readonly" disabled="disabled"></td>
169 <td><input type="checkbox" {{ "checked" if search_engine.safesearch==True else ""}} readonly="readonly" disabled="disabled"></td>
170 <td>{{ shortcuts[search_engine.name] }}</td>
170 <td>{{ shortcuts[search_engine.name] }}</td>
171 <th>{{ search_engine.name }}</th>
171 <th>{{ search_engine.name }}</th>
172− <td>{{ checkbox_toggle('engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_'), (search_engine.name, categ) in blocked_engines) }}</td>
172+ <td>{{ checkbox_toggle('engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_'), (search_engine.name, categ) in disabled_engines) }}</td>
173 {% endif %}
173 {% endif %}
174 </tr>
174 </tr>
175 {% endif %}
175 {% endif %}
searx/templates/pix-art/preferences.html+1−1
@@ -60,7 +60,7 @@
60 <tr>
60 <tr>
61 <td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})&lrm;</td>
61 <td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})&lrm;</td>
62 <td class="engine_checkbox">
62 <td class="engine_checkbox">
63− <input type="checkbox" id="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}" name="engine_{{ search_engine.name }}__{{ categ }}"{% if (search_engine.name, categ) in blocked_engines %} checked="checked"{% endif %} />
63+ <input type="checkbox" id="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}" name="engine_{{ search_engine.name }}__{{ categ }}"{% if (search_engine.name, categ) in disabled_engines %} checked="checked"{% endif %} />
64 <label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label>
64 <label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label>
65 <label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label>
65 <label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label>
66 </td>
66 </td>
searx/webapp.py+17−21
@@ -74,7 +74,7 @@ try:
74 import pyasn1 # NOQA
74 import pyasn1 # NOQA
75except ImportError:
75except ImportError:
76 logger.critical("The pyopenssl, ndg-httpsclient, pyasn1 packages have to be installed.\n"
76 logger.critical("The pyopenssl, ndg-httpsclient, pyasn1 packages have to be installed.\n"
77− "Some HTTPS connections will failed")
77+ "Some HTTPS connections will fail")
78
78
79
79
80static_path, templates_path, themes =\
80static_path, templates_path, themes =\
@@ -110,6 +110,7 @@ for indice, theme in enumerate(themes):
110 for (dirpath, dirnames, filenames) in os.walk(theme_img_path):
110 for (dirpath, dirnames, filenames) in os.walk(theme_img_path):
111 global_favicons[indice].extend(filenames)
111 global_favicons[indice].extend(filenames)
112
112
113+# used when translating category names
113_category_names = (gettext('files'),
114_category_names = (gettext('files'),
114 gettext('general'),
115 gettext('general'),
115 gettext('music'),
116 gettext('music'),
@@ -128,11 +129,8 @@ outgoing_proxies = settings['outgoing'].get('proxies', None)
128def get_locale():
129def get_locale():
129 locale = request.accept_languages.best_match(settings['locales'].keys())
130 locale = request.accept_languages.best_match(settings['locales'].keys())
130
131
131− if settings['ui'].get('default_locale'):
132+ if request.preferences.get_value('locale') != '':
132− locale = settings['ui']['default_locale']
133−
134− if request.cookies.get('locale', '') in settings['locales']:
135− locale = request.cookies.get('locale', '')
133+ locale = request.preferences.get_value('locale')
136
134
137 if 'locale' in request.args\
135 if 'locale' in request.args\
138 and request.args['locale'] in settings['locales']:
136 and request.args['locale'] in settings['locales']:
@@ -248,7 +246,7 @@ def image_proxify(url):
248 if url.startswith('//'):
246 if url.startswith('//'):
249 url = 'https:' + url
247 url = 'https:' + url
250
248
251− if not settings['server'].get('image_proxy') and not request.cookies.get('image_proxy'):
249+ if not request.preferences.get_value('image_proxy'):
252 return url
250 return url
253
251
254 hash_string = url + settings['server']['secret_key']
252 hash_string = url + settings['server']['secret_key']
@@ -259,19 +257,18 @@ def image_proxify(url):
259
257
260
258
261def render(template_name, override_theme=None, **kwargs):
259def render(template_name, override_theme=None, **kwargs):
262− blocked_engines = request.preferences.engines.get_disabled()
260+ disabled_engines = request.preferences.engines.get_disabled()
263− autocomplete = request.preferences.get_value('autocomplete')
264
261
265− nonblocked_categories = set(category for engine_name in engines
262+ enabled_categories = set(category for engine_name in engines
266− for category in engines[engine_name].categories
263+ for category in engines[engine_name].categories
267− if (engine_name, category) not in blocked_engines)
264+ if (engine_name, category) not in disabled_engines)
268
265
269 if 'categories' not in kwargs:
266 if 'categories' not in kwargs:
270 kwargs['categories'] = ['general']
267 kwargs['categories'] = ['general']
271 kwargs['categories'].extend(x for x in
268 kwargs['categories'].extend(x for x in
272 sorted(categories.keys())
269 sorted(categories.keys())
273 if x != 'general'
270 if x != 'general'
274− and x in nonblocked_categories)
271+ and x in enabled_categories)
275
272
276 if 'all_categories' not in kwargs:
273 if 'all_categories' not in kwargs:
277 kwargs['all_categories'] = ['general']
274 kwargs['all_categories'] = ['general']
@@ -290,14 +287,13 @@ def render(template_name, override_theme=None, **kwargs):
290 if not kwargs['selected_categories']:
287 if not kwargs['selected_categories']:
291 cookie_categories = request.preferences.get_value('categories')
288 cookie_categories = request.preferences.get_value('categories')
292 for ccateg in cookie_categories:
289 for ccateg in cookie_categories:
293− if ccateg in categories:
294− kwargs['selected_categories'].append(ccateg)
290+ kwargs['selected_categories'].append(ccateg)
295
291
296 if not kwargs['selected_categories']:
292 if not kwargs['selected_categories']:
297 kwargs['selected_categories'] = ['general']
293 kwargs['selected_categories'] = ['general']
298
294
299 if 'autocomplete' not in kwargs:
295 if 'autocomplete' not in kwargs:
300− kwargs['autocomplete'] = autocomplete
296+ kwargs['autocomplete'] = request.preferences.get_value('autocomplete')
301
297
302 if get_locale() in rtl_locales and 'rtl' not in kwargs:
298 if get_locale() in rtl_locales and 'rtl' not in kwargs:
303 kwargs['rtl'] = True
299 kwargs['rtl'] = True
@@ -483,10 +479,10 @@ def autocompleter():
483 request_data = request.args
479 request_data = request.args
484
480
485 # set blocked engines
481 # set blocked engines
486− blocked_engines = request.preferences.engines.get_disabled()
482+ disabled_engines = request.preferences.engines.get_disabled()
487
483
488 # parse query
484 # parse query
489− query = Query(request_data.get('q', '').encode('utf-8'), blocked_engines)
485+ query = Query(request_data.get('q', '').encode('utf-8'), disabled_engines)
490 query.parse_query()
486 query.parse_query()
491
487
492 # check if search query is set
488 # check if search query is set
@@ -502,7 +498,7 @@ def autocompleter():
502 # normal autocompletion results only appear if max 3 inner results returned
498 # normal autocompletion results only appear if max 3 inner results returned
503 if len(raw_results) <= 3 and completer:
499 if len(raw_results) <= 3 and completer:
504 # get language from cookie
500 # get language from cookie
505− language = request.cookies.get('language')
501+ language = request.preferences.get_value('language')
506 if not language or language == 'all':
502 if not language or language == 'all':
507 language = 'en'
503 language = 'en'
508 else:
504 else:
@@ -544,7 +540,7 @@ def preferences():
544 # render preferences
540 # render preferences
545 image_proxy = request.preferences.get_value('image_proxy')
541 image_proxy = request.preferences.get_value('image_proxy')
546 lang = request.preferences.get_value('language')
542 lang = request.preferences.get_value('language')
547− blocked_engines = request.preferences.engines.get_disabled()
543+ disabled_engines = request.preferences.engines.get_disabled()
548 allowed_plugins = request.preferences.plugins.get_enabled()
544 allowed_plugins = request.preferences.plugins.get_enabled()
549
545
550 # stats for preferences page
546 # stats for preferences page
@@ -572,7 +568,7 @@ def preferences():
572 language_codes=language_codes,
568 language_codes=language_codes,
573 engines_by_category=categories,
569 engines_by_category=categories,
574 stats=stats,
570 stats=stats,
575− blocked_engines=blocked_engines,
571+ disabled_engines=disabled_engines,
576 autocomplete_backends=autocomplete_backends,
572 autocomplete_backends=autocomplete_backends,
577 shortcuts={y: x for x, y in engine_shortcuts.items()},
573 shortcuts={y: x for x, y in engine_shortcuts.items()},
578 themes=themes,
574 themes=themes,