|
@@ -26,7 +26,11 @@ from flask import url_for, Response, make_response, redirect
|
26
|
26
|
from flask import send_from_directory
|
27
|
27
|
|
28
|
28
|
from searx import settings, searx_dir
|
29
|
|
-from searx.engines import search, categories, engines, get_engines_stats
|
|
29
|
+from searx.engines import search
|
|
30
|
+from searx.engines import categories
|
|
31
|
+from searx.engines import engines
|
|
32
|
+from searx.engines import get_engines_stats
|
|
33
|
+from searx.engines import engine_shortcuts
|
30
|
34
|
from searx.utils import UnicodeWriter
|
31
|
35
|
from searx.utils import highlight_content, html_to_text
|
32
|
36
|
from searx.languages import language_codes
|
|
@@ -98,17 +102,18 @@ def parse_query(query):
|
98
|
102
|
query_engines = []
|
99
|
103
|
query_parts = query.split()
|
100
|
104
|
|
101
|
|
- if query_parts[0].startswith('-'):
|
102
|
|
- engine_name = query_parts[0][1:].replace('_', ' ')
|
103
|
|
- if engine_name in engines:
|
|
105
|
+ if query_parts[0].startswith('!'):
|
|
106
|
+ prefix = query_parts[0][1:].replace('_', ' ')
|
|
107
|
+ if prefix in engine_shortcuts:
|
104
|
108
|
query_engines.append({'category': 'none',
|
105
|
|
- 'name': query_parts[0][1:]})
|
106
|
|
- elif query_parts[0].startswith('!'):
|
107
|
|
- category_name = query_parts[0][1:].replace('_', ' ')
|
108
|
|
- if category_name in categories:
|
109
|
|
- query_engines.extend({'category': category_name,
|
|
109
|
+ 'name': engine_shortcuts[prefix]})
|
|
110
|
+ elif prefix in engines:
|
|
111
|
+ query_engines.append({'category': 'none',
|
|
112
|
+ 'name': prefix})
|
|
113
|
+ elif prefix in categories:
|
|
114
|
+ query_engines.extend({'category': prefix,
|
110
|
115
|
'name': engine.name}
|
111
|
|
- for engine in categories[category_name])
|
|
116
|
+ for engine in categories[prefix])
|
112
|
117
|
|
113
|
118
|
if len(query_engines):
|
114
|
119
|
query = query.replace(query_parts[0], '', 1).strip()
|