@@ -18,10 +18,9 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
1818from flask.ext.babel import gettext
1919import re
2020
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'&$')}
2524
2625name = gettext('Tracker URL remover')
2726description = gettext('Remove trackers arguments from the returned URL')
@@ -29,12 +28,17 @@ default_on = True
2928
3029
3130def on_result(request, ctx):
32− url = ctx['result']['url']
31+ splited_url = ctx['result']['url'].split('?')
3332
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]
3843
39− ctx['result']['url'] = url
4044 return True