From 691d12726be1411d8c80895e927293bdcc3e9572 Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Tue, 22 Sep 2020 16:55:59 +0200 Subject: [mod] check the engine tokens in searx/webadapter.py instead of searx/search.py --- searx/webadapter.py | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) (limited to 'searx/webadapter.py') diff --git a/searx/webadapter.py b/searx/webadapter.py index 0567c8d34..667d44c86 100644 --- a/searx/webadapter.py +++ b/searx/webadapter.py @@ -11,6 +11,31 @@ def deduplicate_engineref_list(engineref_list): return engineref_dict.values() +def validate_engineref_list(engineref_list, preferences): + """ + Validate query_engines according to the preferences + Returns: + list of existing engines with a validated token + list of unknown engine + list of engine with invalid token according to the preferences + """ + valid = [] + unknown = [] + no_token = [] + for engineref in engineref_list: + if engineref.name not in engines: + unknown.append(engineref) + continue + + engine = engines[engineref.name] + if not preferences.validate_token(engine): + no_token.append(engineref) + continue + + valid.append(engineref) + return valid, unknown, no_token + + def get_search_query_from_webapp(preferences, form): # no text for the query ? if not form.get('q'): @@ -152,10 +177,14 @@ def get_search_query_from_webapp(preferences, form): if (engine.name, categ) not in disabled_engines) query_engineref_list = deduplicate_engineref_list(query_engineref_list) + query_engineref_list, query_engineref_list_unknown, query_engineref_list_notoken =\ + validate_engineref_list(query_engineref_list, preferences) external_bang = raw_text_query.external_bang return (SearchQuery(query, query_engineref_list, query_categories, query_lang, query_safesearch, query_pageno, - query_time_range, query_timeout, preferences, + query_time_range, query_timeout, external_bang=external_bang), - raw_text_query) + raw_text_query, + query_engineref_list_unknown, + query_engineref_list_notoken) -- cgit v1.2.3