Преглед изворни кода

A bit of cleanup of the code

- regexes in a array
- regexes applied only on the last part of the url
Cqoicebordel пре 9 година
родитељ
комит
e93f5314d7
1 измењених фајлова са 14 додато и 10 уклоњено
  1. 14
    10
      searx/plugins/tracker_url_remover.py

+ 14
- 10
searx/plugins/tracker_url_remover.py Прегледај датотеку

@@ -18,10 +18,9 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
18 18
 from flask.ext.babel import gettext
19 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 25
 name = gettext('Tracker URL remover')
27 26
 description = gettext('Remove trackers arguments from the returned URL')
@@ -29,12 +28,17 @@ default_on = True
29 28
 
30 29
 
31 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 44
     return True