Browse Source

[enh] admin configurable suspend time of errored engines - closes #1266

Adam Tauber 6 years ago
parent
commit
f7bb45e891
3 changed files with 8 additions and 3 deletions
  1. 3 1
      searx/preferences.py
  2. 2 1
      searx/search.py
  3. 3 1
      searx/settings.yml

+ 3 - 1
searx/preferences.py

@@ -264,7 +264,9 @@ class Preferences(object):
                                                                                 'False': False,
                                                                                 'True': True}),
                                    'doi_resolver': MultipleChoiceSetting(['oadoi.org'], choices=DOI_RESOLVERS),
-                                   'oscar-style': EnumStringSetting(settings['ui'].get('theme_args', {}).get('oscar_style', 'logicodev'), choices=['', 'logicodev', 'logicodev-dark', 'pointhi']),
+                                   'oscar-style': EnumStringSetting(
+                                       settings['ui'].get('theme_args', {}).get('oscar_style', 'logicodev'),
+                                       choices=['', 'logicodev', 'logicodev-dark', 'pointhi']),
                                    }
 
         self.engines = EnginesSetting('engines', choices=engines)

+ 2 - 1
searx/search.py

@@ -147,7 +147,8 @@ def search_one_request_safe(engine_name, query, request_params, result_container
         if requests_exception:
             # update continuous_errors / suspend_end_time
             engine.continuous_errors += 1
-            engine.suspend_end_time = time() + min(60, engine.continuous_errors)
+            engine.suspend_end_time = time() + min(settings['search']['max_ban_time_on_fail'],
+                                                   engine.continuous_errors*settings['search']['ban_time_on_fail'])
         else:
             # no HTTP error (perhaps an engine error)
             # anyway, reset the suspend variables

+ 3 - 1
searx/settings.yml

@@ -6,6 +6,8 @@ search:
     safe_search : 0 # Filter results. 0: None, 1: Moderate, 2: Strict
     autocomplete : "" # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "startpage", "wikipedia" - leave blank to turn it off by default
     language : "en-US"
+    ban_time_on_fail : 5 # ban time in seconds after engine errors
+    max_ban_time_on_fail : 120 # max ban time in seconds after engine errors
 
 server:
     port : 8888
@@ -21,7 +23,7 @@ ui:
     default_theme : oscar # ui theme
     default_locale : "" # Default interface locale - leave blank to detect from browser information or use codes from the 'locales' config section
     theme_args :
-        oscar_style : logicodev-dark # default style of oscar
+        oscar_style : logicodev # default style of oscar
 
 # searx supports result proxification using an external service: https://github.com/asciimoo/morty
 # uncomment below section if you have running morty proxy