on master help sign in
Add non exclusif bang
96c4d52Cqoicebordel
searx/query.py+5−1
@@ -38,6 +38,7 @@ class Query(object):
38 self.query_parts = []
38 self.query_parts = []
39 self.engines = []
39 self.engines = []
40 self.languages = []
40 self.languages = []
41+ self.specific = False
41
42
42 # parse query, if tags are set, which
43 # parse query, if tags are set, which
43 # change the serch engine or search-language
44 # change the serch engine or search-language
@@ -83,7 +84,7 @@ class Query(object):
83 break
84 break
84
85
85 # this force a engine or category
86 # this force a engine or category
86− if query_part[0] == '!':
87+ if query_part[0] == '!' or query_part[0] == '?':
87 prefix = query_part[1:].replace('_', ' ')
88 prefix = query_part[1:].replace('_', ' ')
88
89
89 # check if prefix is equal with engine shortcut
90 # check if prefix is equal with engine shortcut
@@ -110,6 +111,9 @@ class Query(object):
110 for engine in categories[prefix]
111 for engine in categories[prefix]
111 if engine not in self.blocked_engines)
112 if engine not in self.blocked_engines)
112
113
114+ if query_part[0] == '!':
115+ self.specific = True
116+
113 # append query part to query_part list
117 # append query part to query_part list
114 self.query_parts.append(query_part)
118 self.query_parts.append(query_part)
115
119
searx/search.py+1−1
@@ -371,7 +371,7 @@ class Search(object):
371
371
372 # if engines are calculated from query,
372 # if engines are calculated from query,
373 # set categories by using that informations
373 # set categories by using that informations
374− if self.engines:
374+ if self.engines and query_obj.specific:
375 self.categories = list(set(engine['category']
375 self.categories = list(set(engine['category']
376 for engine in self.engines))
376 for engine in self.engines))
377
377