on master help sign in
[enh] per user plugin switch
commitcae22bfc7609d00f987e679cf6d048873d268d84 authorAdam Tauber <asciimoo@gmail.com> dateTue 10 Mar 2015, 20:44 (12 years ago) parent00cc4dc
2 files changed+14−2
searx/plugins/__init__.py+2−2 searx/webapp.py+12
searx/plugins/__init__.py+2−2
@@ -20,7 +20,7 @@ class PluginStore():
2020 self.plugins = []
2121
2222 def __iter__(self):
23− for plugin in plugins:
23+ for plugin in self.plugins:
2424 yield plugin
2525
2626 def register(self, *plugins):
@@ -33,7 +33,7 @@ class PluginStore():
3333
3434 def call(self, plugin_type, request, *args, **kwargs):
3535 ret = True
36− for plugin in self.plugins:
36+ for plugin in request.user_plugins:
3737 if hasattr(plugin, plugin_type):
3838 ret = getattr(plugin, plugin_type)(request, *args, **kwargs)
3939 if not ret:
searx/webapp.py+12
@@ -305,6 +305,18 @@ def render(template_name, override_theme=None, **kwargs):
305305 '{}/{}'.format(kwargs['theme'], template_name), **kwargs)
306306
307307
308+@app.before_request
309+def pre_request():
310+
311+ request.user_plugins = []
312+ allowed_plugins = request.cookies.get('allowed_plugins', '').split(',')
313+ disabled_plugins = request.cookies.get('disabled_plugins', '').split(',')
314+ for plugin in plugins:
315+ if ((plugin.default_on and plugin.name not in disabled_plugins)
316+ or plugin.name in allowed_plugins):
317+ request.user_plugins.append(plugin)
318+
319+
308320@app.route('/search', methods=['GET', 'POST'])
309321@app.route('/', methods=['GET', 'POST'])
310322def index():