summaryrefslogtreecommitdiff
path: root/searx/webadapter.py
diff options
context:
space:
mode:
authorAlexandre Flament <alex@al-f.net>2020-09-22 16:55:59 +0200
committerAlexandre Flament <alex@al-f.net>2020-09-22 18:59:51 +0200
commit691d12726be1411d8c80895e927293bdcc3e9572 (patch)
tree37007ff7216726d9d5476db285d9c2d8a01d047d /searx/webadapter.py
parenteecfff268913045f957c0fceb2a1caf56f236a1f (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.py33
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)