Browse Source

add display_error_messages option to engine settings

A new option is added to engines to hide error messages from users. It
is called `display_error_messages` and by default it is set to `True`.
If it is set to `False` error messages do not show up on the UI.

Keep in mind that engines are still suspended if needed regardless of
this setting.

Closes #1828
Noémi Ványi 5 years ago
parent
commit
e3282748d0

+ 4 - 0
docs/admin/engines.rst

@@ -26,6 +26,8 @@ Safe search   **SS**
 Weigth        **W**
 Weigth        **W**
 ------------- ----------- ---------------------------------
 ------------- ----------- ---------------------------------
 Disabled      **D**
 Disabled      **D**
+------------- ----------- ---------------------------------
+Show errors   **DE**
 ============= =========== =================================
 ============= =========== =================================
 
 
 Configuration defaults (at built time):
 Configuration defaults (at built time):
@@ -51,6 +53,7 @@ Configuration defaults (at built time):
         - O
         - O
 	- W
 	- W
 	- D
 	- D
+	- DE
 
 
       {% for name, mod in engines.items() %}
       {% for name, mod in engines.items() %}
 
 
@@ -67,5 +70,6 @@ Configuration defaults (at built time):
         - {{(mod.offline and "y") or ""}}
         - {{(mod.offline and "y") or ""}}
         - {{mod.weight or 1 }}
         - {{mod.weight or 1 }}
         - {{(mod.disabled and "y") or ""}}
         - {{(mod.disabled and "y") or ""}}
+        - {{(mod.display_error_messages and "y") or ""}}
 
 
      {% endfor %}
      {% endfor %}

+ 3 - 0
docs/admin/settings.rst

@@ -175,6 +175,9 @@ Engine settings
 ``weigth`` : default ``1``
 ``weigth`` : default ``1``
   Weighting of the results of this engine.
   Weighting of the results of this engine.
 
 
+``display_error_messages`` : default ``True``
+  When an engine returns an error, the message is displayed on the user interface.
+
 .. note::
 .. note::
 
 
    A few more options are possible, but they are pretty specific to some
    A few more options are possible, but they are pretty specific to some

+ 1 - 0
docs/dev/engine_overview.rst

@@ -57,6 +57,7 @@ engine                  string      name of searx-engine
                                     (filename without ``.py``)
                                     (filename without ``.py``)
 shortcut                string      shortcut of search-engine
 shortcut                string      shortcut of search-engine
 timeout                 string      specific timeout for search-engine
 timeout                 string      specific timeout for search-engine
+display_error_messages  boolean     display error messages on the web UI
 ======================= =========== ===========================================
 ======================= =========== ===========================================
 
 
 
 

+ 1 - 0
searx/engines/__init__.py

@@ -55,6 +55,7 @@ engine_default_args = {'paging': False,
                        'continuous_errors': 0,
                        'continuous_errors': 0,
                        'time_range_support': False,
                        'time_range_support': False,
                        'offline': False,
                        'offline': False,
+                       'display_error_messages': True,
                        'tokens': []}
                        'tokens': []}
 
 
 
 

+ 2 - 1
searx/results.py

@@ -346,7 +346,8 @@ class ResultContainer(object):
         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, error_message=None):
     def add_unresponsive_engine(self, engine_name, error_type, error_message=None):
-        self.unresponsive_engines.add((engine_name, error_type, error_message))
+        if engines[engine_name].display_error_messages:
+            self.unresponsive_engines.add((engine_name, error_type, error_message))
 
 
     def add_timing(self, engine_name, engine_time, page_load_time):
     def add_timing(self, engine_name, engine_time, page_load_time):
         self.timings.append({
         self.timings.append({