Loading docs/conf.py +2 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ exclude_patterns = ['build-templates/*.rst'] import searx.engines import searx.plugins import searx.webutils searx.engines.load_engines(searx.settings['engines']) jinja_contexts = { Loading @@ -54,7 +55,7 @@ jinja_contexts = { }, } jinja_filters = { 'group_engines_in_tab': searx.engines.group_engines_in_tab, 'group_engines_in_tab': searx.webutils.group_engines_in_tab, } # Let the Jinja template in configured_engines.rst access documented_modules Loading searx/engines/__init__.py +0 −24 Original line number Diff line number Diff line Loading @@ -13,7 +13,6 @@ usage:: import sys import copy import itertools from os.path import realpath, dirname from babel.localedata import locale_identifiers Loading Loading @@ -267,26 +266,3 @@ def load_engines(engine_list): if engine: register_engine(engine) return engines DEFAULT_GROUP_NAME = 'others' def group_engines_in_tab(engines): # pylint: disable=redefined-outer-name def engine_sort_key(engine): return (engine.about.get('language', ''), engine.name) def group_sort_key(group): return (group[0] == DEFAULT_GROUP_NAME, group[0].lower()) def get_group(eng): non_tab_engines = [c for c in eng.categories if c not in settings['categories_as_tabs'] + [OTHER_CATEGORY]] return non_tab_engines[0] if len(non_tab_engines) > 0 else DEFAULT_GROUP_NAME return [ (groupname, sorted(engines, key=engine_sort_key)) for groupname, engines in sorted( ((name, list(engines)) for name, engines in itertools.groupby(sorted(engines, key=get_group), get_group)), key=group_sort_key, ) ] searx/webapp.py +2 −2 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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, Loading searx/webutils.py +26 −1 Original line number Diff line number Diff line Loading @@ -5,11 +5,13 @@ import hashlib import hmac import re import inspect import itertools from io import StringIO from codecs import getincrementalencoder from searx import logger from searx import logger, settings from searx.engines import OTHER_CATEGORY VALID_LANGUAGE_CODE = re.compile(r'^[a-z]{2,3}(-[a-zA-Z]{2})?$') Loading Loading @@ -134,3 +136,26 @@ def is_flask_run_cmdline(): if len(frames) < 2: return False return frames[-2].filename.endswith('flask/cli.py') DEFAULT_GROUP_NAME = 'others' def group_engines_in_tab(engines): def engine_sort_key(engine): return (engine.about.get('language', ''), engine.name) def group_sort_key(group): return (group[0] == DEFAULT_GROUP_NAME, group[0].lower()) def get_group(eng): non_tab_engines = [c for c in eng.categories if c not in settings['categories_as_tabs'] + [OTHER_CATEGORY]] return non_tab_engines[0] if len(non_tab_engines) > 0 else DEFAULT_GROUP_NAME return [ (groupname, sorted(engines, key=engine_sort_key)) for groupname, engines in sorted( ((name, list(engines)) for name, engines in itertools.groupby(sorted(engines, key=get_group), get_group)), key=group_sort_key, ) ] Loading
docs/conf.py +2 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ exclude_patterns = ['build-templates/*.rst'] import searx.engines import searx.plugins import searx.webutils searx.engines.load_engines(searx.settings['engines']) jinja_contexts = { Loading @@ -54,7 +55,7 @@ jinja_contexts = { }, } jinja_filters = { 'group_engines_in_tab': searx.engines.group_engines_in_tab, 'group_engines_in_tab': searx.webutils.group_engines_in_tab, } # Let the Jinja template in configured_engines.rst access documented_modules Loading
searx/engines/__init__.py +0 −24 Original line number Diff line number Diff line Loading @@ -13,7 +13,6 @@ usage:: import sys import copy import itertools from os.path import realpath, dirname from babel.localedata import locale_identifiers Loading Loading @@ -267,26 +266,3 @@ def load_engines(engine_list): if engine: register_engine(engine) return engines DEFAULT_GROUP_NAME = 'others' def group_engines_in_tab(engines): # pylint: disable=redefined-outer-name def engine_sort_key(engine): return (engine.about.get('language', ''), engine.name) def group_sort_key(group): return (group[0] == DEFAULT_GROUP_NAME, group[0].lower()) def get_group(eng): non_tab_engines = [c for c in eng.categories if c not in settings['categories_as_tabs'] + [OTHER_CATEGORY]] return non_tab_engines[0] if len(non_tab_engines) > 0 else DEFAULT_GROUP_NAME return [ (groupname, sorted(engines, key=engine_sort_key)) for groupname, engines in sorted( ((name, list(engines)) for name, engines in itertools.groupby(sorted(engines, key=get_group), get_group)), key=group_sort_key, ) ]
searx/webapp.py +2 −2 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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, Loading
searx/webutils.py +26 −1 Original line number Diff line number Diff line Loading @@ -5,11 +5,13 @@ import hashlib import hmac import re import inspect import itertools from io import StringIO from codecs import getincrementalencoder from searx import logger from searx import logger, settings from searx.engines import OTHER_CATEGORY VALID_LANGUAGE_CODE = re.compile(r'^[a-z]{2,3}(-[a-zA-Z]{2})?$') Loading Loading @@ -134,3 +136,26 @@ def is_flask_run_cmdline(): if len(frames) < 2: return False return frames[-2].filename.endswith('flask/cli.py') DEFAULT_GROUP_NAME = 'others' def group_engines_in_tab(engines): def engine_sort_key(engine): return (engine.about.get('language', ''), engine.name) def group_sort_key(group): return (group[0] == DEFAULT_GROUP_NAME, group[0].lower()) def get_group(eng): non_tab_engines = [c for c in eng.categories if c not in settings['categories_as_tabs'] + [OTHER_CATEGORY]] return non_tab_engines[0] if len(non_tab_engines) > 0 else DEFAULT_GROUP_NAME return [ (groupname, sorted(engines, key=engine_sort_key)) for groupname, engines in sorted( ((name, list(engines)) for name, engines in itertools.groupby(sorted(engines, key=get_group), get_group)), key=group_sort_key, ) ]