on master help sign in
Merge branch 'master' into feature/accessibility
e9d90d0Mathieu Brunot
searx/plugins/tracker_url_remover.py+5−7
@@ -39,16 +39,14 @@ def on_result(request, search, result):
39 return True
39 return True
40 parsed_query = parse_qsl(query)
40 parsed_query = parse_qsl(query)
41
41
42− changed = False
42+ changes = 0
43 for i, (param_name, _) in enumerate(list(parsed_query)):
43 for i, (param_name, _) in enumerate(list(parsed_query)):
44 for reg in regexes:
44 for reg in regexes:
45 if reg.match(param_name):
45 if reg.match(param_name):
46− parsed_query.pop(i)
46+ parsed_query.pop(i - changes)
47− changed = True
47+ changes += 1
48+ result['parsed_url'] = result['parsed_url']._replace(query=urlencode(parsed_query))
49+ result['url'] = urlunparse(result['parsed_url'])
48 break
50 break
49
51
50− if changed:
51− result['parsed_url'] = result['parsed_url']._replace(query=urlencode(parsed_query))
52− result['url'] = urlunparse(result['parsed_url'])
53−
54 return True
52 return True
searx/templates/oscar/results.html+2−2
@@ -22,8 +22,8 @@
22 <span class="result_header text-muted form-inline pull-left suggestion_item">{{ _('Try searching for:') }}</span>
22 <span class="result_header text-muted form-inline pull-left suggestion_item">{{ _('Try searching for:') }}</span>
23 {% for correction in corrections %}
23 {% for correction in corrections %}
24 <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" role="navigation" class="form-inline pull-left suggestion_item">
24 <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" role="navigation" class="form-inline pull-left suggestion_item">
25− <input type="hidden" name="q" value="{{ query_prefix + correction }}">
25+ <input type="hidden" name="q" value="{{ correction.url }}">
26− <button type="submit" class="btn btn-default btn-xs">{{ correction }}</button>
26+ <button type="submit" class="btn btn-default btn-xs">{{ correction.title }}</button>
27 </form>
27 </form>
28 {% endfor %}
28 {% endfor %}
29 </div>
29 </div>
searx/templates/simple/results.html+2−2
@@ -95,13 +95,13 @@
95 {% for correction in corrections %}
95 {% for correction in corrections %}
96 <div class="left">
96 <div class="left">
97 <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" role="navigation">
97 <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" role="navigation">
98− <input type="hidden" name="q" value="{{ correction }}">
98+ <input type="hidden" name="q" value="{{ correction.url }}">
99 <input type="hidden" name="time_range" value="{{ time_range }}">
99 <input type="hidden" name="time_range" value="{{ time_range }}">
100 <input type="hidden" name="language" value="{{ current_language }}">
100 <input type="hidden" name="language" value="{{ current_language }}">
101 <input type="hidden" name="safesearch" value="{{ safesearch }}">
101 <input type="hidden" name="safesearch" value="{{ safesearch }}">
102 <input type="hidden" name="theme" value="{{ theme }}">
102 <input type="hidden" name="theme" value="{{ theme }}">
103 {% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit }}" >{% endif %}
103 {% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit }}" >{% endif %}
104− <input type="submit" value="{{ correction }}">
104+ <input type="submit" value="{{ correction.title }}">
105 </form>
105 </form>
106 </div>
106 </div>
107 {% endfor %}
107 {% endfor %}
searx/webapp.py+7−1
@@ -610,6 +610,12 @@ def index():
610 'title': suggestion
610 'title': suggestion
611 },
611 },
612 result_container.suggestions)
612 result_container.suggestions)
613+
614+ correction_urls = list(map(lambda correction: {
615+ 'url': raw_text_query.changeSearchQuery(correction).getFullQuery(),
616+ 'title': correction
617+ },
618+ result_container.corrections))
613 #
619 #
614 return render(
620 return render(
615 'results.html',
621 'results.html',
@@ -622,7 +628,7 @@ def index():
622 advanced_search=advanced_search,
628 advanced_search=advanced_search,
623 suggestions=suggestion_urls,
629 suggestions=suggestion_urls,
624 answers=result_container.answers,
630 answers=result_container.answers,
625− corrections=result_container.corrections,
631+ corrections=correction_urls,
626 infoboxes=result_container.infoboxes,
632 infoboxes=result_container.infoboxes,
627 paging=result_container.paging,
633 paging=result_container.paging,
628 unresponsive_engines=result_container.unresponsive_engines,
634 unresponsive_engines=result_container.unresponsive_engines,