Преглед на файлове

[enh] incasesensitive query highlighting

asciimoo преди 11 години
родител
ревизия
cbb397939d
променени са 1 файла, в които са добавени 12 реда и са изтрити 2 реда
  1. 12
    2
      searx/engines/__init__.py

+ 12
- 2
searx/engines/__init__.py Целия файл

25
 from searx import settings
25
 from searx import settings
26
 import ConfigParser
26
 import ConfigParser
27
 import sys
27
 import sys
28
+import re
28
 from datetime import datetime
29
 from datetime import datetime
29
 
30
 
30
 engine_dir = dirname(realpath(__file__))
31
 engine_dir = dirname(realpath(__file__))
106
     # TODO better html content detection
107
     # TODO better html content detection
107
     if content.find('<') != -1:
108
     if content.find('<') != -1:
108
         return content
109
         return content
109
-    for chunk in query.split():
110
-        content = content.replace(chunk, '<b>{0}</b>'.format(chunk))
110
+
111
+    if content.lower().find(query.lower()) > -1:
112
+        query_regex = '({0})'.format(re.escape(query))
113
+        content = re.sub(query_regex, '<b>\\1</b>', content, flags=re.I)
114
+    else:
115
+        for chunk in query.split():
116
+            if len(chunk) == 1:
117
+                query_regex = '(\W+{0}\W+)'.format(re.escape(chunk))
118
+            else:
119
+                query_regex = '({0})'.format(re.escape(chunk))
120
+            content = re.sub(query_regex, '<b>\\1</b>', content, flags=re.I)
111
 
121
 
112
     return content
122
     return content
113
 
123