|
@@ -2,7 +2,7 @@ import re
|
|
from collections import defaultdict
|
|
from collections import defaultdict
|
|
from operator import itemgetter
|
|
from operator import itemgetter
|
|
from threading import RLock
|
|
from threading import RLock
|
|
-from typing import List, NamedTuple
|
|
|
|
|
|
+from typing import List, NamedTuple, Set
|
|
from urllib.parse import urlparse, unquote
|
|
from urllib.parse import urlparse, unquote
|
|
|
|
|
|
from searx import logger
|
|
from searx import logger
|
|
@@ -145,6 +145,12 @@ class Timing(NamedTuple):
|
|
load: float
|
|
load: float
|
|
|
|
|
|
|
|
|
|
|
|
+class UnresponsiveEngine(NamedTuple):
|
|
|
|
+ engine: str
|
|
|
|
+ error_type: str
|
|
|
|
+ suspended: bool
|
|
|
|
+
|
|
|
|
+
|
|
class ResultContainer:
|
|
class ResultContainer:
|
|
"""docstring for ResultContainer"""
|
|
"""docstring for ResultContainer"""
|
|
|
|
|
|
@@ -176,7 +182,7 @@ class ResultContainer:
|
|
self.engine_data = defaultdict(dict)
|
|
self.engine_data = defaultdict(dict)
|
|
self._closed = False
|
|
self._closed = False
|
|
self.paging = False
|
|
self.paging = False
|
|
- self.unresponsive_engines = set()
|
|
|
|
|
|
+ self.unresponsive_engines: Set[UnresponsiveEngine] = set()
|
|
self.timings: List[Timing] = []
|
|
self.timings: List[Timing] = []
|
|
self.redirect_url = None
|
|
self.redirect_url = None
|
|
self.on_result = lambda _: True
|
|
self.on_result = lambda _: True
|
|
@@ -409,9 +415,9 @@ class ResultContainer:
|
|
return 0
|
|
return 0
|
|
return resultnum_sum / len(self._number_of_results)
|
|
return resultnum_sum / len(self._number_of_results)
|
|
|
|
|
|
- def add_unresponsive_engine(self, engine_name, error_type, suspended=False):
|
|
|
|
|
|
+ def add_unresponsive_engine(self, engine_name: str, error_type: str, suspended: bool = False):
|
|
if engines[engine_name].display_error_messages:
|
|
if engines[engine_name].display_error_messages:
|
|
- self.unresponsive_engines.add((engine_name, error_type, suspended))
|
|
|
|
|
|
+ self.unresponsive_engines.add(UnresponsiveEngine(engine_name, error_type, suspended))
|
|
|
|
|
|
def add_timing(self, engine_name: str, engine_time: float, page_load_time: float):
|
|
def add_timing(self, engine_name: str, engine_time: float, page_load_time: float):
|
|
self.timings.append(Timing(engine_name, total=engine_time, load=page_load_time))
|
|
self.timings.append(Timing(engine_name, total=engine_time, load=page_load_time))
|