mirror of https://github.com/searxng/searxng.git
Merge pull request #536 from kvch/general-minor-refactors
General minor refactors
This commit is contained in:
commit
11c2262055
|
@ -20,10 +20,10 @@ language_codes = (
|
||||||
("ar_XA", "Arabic", "Arabia"),
|
("ar_XA", "Arabic", "Arabia"),
|
||||||
("bg_BG", "Bulgarian", "Bulgaria"),
|
("bg_BG", "Bulgarian", "Bulgaria"),
|
||||||
("cs_CZ", "Czech", "Czech Republic"),
|
("cs_CZ", "Czech", "Czech Republic"),
|
||||||
("de_DE", "German", "Germany"),
|
|
||||||
("da_DK", "Danish", "Denmark"),
|
("da_DK", "Danish", "Denmark"),
|
||||||
("de_AT", "German", "Austria"),
|
("de_AT", "German", "Austria"),
|
||||||
("de_CH", "German", "Switzerland"),
|
("de_CH", "German", "Switzerland"),
|
||||||
|
("de_DE", "German", "Germany"),
|
||||||
("el_GR", "Greek", "Greece"),
|
("el_GR", "Greek", "Greece"),
|
||||||
("en_AU", "English", "Australia"),
|
("en_AU", "English", "Australia"),
|
||||||
("en_CA", "English", "Canada"),
|
("en_CA", "English", "Canada"),
|
||||||
|
@ -58,10 +58,10 @@ language_codes = (
|
||||||
("ko_KR", "Korean", "Korea"),
|
("ko_KR", "Korean", "Korea"),
|
||||||
("lt_LT", "Lithuanian", "Lithuania"),
|
("lt_LT", "Lithuanian", "Lithuania"),
|
||||||
("lv_LV", "Latvian", "Latvia"),
|
("lv_LV", "Latvian", "Latvia"),
|
||||||
("oc_OC", "Occitan", "Occitan"),
|
|
||||||
("nb_NO", "Norwegian", "Norway"),
|
("nb_NO", "Norwegian", "Norway"),
|
||||||
("nl_BE", "Dutch", "Belgium"),
|
("nl_BE", "Dutch", "Belgium"),
|
||||||
("nl_NL", "Dutch", "Netherlands"),
|
("nl_NL", "Dutch", "Netherlands"),
|
||||||
|
("oc_OC", "Occitan", "Occitan"),
|
||||||
("pl_PL", "Polish", "Poland"),
|
("pl_PL", "Polish", "Poland"),
|
||||||
("pt_BR", "Portuguese", "Brazil"),
|
("pt_BR", "Portuguese", "Brazil"),
|
||||||
("pt_PT", "Portuguese", "Portugal"),
|
("pt_PT", "Portuguese", "Portugal"),
|
||||||
|
|
|
@ -28,12 +28,12 @@ import re
|
||||||
class Query(object):
|
class Query(object):
|
||||||
"""parse query"""
|
"""parse query"""
|
||||||
|
|
||||||
def __init__(self, query, blocked_engines):
|
def __init__(self, query, disabled_engines):
|
||||||
self.query = query
|
self.query = query
|
||||||
self.blocked_engines = []
|
self.disabled_engines = []
|
||||||
|
|
||||||
if blocked_engines:
|
if disabled_engines:
|
||||||
self.blocked_engines = blocked_engines
|
self.disabled_engines = disabled_engines
|
||||||
|
|
||||||
self.query_parts = []
|
self.query_parts = []
|
||||||
self.engines = []
|
self.engines = []
|
||||||
|
@ -107,7 +107,7 @@ class Query(object):
|
||||||
self.engines.extend({'category': prefix,
|
self.engines.extend({'category': prefix,
|
||||||
'name': engine.name}
|
'name': engine.name}
|
||||||
for engine in categories[prefix]
|
for engine in categories[prefix]
|
||||||
if (engine.name, prefix) not in self.blocked_engines)
|
if (engine.name, prefix) not in self.disabled_engines)
|
||||||
|
|
||||||
if query_part[0] == '!':
|
if query_part[0] == '!':
|
||||||
self.specific = True
|
self.specific = True
|
||||||
|
|
|
@ -140,7 +140,7 @@ class Search(object):
|
||||||
self.lang = 'all'
|
self.lang = 'all'
|
||||||
|
|
||||||
# set blocked engines
|
# set blocked engines
|
||||||
self.blocked_engines = request.preferences.engines.get_disabled()
|
self.disabled_engines = request.preferences.engines.get_disabled()
|
||||||
|
|
||||||
self.result_container = ResultContainer()
|
self.result_container = ResultContainer()
|
||||||
self.request_data = {}
|
self.request_data = {}
|
||||||
|
@ -167,7 +167,7 @@ class Search(object):
|
||||||
|
|
||||||
# parse query, if tags are set, which change
|
# parse query, if tags are set, which change
|
||||||
# the serch engine or search-language
|
# the serch engine or search-language
|
||||||
query_obj = Query(self.request_data['q'], self.blocked_engines)
|
query_obj = Query(self.request_data['q'], self.disabled_engines)
|
||||||
query_obj.parse_query()
|
query_obj.parse_query()
|
||||||
|
|
||||||
# set query
|
# set query
|
||||||
|
@ -227,8 +227,7 @@ class Search(object):
|
||||||
# using user-defined default-configuration which
|
# using user-defined default-configuration which
|
||||||
# (is stored in cookie)
|
# (is stored in cookie)
|
||||||
if not self.categories:
|
if not self.categories:
|
||||||
cookie_categories = request.cookies.get('categories', '')
|
cookie_categories = request.preferences.get_value('categories')
|
||||||
cookie_categories = cookie_categories.split(',')
|
|
||||||
for ccateg in cookie_categories:
|
for ccateg in cookie_categories:
|
||||||
if ccateg in categories:
|
if ccateg in categories:
|
||||||
self.categories.append(ccateg)
|
self.categories.append(ccateg)
|
||||||
|
@ -244,7 +243,7 @@ class Search(object):
|
||||||
self.engines.extend({'category': categ,
|
self.engines.extend({'category': categ,
|
||||||
'name': engine.name}
|
'name': engine.name}
|
||||||
for engine in categories[categ]
|
for engine in categories[categ]
|
||||||
if (engine.name, categ) not in self.blocked_engines)
|
if (engine.name, categ) not in self.disabled_engines)
|
||||||
|
|
||||||
# remove suspended engines
|
# remove suspended engines
|
||||||
self.engines = [e for e in self.engines
|
self.engines = [e for e in self.engines
|
||||||
|
|
|
@ -109,7 +109,7 @@
|
||||||
<td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})‎</td>
|
<td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})‎</td>
|
||||||
<td>{{ _(categ) }}</td>
|
<td>{{ _(categ) }}</td>
|
||||||
<td class="engine_checkbox">
|
<td class="engine_checkbox">
|
||||||
<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 %} />
|
<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 %} />
|
||||||
<label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label>
|
<label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label>
|
||||||
<label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label>
|
<label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -97,7 +97,7 @@
|
||||||
<td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})‎</td>
|
<td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})‎</td>
|
||||||
<td>{{ _(categ) }}</td>
|
<td>{{ _(categ) }}</td>
|
||||||
<td class="engine_checkbox">
|
<td class="engine_checkbox">
|
||||||
<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 %} />
|
<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 %} />
|
||||||
<label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label>
|
<label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label>
|
||||||
<label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label>
|
<label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -157,7 +157,7 @@
|
||||||
{% if not search_engine.private %}
|
{% if not search_engine.private %}
|
||||||
<tr>
|
<tr>
|
||||||
{% if not rtl %}
|
{% if not rtl %}
|
||||||
<td>{{ checkbox_toggle('engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_'), (search_engine.name, categ) in blocked_engines) }}</td>
|
<td>{{ checkbox_toggle('engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_'), (search_engine.name, categ) in disabled_engines) }}</td>
|
||||||
<th>{{ search_engine.name }}</th>
|
<th>{{ search_engine.name }}</th>
|
||||||
<td>{{ shortcuts[search_engine.name] }}</td>
|
<td>{{ shortcuts[search_engine.name] }}</td>
|
||||||
<td><input type="checkbox" {{ "checked" if search_engine.safesearch==True else ""}} readonly="readonly" disabled="disabled"></td>
|
<td><input type="checkbox" {{ "checked" if search_engine.safesearch==True else ""}} readonly="readonly" disabled="disabled"></td>
|
||||||
|
@ -169,7 +169,7 @@
|
||||||
<td><input type="checkbox" {{ "checked" if search_engine.safesearch==True else ""}} readonly="readonly" disabled="disabled"></td>
|
<td><input type="checkbox" {{ "checked" if search_engine.safesearch==True else ""}} readonly="readonly" disabled="disabled"></td>
|
||||||
<td>{{ shortcuts[search_engine.name] }}</td>
|
<td>{{ shortcuts[search_engine.name] }}</td>
|
||||||
<th>{{ search_engine.name }}</th>
|
<th>{{ search_engine.name }}</th>
|
||||||
<td>{{ checkbox_toggle('engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_'), (search_engine.name, categ) in blocked_engines) }}</td>
|
<td>{{ checkbox_toggle('engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_'), (search_engine.name, categ) in disabled_engines) }}</td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})‎</td>
|
<td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})‎</td>
|
||||||
<td class="engine_checkbox">
|
<td class="engine_checkbox">
|
||||||
<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 %} />
|
<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 %} />
|
||||||
<label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label>
|
<label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label>
|
||||||
<label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label>
|
<label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -74,7 +74,7 @@ try:
|
||||||
import pyasn1 # NOQA
|
import pyasn1 # NOQA
|
||||||
except ImportError:
|
except ImportError:
|
||||||
logger.critical("The pyopenssl, ndg-httpsclient, pyasn1 packages have to be installed.\n"
|
logger.critical("The pyopenssl, ndg-httpsclient, pyasn1 packages have to be installed.\n"
|
||||||
"Some HTTPS connections will failed")
|
"Some HTTPS connections will fail")
|
||||||
|
|
||||||
|
|
||||||
static_path, templates_path, themes =\
|
static_path, templates_path, themes =\
|
||||||
|
@ -110,6 +110,7 @@ for indice, theme in enumerate(themes):
|
||||||
for (dirpath, dirnames, filenames) in os.walk(theme_img_path):
|
for (dirpath, dirnames, filenames) in os.walk(theme_img_path):
|
||||||
global_favicons[indice].extend(filenames)
|
global_favicons[indice].extend(filenames)
|
||||||
|
|
||||||
|
# used when translating category names
|
||||||
_category_names = (gettext('files'),
|
_category_names = (gettext('files'),
|
||||||
gettext('general'),
|
gettext('general'),
|
||||||
gettext('music'),
|
gettext('music'),
|
||||||
|
@ -128,11 +129,8 @@ outgoing_proxies = settings['outgoing'].get('proxies', None)
|
||||||
def get_locale():
|
def get_locale():
|
||||||
locale = request.accept_languages.best_match(settings['locales'].keys())
|
locale = request.accept_languages.best_match(settings['locales'].keys())
|
||||||
|
|
||||||
if settings['ui'].get('default_locale'):
|
if request.preferences.get_value('locale') != '':
|
||||||
locale = settings['ui']['default_locale']
|
locale = request.preferences.get_value('locale')
|
||||||
|
|
||||||
if request.cookies.get('locale', '') in settings['locales']:
|
|
||||||
locale = request.cookies.get('locale', '')
|
|
||||||
|
|
||||||
if 'locale' in request.args\
|
if 'locale' in request.args\
|
||||||
and request.args['locale'] in settings['locales']:
|
and request.args['locale'] in settings['locales']:
|
||||||
|
@ -248,7 +246,7 @@ def image_proxify(url):
|
||||||
if url.startswith('//'):
|
if url.startswith('//'):
|
||||||
url = 'https:' + url
|
url = 'https:' + url
|
||||||
|
|
||||||
if not settings['server'].get('image_proxy') and not request.cookies.get('image_proxy'):
|
if not request.preferences.get_value('image_proxy'):
|
||||||
return url
|
return url
|
||||||
|
|
||||||
hash_string = url + settings['server']['secret_key']
|
hash_string = url + settings['server']['secret_key']
|
||||||
|
@ -259,19 +257,18 @@ def image_proxify(url):
|
||||||
|
|
||||||
|
|
||||||
def render(template_name, override_theme=None, **kwargs):
|
def render(template_name, override_theme=None, **kwargs):
|
||||||
blocked_engines = request.preferences.engines.get_disabled()
|
disabled_engines = request.preferences.engines.get_disabled()
|
||||||
autocomplete = request.preferences.get_value('autocomplete')
|
|
||||||
|
|
||||||
nonblocked_categories = set(category for engine_name in engines
|
enabled_categories = set(category for engine_name in engines
|
||||||
for category in engines[engine_name].categories
|
for category in engines[engine_name].categories
|
||||||
if (engine_name, category) not in blocked_engines)
|
if (engine_name, category) not in disabled_engines)
|
||||||
|
|
||||||
if 'categories' not in kwargs:
|
if 'categories' not in kwargs:
|
||||||
kwargs['categories'] = ['general']
|
kwargs['categories'] = ['general']
|
||||||
kwargs['categories'].extend(x for x in
|
kwargs['categories'].extend(x for x in
|
||||||
sorted(categories.keys())
|
sorted(categories.keys())
|
||||||
if x != 'general'
|
if x != 'general'
|
||||||
and x in nonblocked_categories)
|
and x in enabled_categories)
|
||||||
|
|
||||||
if 'all_categories' not in kwargs:
|
if 'all_categories' not in kwargs:
|
||||||
kwargs['all_categories'] = ['general']
|
kwargs['all_categories'] = ['general']
|
||||||
|
@ -290,14 +287,13 @@ def render(template_name, override_theme=None, **kwargs):
|
||||||
if not kwargs['selected_categories']:
|
if not kwargs['selected_categories']:
|
||||||
cookie_categories = request.preferences.get_value('categories')
|
cookie_categories = request.preferences.get_value('categories')
|
||||||
for ccateg in cookie_categories:
|
for ccateg in cookie_categories:
|
||||||
if ccateg in categories:
|
kwargs['selected_categories'].append(ccateg)
|
||||||
kwargs['selected_categories'].append(ccateg)
|
|
||||||
|
|
||||||
if not kwargs['selected_categories']:
|
if not kwargs['selected_categories']:
|
||||||
kwargs['selected_categories'] = ['general']
|
kwargs['selected_categories'] = ['general']
|
||||||
|
|
||||||
if 'autocomplete' not in kwargs:
|
if 'autocomplete' not in kwargs:
|
||||||
kwargs['autocomplete'] = autocomplete
|
kwargs['autocomplete'] = request.preferences.get_value('autocomplete')
|
||||||
|
|
||||||
if get_locale() in rtl_locales and 'rtl' not in kwargs:
|
if get_locale() in rtl_locales and 'rtl' not in kwargs:
|
||||||
kwargs['rtl'] = True
|
kwargs['rtl'] = True
|
||||||
|
@ -483,10 +479,10 @@ def autocompleter():
|
||||||
request_data = request.args
|
request_data = request.args
|
||||||
|
|
||||||
# set blocked engines
|
# set blocked engines
|
||||||
blocked_engines = request.preferences.engines.get_disabled()
|
disabled_engines = request.preferences.engines.get_disabled()
|
||||||
|
|
||||||
# parse query
|
# parse query
|
||||||
query = Query(request_data.get('q', '').encode('utf-8'), blocked_engines)
|
query = Query(request_data.get('q', '').encode('utf-8'), disabled_engines)
|
||||||
query.parse_query()
|
query.parse_query()
|
||||||
|
|
||||||
# check if search query is set
|
# check if search query is set
|
||||||
|
@ -502,7 +498,7 @@ def autocompleter():
|
||||||
# normal autocompletion results only appear if max 3 inner results returned
|
# normal autocompletion results only appear if max 3 inner results returned
|
||||||
if len(raw_results) <= 3 and completer:
|
if len(raw_results) <= 3 and completer:
|
||||||
# get language from cookie
|
# get language from cookie
|
||||||
language = request.cookies.get('language')
|
language = request.preferences.get_value('language')
|
||||||
if not language or language == 'all':
|
if not language or language == 'all':
|
||||||
language = 'en'
|
language = 'en'
|
||||||
else:
|
else:
|
||||||
|
@ -544,7 +540,7 @@ def preferences():
|
||||||
# render preferences
|
# render preferences
|
||||||
image_proxy = request.preferences.get_value('image_proxy')
|
image_proxy = request.preferences.get_value('image_proxy')
|
||||||
lang = request.preferences.get_value('language')
|
lang = request.preferences.get_value('language')
|
||||||
blocked_engines = request.preferences.engines.get_disabled()
|
disabled_engines = request.preferences.engines.get_disabled()
|
||||||
allowed_plugins = request.preferences.plugins.get_enabled()
|
allowed_plugins = request.preferences.plugins.get_enabled()
|
||||||
|
|
||||||
# stats for preferences page
|
# stats for preferences page
|
||||||
|
@ -572,7 +568,7 @@ def preferences():
|
||||||
language_codes=language_codes,
|
language_codes=language_codes,
|
||||||
engines_by_category=categories,
|
engines_by_category=categories,
|
||||||
stats=stats,
|
stats=stats,
|
||||||
blocked_engines=blocked_engines,
|
disabled_engines=disabled_engines,
|
||||||
autocomplete_backends=autocomplete_backends,
|
autocomplete_backends=autocomplete_backends,
|
||||||
shortcuts={y: x for x, y in engine_shortcuts.items()},
|
shortcuts={y: x for x, y in engine_shortcuts.items()},
|
||||||
themes=themes,
|
themes=themes,
|
||||||
|
|
Loading…
Reference in New Issue