diff --git a/searx/plugins/__init__.py b/searx/plugins/__init__.py index 22f475875..f9fb3aa58 100644 --- a/searx/plugins/__init__.py +++ b/searx/plugins/__init__.py @@ -70,6 +70,8 @@ class PluginStore(): if not hasattr(plugin, plugin_attr) or not isinstance(getattr(plugin, plugin_attr), plugin_attr_type): setattr(plugin, plugin_attr, plugin_attr_type()) plugin.id = plugin.name.replace(' ', '_') + if not hasattr(plugin, 'preference_section'): + plugin.preference_section = 'general' self.plugins.append(plugin) def call(self, ordered_plugin_list, plugin_type, request, *args, **kwargs): diff --git a/searx/plugins/hash_plugin.py b/searx/plugins/hash_plugin.py index 1d3baaede..edb91dd8e 100644 --- a/searx/plugins/hash_plugin.py +++ b/searx/plugins/hash_plugin.py @@ -23,6 +23,9 @@ import re name = "Hash plugin" description = gettext("Converts strings to different hash digests.") default_on = True +preference_section = 'query' +query_keywords = ['md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512'] +query_examples = 'sha512 The quick brown fox jumps over the lazy dog' parser_re = re.compile('(md5|sha1|sha224|sha256|sha384|sha512) (.*)', re.I) diff --git a/searx/plugins/self_info.py b/searx/plugins/self_info.py index 4fdfb4288..053899483 100644 --- a/searx/plugins/self_info.py +++ b/searx/plugins/self_info.py @@ -19,7 +19,9 @@ import re name = gettext('Self Informations') description = gettext('Displays your IP if the query is "ip" and your user agent if the query contains "user agent".') default_on = True - +preference_section = 'query' +query_keywords = ['user-agent'] +query_examples = '' # Self User Agent regex p = re.compile('.*user[ -]agent.*', re.IGNORECASE) diff --git a/searx/templates/oscar/preferences.html b/searx/templates/oscar/preferences.html index 352b90eed..46b4fdb69 100644 --- a/searx/templates/oscar/preferences.html +++ b/searx/templates/oscar/preferences.html @@ -76,6 +76,16 @@ {%- endif -%} {%- endmacro -%} +{%- macro plugin_of_category(plugin_category) -%} +{%- for plugin in plugins -%} + {%- if plugin.preference_section == plugin_category -%} + {{- preferences_item_header(_(plugin.description), _(plugin.name), rtl, 'plugin_' + plugin.id) -}} + {{- checkbox_toggle('plugin_' + plugin.id, plugin.id not in allowed_plugins) -}} + {{- preferences_item_footer(_(plugin.description), _(plugin.name), rtl) -}} + {%- endif -%} +{%- endfor -%} +{% endmacro %} + {%- block title %}{{ _('preferences') }} - {% endblock -%} {% block content %} @@ -88,9 +98,10 @@
@@ -125,16 +136,16 @@ {{ preferences_item_footer(language_info, language_label, rtl) }} {% endif %} - {% if 'locale' not in locked_preferences %} - {% set locale_label = _('Interface language') %} - {% set locale_info = _('Change the language of the layout') %} - {{ preferences_item_header(locale_info, locale_label, rtl, 'locale') }} -