Просмотр исходного кода

A bit of cleanup of the code

- regexes in a array
- regexes applied only on the last part of the url
Cqoicebordel 9 лет назад
Родитель
Сommit
e93f5314d7
1 измененных файлов: 14 добавлений и 10 удалений
  1. 14
    10
      searx/plugins/tracker_url_remover.py

+ 14
- 10
searx/plugins/tracker_url_remover.py Просмотреть файл

18
 from flask.ext.babel import gettext
18
 from flask.ext.babel import gettext
19
 import re
19
 import re
20
 
20
 
21
-re1 = re.compile(r'utm_[^&]+&?')
22
-re2 = re.compile(r'(wkey|wemail)[^&]+&?')
23
-re3 = re.compile(r'&$')
24
-re4 = re.compile(r'^\?$')
21
+regexes = {re.compile(r'utm_[^&]+&?'),
22
+           re.compile(r'(wkey|wemail)[^&]+&?'),
23
+           re.compile(r'&$')}
25
 
24
 
26
 name = gettext('Tracker URL remover')
25
 name = gettext('Tracker URL remover')
27
 description = gettext('Remove trackers arguments from the returned URL')
26
 description = gettext('Remove trackers arguments from the returned URL')
29
 
28
 
30
 
29
 
31
 def on_result(request, ctx):
30
 def on_result(request, ctx):
32
-    url = ctx['result']['url']
31
+    splited_url = ctx['result']['url'].split('?')
33
 
32
 
34
-    url = re1.sub('', url)
35
-    url = re2.sub('', url)
36
-    url = re3.sub('', url)
37
-    url = re4.sub('', url)
33
+    if len(splited_url) is not 2:
34
+        return True
35
+
36
+    for reg in regexes:
37
+        splited_url[1] = reg.sub('', splited_url[1])
38
+
39
+    if splited_url[1] == "":
40
+        ctx['result']['url'] = splited_url[0]
41
+    else:
42
+        ctx['result']['url'] = splited_url[0] + '?' + splited_url[1]
38
 
43
 
39
-    ctx['result']['url'] = url
40
     return True
44
     return True