From 8cc529e9a3976e48676676600379ce43f690dd8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Thu, 22 Mar 2018 11:02:24 +0100 Subject: [PATCH] forward category to engine without highlighting on the ui --- searx/engines/findx.py | 6 +----- searx/query.py | 15 +++++++++++---- searx/search.py | 9 +++++++-- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/searx/engines/findx.py b/searx/engines/findx.py index 30a26402a..db4a1aa5f 100644 --- a/searx/engines/findx.py +++ b/searx/engines/findx.py @@ -33,12 +33,8 @@ type_map = { def request(query, params): - category = 'general' - if 'category' in params and len(params['category']) == 1: - category = params['category'][0] - params['url'] = search_url.format( - category=type_map[category], + category=type_map[params['category']], q=urlencode({ 'q': query, 'page': params['pageno'] diff --git a/searx/query.py b/searx/query.py index 6e5f2e883..f7543e3e1 100644 --- a/searx/query.py +++ b/searx/query.py @@ -107,14 +107,21 @@ class RawTextQuery(object): # check if prefix is equal with engine shortcut if prefix in engine_shortcuts: parse_next = True - self.engines.append({'category': 'none', - 'name': engine_shortcuts[prefix]}) + engine_name = engine_shortcuts[prefix] + if engine_name in engines: + for engine_category in engines[engine_name].categories: + self.engines.append({'category': engine_category, + 'name': engine_name, + 'from_bang': True}) # check if prefix is equal with engine name elif prefix in engines: parse_next = True - self.engines.append({'category': 'none', - 'name': prefix}) + if prefix in engines: + for engine_category in engines[engine_name].categories: + self.engines.append({'category': engine_category, + 'name': engine_name, + 'from_bang': True}) # check if prefix is equal with categorie name elif prefix in categories: diff --git a/searx/search.py b/searx/search.py index b523c2754..945f32197 100644 --- a/searx/search.py +++ b/searx/search.py @@ -258,8 +258,13 @@ def get_search_query_from_webapp(preferences, form): # if engines are calculated from query, # set categories by using that informations if query_engines and raw_text_query.specific: - query_categories = list(set(engine['category'] - for engine in query_engines)) + additional_categories = set() + for engine in query_engines: + if 'from_bang' in engine and engine['from_bang']: + additional_categories.add('none') + else: + additional_categories.add(engine['category']) + query_categories = list(additional_categories) # otherwise, using defined categories to # calculate which engines should be used