Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aae7830d authored by Alexandre Flament's avatar Alexandre Flament
Browse files

[mod] refactoring: processors

Report to the user suspended engines.

searx.search.processor.abstract:
* manages suspend time (per network).
* reports suspended time to the ResultContainer (method extend_container_if_suspended)
* adds the results to the ResultContainer (method extend_container)
* handles exceptions (method handle_exception)
parent ae5954f2
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -51,8 +51,6 @@ engine_default_args = {'paging': False,
                       'shortcut': '-',
                       'disabled': False,
                       'enable_http': False,
                       'suspend_end_time': 0,
                       'continuous_errors': 0,
                       'time_range_support': False,
                       'engine_type': 'online',
                       'display_error_messages': True,
+1 −1
Original line number Diff line number Diff line
@@ -199,7 +199,7 @@ class Network:

def get_network(name=None):
    global NETWORKS
    return NETWORKS[name or DEFAULT_NAME]
    return NETWORKS.get(name or DEFAULT_NAME)


def initialize(settings_engines=None, settings_outgoing=None):
+2 −2
Original line number Diff line number Diff line
@@ -369,9 +369,9 @@ class ResultContainer:
            return 0
        return resultnum_sum / len(self._number_of_results)

    def add_unresponsive_engine(self, engine_name, error_type, error_message=None):
    def add_unresponsive_engine(self, engine_name, error_type, error_message=None, suspended=False):
        if engines[engine_name].display_error_messages:
            self.unresponsive_engines.add((engine_name, error_type, error_message))
            self.unresponsive_engines.add((engine_name, error_type, error_message, suspended))

    def add_timing(self, engine_name, engine_time, page_load_time):
        self.timings.append({
+5 −1
Original line number Diff line number Diff line
@@ -106,12 +106,16 @@ class Search:
        for engineref in self.search_query.engineref_list:
            processor = processors[engineref.name]

            # stop the request now if the engine is suspend
            if processor.extend_container_if_suspended(self.result_container):
                continue

            # set default request parameters
            request_params = processor.get_params(self.search_query, engineref.category)
            if request_params is None:
                continue

            with threading.RLock():
            with processor.lock:
                processor.engine.stats['sent_search_count'] += 1

            # append request to list
+1 −2
Original line number Diff line number Diff line
@@ -4,7 +4,6 @@ import typing
import types
import functools
import itertools
import threading
from time import time
from urllib.parse import urlparse

@@ -385,7 +384,7 @@ class Checker:
        engineref_category = search_query.engineref_list[0].category
        params = self.processor.get_params(search_query, engineref_category)
        if params is not None:
            with threading.RLock():
            with self.processor.lock:
                self.processor.engine.stats['sent_search_count'] += 1
            self.processor.search(search_query.query, params, result_container, time(), 5)
        return result_container
Loading