Pārlūkot izejas kodu

[enh] query parsing improvements - shortcut support

asciimoo 11 gadus atpakaļ
vecāks
revīzija
b57258f98b
1 mainītis faili ar 15 papildinājumiem un 10 dzēšanām
  1. 15
    10
      searx/webapp.py

+ 15
- 10
searx/webapp.py Parādīt failu

26
 from flask import send_from_directory
26
 from flask import send_from_directory
27
 
27
 
28
 from searx import settings, searx_dir
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
 from searx.utils import UnicodeWriter
34
 from searx.utils import UnicodeWriter
31
 from searx.utils import highlight_content, html_to_text
35
 from searx.utils import highlight_content, html_to_text
32
 from searx.languages import language_codes
36
 from searx.languages import language_codes
98
     query_engines = []
102
     query_engines = []
99
     query_parts = query.split()
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
             query_engines.append({'category': 'none',
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
                                   'name': engine.name}
115
                                   'name': engine.name}
111
-                                 for engine in categories[category_name])
116
+                                 for engine in categories[prefix])
112
 
117
 
113
     if len(query_engines):
118
     if len(query_engines):
114
         query = query.replace(query_parts[0], '', 1).strip()
119
         query = query.replace(query_parts[0], '', 1).strip()