diff options
Diffstat (limited to 'searx/search')
| -rw-r--r-- | searx/search/__init__.py | 51 | ||||
| -rw-r--r-- | searx/search/processors/abstract.py | 1 |
2 files changed, 24 insertions, 28 deletions
diff --git a/searx/search/__init__.py b/searx/search/__init__.py index f0cd6765f..36903b194 100644 --- a/searx/search/__init__.py +++ b/searx/search/__init__.py @@ -1,28 +1,30 @@ # SPDX-License-Identifier: AGPL-3.0-or-later # pylint: disable=missing-module-docstring, too-few-public-methods +# the public namespace has not yet been finally defined .. +# __all__ = ["EngineRef", "SearchQuery"] + import threading -from copy import copy from timeit import default_timer from uuid import uuid4 -import flask from flask import copy_current_request_context -import babel -from searx import settings -from searx.answerers import ask -from searx.external_bang import get_bang_url -from searx.results import ResultContainer from searx import logger -from searx.plugins import plugins -from searx.search.models import EngineRef, SearchQuery +from searx import settings +import searx.answerers +import searx.plugins from searx.engines import load_engines -from searx.network import initialize as initialize_network, check_network_configuration +from searx.extended_types import SXNG_Request +from searx.external_bang import get_bang_url from searx.metrics import initialize as initialize_metrics, counter_inc, histogram_observe_time -from searx.search.processors import PROCESSORS, initialize as initialize_processors +from searx.network import initialize as initialize_network, check_network_configuration +from searx.results import ResultContainer from searx.search.checker import initialize as initialize_checker +from searx.search.models import SearchQuery +from searx.search.processors import PROCESSORS, initialize as initialize_processors +from .models import EngineRef, SearchQuery logger = logger.getChild('search') @@ -68,17 +70,10 @@ class Search: return False def search_answerers(self): - """ - Check if an answer return a result. - If yes, update self.result_container and return True - """ - answerers_results = ask(self.search_query) - if answerers_results: - for results in answerers_results: - self.result_container.extend('answer', results) - return True - return False + results = searx.answerers.STORAGE.ask(self.search_query.query) + self.result_container.extend(None, results) + return bool(results) # do search-request def _get_requests(self): @@ -184,11 +179,11 @@ class Search: class SearchWithPlugins(Search): """Inherit from the Search class, add calls to the plugins.""" - __slots__ = 'ordered_plugin_list', 'request' + __slots__ = 'user_plugins', 'request' - def __init__(self, search_query: SearchQuery, ordered_plugin_list, request: flask.Request): + def __init__(self, search_query: SearchQuery, request: SXNG_Request, user_plugins: list[str]): super().__init__(search_query) - self.ordered_plugin_list = ordered_plugin_list + self.user_plugins = user_plugins self.result_container.on_result = self._on_result # pylint: disable=line-too-long # get the "real" request to use it outside the Flask context. @@ -200,14 +195,14 @@ class SearchWithPlugins(Search): self.request = request._get_current_object() def _on_result(self, result): - return plugins.call(self.ordered_plugin_list, 'on_result', self.request, self, result) + return searx.plugins.STORAGE.on_result(self.request, self, result) def search(self) -> ResultContainer: - if plugins.call(self.ordered_plugin_list, 'pre_search', self.request, self): - super().search() - plugins.call(self.ordered_plugin_list, 'post_search', self.request, self) + if searx.plugins.STORAGE.pre_search(self.request, self): + super().search() + searx.plugins.STORAGE.post_search(self.request, self) self.result_container.close() return self.result_container diff --git a/searx/search/processors/abstract.py b/searx/search/processors/abstract.py index f89302a92..ff6c8f78a 100644 --- a/searx/search/processors/abstract.py +++ b/searx/search/processors/abstract.py @@ -158,6 +158,7 @@ class EngineProcessor(ABC): return None params = {} + params["query"] = search_query.query params['category'] = engine_category params['pageno'] = search_query.pageno params['safesearch'] = search_query.safesearch |