@@ -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
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):
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('_', ' ')
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)
114+ if query_part[0] == '!':
115+ self.specific = True
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)