diff options
author | Noémi Ványi <sitbackandwait@gmail.com> | 2019-09-23 17:14:32 +0200 |
---|---|---|
committer | Noémi Ványi <sitbackandwait@gmail.com> | 2019-10-16 15:52:48 +0200 |
commit | a6f20caf32af463b57a026ee7cb7ed6317db6b8b (patch) | |
tree | c180f804d1a80767ab50b7cffb42aa75f9c3806a /searx/engines | |
parent | 2946c5f10695634be1f1266142bec5572139085f (diff) | |
download | searxng-a6f20caf32af463b57a026ee7cb7ed6317db6b8b.tar.gz searxng-a6f20caf32af463b57a026ee7cb7ed6317db6b8b.zip |
add initial support for offline engines && command engine
Diffstat (limited to 'searx/engines')
-rw-r--r-- | searx/engines/__init__.py | 28 | ||||
-rw-r--r-- | searx/engines/soundcloud.py | 2 | ||||
-rw-r--r-- | searx/engines/wolframalpha_noapi.py | 2 |
3 files changed, 18 insertions, 14 deletions
diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py index a10b1ccd9..2585711a8 100644 --- a/searx/engines/__init__.py +++ b/searx/engines/__init__.py @@ -27,7 +27,7 @@ from json import loads from requests import get from searx import settings from searx import logger -from searx.utils import load_module, match_language +from searx.utils import load_module, match_language, get_engine_from_settings logger = logger.getChild('engines') @@ -53,7 +53,8 @@ engine_default_args = {'paging': False, 'disabled': False, 'suspend_end_time': 0, 'continuous_errors': 0, - 'time_range_support': False} + 'time_range_support': False, + 'offline': False} def load_engine(engine_data): @@ -128,14 +129,17 @@ def load_engine(engine_data): engine.stats = { 'result_count': 0, 'search_count': 0, - 'page_load_time': 0, - 'page_load_count': 0, 'engine_time': 0, 'engine_time_count': 0, 'score_count': 0, 'errors': 0 } + if not engine.offline: + engine.stats['page_load_time'] = 0 + engine.stats['page_load_count'] = 0 + + for category_name in engine.categories: categories.setdefault(category_name, []).append(engine) @@ -173,11 +177,6 @@ def get_engines_stats(): results_num = \ engine.stats['result_count'] / float(engine.stats['search_count']) - if engine.stats['page_load_count'] != 0: - load_times = engine.stats['page_load_time'] / float(engine.stats['page_load_count']) # noqa - else: - load_times = 0 - if engine.stats['engine_time_count'] != 0: this_engine_time = engine.stats['engine_time'] / float(engine.stats['engine_time_count']) # noqa else: @@ -189,14 +188,19 @@ def get_engines_stats(): else: score = score_per_result = 0.0 - max_pageload = max(load_times, max_pageload) + if not engine.offline: + load_times = 0 + if engine.stats['page_load_count'] != 0: + load_times = engine.stats['page_load_time'] / float(engine.stats['page_load_count']) # noqa + max_pageload = max(load_times, max_pageload) + pageloads.append({'avg': load_times, 'name': engine.name}) + max_engine_times = max(this_engine_time, max_engine_times) max_results = max(results_num, max_results) max_score = max(score, max_score) max_score_per_result = max(score_per_result, max_score_per_result) max_errors = max(max_errors, engine.stats['errors']) - pageloads.append({'avg': load_times, 'name': engine.name}) engine_times.append({'avg': this_engine_time, 'name': engine.name}) results.append({'avg': results_num, 'name': engine.name}) scores.append({'avg': score, 'name': engine.name}) @@ -255,7 +259,7 @@ def initialize_engines(engine_list): load_engines(engine_list) def engine_init(engine_name, init_fn): - init_fn() + init_fn(get_engine_from_settings(engine_name)) logger.debug('%s engine: Initialized', engine_name) for engine_name, engine in engines.items(): diff --git a/searx/engines/soundcloud.py b/searx/engines/soundcloud.py index 3ba9a7f39..870998545 100644 --- a/searx/engines/soundcloud.py +++ b/searx/engines/soundcloud.py @@ -66,7 +66,7 @@ def get_client_id(): return "" -def init(): +def init(engine_settings=None): global guest_client_id # api-key guest_client_id = get_client_id() diff --git a/searx/engines/wolframalpha_noapi.py b/searx/engines/wolframalpha_noapi.py index 2cbbc5adc..387c9fa17 100644 --- a/searx/engines/wolframalpha_noapi.py +++ b/searx/engines/wolframalpha_noapi.py @@ -55,7 +55,7 @@ def obtain_token(): return token -def init(): +def init(engine_settings=None): obtain_token() |