From 8e9ad1ccc296c220d61f12926c94d98baa83e3ca Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Wed, 22 Dec 2021 15:51:26 +0100 Subject: [enh] introduce categories_as_tabs Previously all categories were displayed as search engine tabs. This commit changes that so that only the categories listed under categories_as_tabs in settings.yml are displayed. This lets us introduce more categories without cluttering up the UI. Categories not displayed as tabs can still be searched with !bangs. --- searx/webapp.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'searx/webapp.py') diff --git a/searx/webapp.py b/searx/webapp.py index a2aa84d9d..f884c35ef 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -390,12 +390,6 @@ def get_translations(): } -def _get_ordered_categories(): - ordered_categories = list(settings['ui']['categories_order']) - ordered_categories.extend(x for x in sorted(categories.keys()) if x not in ordered_categories) - return ordered_categories - - def _get_enable_categories(all_categories): disabled_engines = request.preferences.engines.get_disabled() enabled_categories = set( @@ -430,8 +424,8 @@ def render(template_name, override_theme=None, **kwargs): kwargs['query_in_title'] = request.preferences.get_value('query_in_title') kwargs['safesearch'] = str(request.preferences.get_value('safesearch')) kwargs['theme'] = get_current_theme_name(override=override_theme) - kwargs['all_categories'] = _get_ordered_categories() - kwargs['categories'] = _get_enable_categories(kwargs['all_categories']) + kwargs['categories_as_tabs'] = settings['categories_as_tabs'] + kwargs['categories'] = _get_enable_categories(categories.keys()) # i18n kwargs['language_codes'] = [l for l in languages if l[0] in settings['search']['languages']] -- cgit v1.2.3 From 31e206361fac911d84e1f19dcf3f0ce80883d625 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Tue, 28 Dec 2021 14:51:21 +0100 Subject: [enh] group engines in preference tabs --- searx/webapp.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'searx/webapp.py') diff --git a/searx/webapp.py b/searx/webapp.py index f884c35ef..9ce7b9d5a 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -59,9 +59,11 @@ from searx.settings_defaults import OUTPUT_FORMATS from searx.settings_loader import get_default_settings_path from searx.exceptions import SearxParameterException from searx.engines import ( + DEFAULT_GROUP_NAME, categories, engines, engine_shortcuts, + group_engines_in_tab, ) from searx.webutils import ( UnicodeWriter, @@ -152,6 +154,7 @@ app = Flask(__name__, static_folder=settings['ui']['static_path'], template_fold app.jinja_env.trim_blocks = True app.jinja_env.lstrip_blocks = True app.jinja_env.add_extension('jinja2.ext.loopcontrols') # pylint: disable=no-member +app.jinja_env.filters['group_engines_in_tab'] = group_engines_in_tab # pylint: disable=no-member app.secret_key = settings['server']['secret_key'] babel = Babel(app) @@ -169,6 +172,16 @@ _category_names = ( gettext('map'), gettext('onions'), gettext('science'), + # non-tab categories + gettext('apps'), + gettext('dictionaries'), + gettext('lyrics'), + gettext('packages'), + gettext('q&a'), + gettext('repos'), + gettext('software wikis'), + gettext('web'), + gettext(DEFAULT_GROUP_NAME), ) _simple_style = (gettext('auto'), gettext('light'), gettext('dark')) -- cgit v1.2.3 From ab90e2ac49778153409397d4a2c34e9051963a0f Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Tue, 28 Dec 2021 16:12:54 +0100 Subject: [enh] show categories not in any tab category in "Other" preferences tab Previously we didn't have a good place to put search engines that don't fit into any of the tab categories. This commit automatically puts search engines that don't belong to any tab category in an "other" category, that is only displayed in the user preferences (and not above search results). --- searx/webapp.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'searx/webapp.py') diff --git a/searx/webapp.py b/searx/webapp.py index 9ce7b9d5a..c0467932e 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -59,6 +59,7 @@ from searx.settings_defaults import OUTPUT_FORMATS from searx.settings_loader import get_default_settings_path from searx.exceptions import SearxParameterException from searx.engines import ( + OTHER_CATEGORY, DEFAULT_GROUP_NAME, categories, engines, @@ -182,6 +183,7 @@ _category_names = ( gettext('software wikis'), gettext('web'), gettext(DEFAULT_GROUP_NAME), + gettext(OTHER_CATEGORY), ) _simple_style = (gettext('auto'), gettext('light'), gettext('dark')) @@ -439,6 +441,7 @@ def render(template_name, override_theme=None, **kwargs): kwargs['theme'] = get_current_theme_name(override=override_theme) kwargs['categories_as_tabs'] = settings['categories_as_tabs'] kwargs['categories'] = _get_enable_categories(categories.keys()) + kwargs['OTHER_CATEGORY'] = OTHER_CATEGORY # i18n kwargs['language_codes'] = [l for l in languages if l[0] in settings['search']['languages']] -- cgit v1.2.3 From 1e195f5b95d4c59105249d66f5d170d40139a461 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Mon, 3 Jan 2022 07:24:20 +0100 Subject: [mod] move group_engines_in_tab to searx.webutils --- searx/webapp.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'searx/webapp.py') diff --git a/searx/webapp.py b/searx/webapp.py index c0467932e..b40aa912e 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -60,11 +60,9 @@ from searx.settings_loader import get_default_settings_path from searx.exceptions import SearxParameterException from searx.engines import ( OTHER_CATEGORY, - DEFAULT_GROUP_NAME, categories, engines, engine_shortcuts, - group_engines_in_tab, ) from searx.webutils import ( UnicodeWriter, @@ -76,6 +74,8 @@ from searx.webutils import ( new_hmac, is_hmac_of, is_flask_run_cmdline, + DEFAULT_GROUP_NAME, + group_engines_in_tab, ) from searx.webadapter import ( get_search_query_from_webapp, -- cgit v1.2.3 From a4c2cfb837a3f92e2c0f0b8a0bac7a6e03499640 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Tue, 4 Jan 2022 18:00:45 +0100 Subject: [enh] change categories_as_tabs from a list to a dict The tab icon names are currently hard coded in the templates. This commit lets us introduce an icon property in the future, e.g: categories_as_tabs: general: icon: search-outline --- searx/webapp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'searx/webapp.py') diff --git a/searx/webapp.py b/searx/webapp.py index b40aa912e..f2957a944 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -439,7 +439,7 @@ def render(template_name, override_theme=None, **kwargs): kwargs['query_in_title'] = request.preferences.get_value('query_in_title') kwargs['safesearch'] = str(request.preferences.get_value('safesearch')) kwargs['theme'] = get_current_theme_name(override=override_theme) - kwargs['categories_as_tabs'] = settings['categories_as_tabs'] + kwargs['categories_as_tabs'] = list(settings['categories_as_tabs'].keys()) kwargs['categories'] = _get_enable_categories(categories.keys()) kwargs['OTHER_CATEGORY'] = OTHER_CATEGORY -- cgit v1.2.3