From 99435381a84072b110c32004b2fb778af9b96f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Sat, 1 Feb 2020 11:01:17 +0100 Subject: [enh] introduce private engines This PR adds a new setting to engines named `tokens`. It expects a list of tokens which lets searx validate if the request should be accepted or not. --- searx/search.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'searx/search.py') diff --git a/searx/search.py b/searx/search.py index 5c268cc5d..2dcc4c8f7 100644 --- a/searx/search.py +++ b/searx/search.py @@ -407,7 +407,7 @@ def get_search_query_from_webapp(preferences, form): return (SearchQuery(query, query_engines, query_categories, query_lang, query_safesearch, query_pageno, - query_time_range, query_timeout), + query_time_range, query_timeout, preferences), raw_text_query) @@ -459,6 +459,9 @@ class Search(object): engine = engines[selected_engine['name']] + if not search_query.preferences.validate_token(engine): + continue + # skip suspended engines if engine.suspend_end_time >= time(): logger.debug('Engine currently suspended: %s', selected_engine['name']) -- cgit v1.2.3 From bce3830b8dd9322e4e93d0003aa86e03c03e2dca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Fri, 17 Apr 2020 16:31:02 +0200 Subject: [fix] translate engine errors to Occitan when configured --- searx/search.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'searx/search.py') diff --git a/searx/search.py b/searx/search.py index 2dcc4c8f7..661add7ca 100644 --- a/searx/search.py +++ b/searx/search.py @@ -127,11 +127,7 @@ def search_one_offline_request_safe(engine_name, query, request_params, result_c logger.exception('engine {0} : invalid input : {1}'.format(engine_name, e)) except Exception as e: record_offline_engine_stats_on_error(engine, result_container, start_time) - - result_container.add_unresponsive_engine(( - engine_name, - u'{0}: {1}'.format(gettext('unexpected crash'), e), - )) + result_container.add_unresponsive_engine(engine_name, 'unexpected crash', str(e)) logger.exception('engine {0} : exception : {1}'.format(engine_name, e)) @@ -186,24 +182,21 @@ def search_one_http_request_safe(engine_name, query, request_params, result_cont engine.stats['errors'] += 1 if (issubclass(e.__class__, requests.exceptions.Timeout)): - result_container.add_unresponsive_engine((engine_name, gettext('timeout'))) + result_container.add_unresponsive_engine(engine_name, 'timeout') # requests timeout (connect or read) logger.error("engine {0} : HTTP requests timeout" "(search duration : {1} s, timeout: {2} s) : {3}" .format(engine_name, engine_time, timeout_limit, e.__class__.__name__)) requests_exception = True elif (issubclass(e.__class__, requests.exceptions.RequestException)): - result_container.add_unresponsive_engine((engine_name, gettext('request exception'))) + result_container.add_unresponsive_engine(engine_name, 'request exception') # other requests exception logger.exception("engine {0} : requests exception" "(search duration : {1} s, timeout: {2} s) : {3}" .format(engine_name, engine_time, timeout_limit, e)) requests_exception = True else: - result_container.add_unresponsive_engine(( - engine_name, - u'{0}: {1}'.format(gettext('unexpected crash'), e), - )) + result_container.add_unresponsive_engine(engine_name, 'unexpected crash', str(e)) # others errors logger.exception('engine {0} : exception : {1}'.format(engine_name, e)) @@ -238,7 +231,7 @@ def search_multiple_requests(requests, result_container, start_time, timeout_lim remaining_time = max(0.0, timeout_limit - (time() - start_time)) th.join(remaining_time) if th.isAlive(): - result_container.add_unresponsive_engine((th._engine_name, gettext('timeout'))) + result_container.add_unresponsive_engine(th._engine_name, 'timeout') logger.warning('engine timeout: {0}'.format(th._engine_name)) -- cgit v1.2.3