diff --git a/searx/plugins/__init__.py b/searx/plugins/__init__.py index c3aad5f32..6bd4f512d 100644 --- a/searx/plugins/__init__.py +++ b/searx/plugins/__init__.py @@ -227,6 +227,8 @@ def plugin_module_names(): def initialize(app): for module_name, external in plugin_module_names(): - plugin = load_and_initialize_plugin(module_name, external, (app, settings)) - if plugin: - plugins.register(plugin) + # it is possible to block plugins from being registered into plugin chain in settings.yml + if module_name not in settings['blocked_plugins']: + plugin = load_and_initialize_plugin(module_name, external, (app, settings)) + if plugin: + plugins.register(plugin) diff --git a/searx/settings.yml b/searx/settings.yml index 5143e69c0..bd60fe002 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -218,6 +218,12 @@ outgoing: # - plugin2 # - ... +# Plugins listed here will be loaded, but will not be registered into plugins chain. +# The engine will not use them to process queries. +# +#blocked_plugins: +# - searx.plugins.self_info + # Comment or un-comment plugin to activate / deactivate by default. # # enabled_plugins: diff --git a/searx/settings_defaults.py b/searx/settings_defaults.py index 06cae34bc..b6ec45de6 100644 --- a/searx/settings_defaults.py +++ b/searx/settings_defaults.py @@ -235,6 +235,7 @@ SCHEMA = { }, 'plugins': SettingsValue(list, []), 'enabled_plugins': SettingsValue((None, list), None), + 'blocked_plugins': SettingsValue(list, []), 'checker': { 'off_when_debug': SettingsValue(bool, True, None), 'scheduling': SettingsValue((None, dict), None, None),