summaryrefslogtreecommitdiff
path: root/searx
diff options
context:
space:
mode:
Diffstat (limited to 'searx')
-rw-r--r--searx/network/__init__.py12
-rw-r--r--searx/results.py7
-rwxr-xr-xsearx/webapp.py8
3 files changed, 15 insertions, 12 deletions
diff --git a/searx/network/__init__.py b/searx/network/__init__.py
index 981b2261a..587198144 100644
--- a/searx/network/__init__.py
+++ b/searx/network/__init__.py
@@ -44,7 +44,8 @@ def reset_time_for_thread():
def get_time_for_thread():
- return THREADLOCAL.total_time
+ """returns thread's total time or None"""
+ return THREADLOCAL.__dict__.get('total_time')
def set_timeout_for_thread(timeout, start_time=None):
@@ -57,10 +58,11 @@ def set_context_network_name(network_name):
def get_context_network():
- try:
- return THREADLOCAL.network
- except AttributeError:
- return get_network()
+ """If set return thread's network.
+
+ If unset, return value from :py:obj:`get_network`.
+ """
+ return THREADLOCAL.__dict__.get('network') or get_network()
def request(method, url, **kwargs):
diff --git a/searx/results.py b/searx/results.py
index a1c1d8527..d0cb4df3f 100644
--- a/searx/results.py
+++ b/searx/results.py
@@ -371,11 +371,12 @@ class ResultContainer:
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({
+ timing = {
'engine': engines[engine_name].shortcut,
'total': engine_time,
- 'load': page_load_time
- })
+ 'load': page_load_time,
+ }
+ self.timings.append(timing)
def get_timings(self):
return self.timings
diff --git a/searx/webapp.py b/searx/webapp.py
index 0ea82d098..7df12af18 100755
--- a/searx/webapp.py
+++ b/searx/webapp.py
@@ -568,7 +568,7 @@ def post_request(response):
timings_total = ['total_' + str(i) + '_' + v['engine'] +
';dur=' + str(round(v['total'] * 1000, 3)) for i, v in enumerate(timings)]
timings_load = ['load_' + str(i) + '_' + v['engine'] +
- ';dur=' + str(round(v['load'] * 1000, 3)) for i, v in enumerate(timings)]
+ ';dur=' + str(round(v['load'] * 1000, 3)) for i, v in enumerate(timings) if v.get('load')]
timings_all = timings_all + timings_total + timings_load
response.headers.add('Server-Timing', ', '.join(timings_all))
return response
@@ -923,9 +923,9 @@ def preferences():
result_count = int(result_count_sum / float(successful_count)) if successful_count else 0
stats[e.name] = {
- 'time': median if median else None,
- 'rate80': rate80 if rate80 else None,
- 'rate95': rate95 if rate95 else None,
+ 'time': median,
+ 'rate80': rate80,
+ 'rate95': rate95,
'warn_timeout': e.timeout > settings['outgoing']['request_timeout'],
'supports_selected_language': _is_selected_language_supported(e, request.preferences),
'result_count': result_count,