mirror of
https://github.com/searxng/searxng.git
synced 2025-07-12 15:59:21 +02:00
[enh] plugin preferences - server-side ++ oscar theme
This commit is contained in:
parent
9eeb36c787
commit
37c58fd9ca
2 changed files with 51 additions and 9 deletions
|
@ -317,8 +317,8 @@ def pre_request():
|
|||
allowed_plugins = request.cookies.get('allowed_plugins', '').split(',')
|
||||
disabled_plugins = request.cookies.get('disabled_plugins', '').split(',')
|
||||
for plugin in plugins:
|
||||
if ((plugin.default_on and plugin.name not in disabled_plugins)
|
||||
or plugin.name in allowed_plugins):
|
||||
if ((plugin.default_on and plugin.id not in disabled_plugins)
|
||||
or plugin.id in allowed_plugins):
|
||||
request.user_plugins.append(plugin)
|
||||
|
||||
|
||||
|
@ -508,6 +508,7 @@ def preferences():
|
|||
blocked_engines = get_blocked_engines(engines, request.cookies)
|
||||
else: # on save
|
||||
selected_categories = []
|
||||
post_disabled_plugins = []
|
||||
locale = None
|
||||
autocomplete = ''
|
||||
method = 'POST'
|
||||
|
@ -534,14 +535,34 @@ def preferences():
|
|||
safesearch = pd
|
||||
elif pd_name.startswith('engine_'):
|
||||
if pd_name.find('__') > -1:
|
||||
engine_name, category = pd_name.replace('engine_', '', 1).split('__', 1)
|
||||
# TODO fix underscore vs space
|
||||
engine_name, category = [x.replace('_', ' ') for x in
|
||||
pd_name.replace('engine_', '', 1).split('__', 1)]
|
||||
if engine_name in engines and category in engines[engine_name].categories:
|
||||
blocked_engines.append((engine_name, category))
|
||||
elif pd_name == 'theme':
|
||||
theme = pd if pd in themes else default_theme
|
||||
elif pd_name.startswith('plugin_'):
|
||||
plugin_id = pd_name.replace('plugin_', '', 1)
|
||||
if not any(plugin.id == plugin_id for plugin in plugins):
|
||||
continue
|
||||
post_disabled_plugins.append(plugin_id)
|
||||
else:
|
||||
resp.set_cookie(pd_name, pd, max_age=cookie_max_age)
|
||||
|
||||
disabled_plugins = []
|
||||
allowed_plugins = []
|
||||
for plugin in plugins:
|
||||
if plugin.default_on:
|
||||
if plugin.id in post_disabled_plugins:
|
||||
disabled_plugins.append(plugin.id)
|
||||
elif plugin.id not in post_disabled_plugins:
|
||||
allowed_plugins.append(plugin.id)
|
||||
|
||||
resp.set_cookie('disabled_plugins', ','.join(disabled_plugins), max_age=cookie_max_age)
|
||||
|
||||
resp.set_cookie('allowed_plugins', ','.join(allowed_plugins), max_age=cookie_max_age)
|
||||
|
||||
resp.set_cookie(
|
||||
'blocked_engines', ','.join('__'.join(e) for e in blocked_engines),
|
||||
max_age=cookie_max_age
|
||||
|
@ -591,6 +612,8 @@ def preferences():
|
|||
autocomplete_backends=autocomplete_backends,
|
||||
shortcuts={y: x for x, y in engine_shortcuts.items()},
|
||||
themes=themes,
|
||||
plugins=plugins,
|
||||
allowed_plugins=[plugin.id for plugin in request.user_plugins],
|
||||
theme=get_current_theme_name())
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue