diff options
author | Alexandre Flament <alex@al-f.net> | 2020-09-22 16:55:59 +0200 |
---|---|---|
committer | Alexandre Flament <alex@al-f.net> | 2020-09-22 18:59:51 +0200 |
commit | 691d12726be1411d8c80895e927293bdcc3e9572 (patch) | |
tree | 37007ff7216726d9d5476db285d9c2d8a01d047d /searx/webadapter.py | |
parent | eecfff268913045f957c0fceb2a1caf56f236a1f (diff) |
[mod] check the engine tokens in searx/webadapter.py instead of searx/search.py
Diffstat (limited to 'searx/webadapter.py')
-rw-r--r-- | searx/webadapter.py | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/searx/webadapter.py b/searx/webadapter.py index 0567c8d3..667d44c8 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) |