on master help sign in
Suggestions: use RawTextQuery to make the suggestions URLs. Update all themes accordingly.
commitc7220b40ead8c53b21e1533d23ffff8ae3b831bd authorDalf <alex@al-f.net> dateTue 16 Jul 2019, 16:27 (7 years ago) parentddee486
8 files changed+25−14
searx/query.py+1 searx/search.py+3−2 searx/templates/courgette/results.html+2−2 searx/templates/legacy/results.html+2−2 searx/templates/oscar/results.html+2−2 searx/templates/simple/results.html+2−2 searx/webapp.py+12−3 utils/standalone_searx.py+1−1
searx/query.py+1
@@ -145,6 +145,7 @@ class RawTextQuery(object):
145145 self.query_parts[-1] = search_query
146146 else:
147147 self.query_parts.append(search_query)
148+ return self
148149
149150 def getSearchQuery(self):
150151 if len(self.query_parts):
searx/search.py+3−2
@@ -319,8 +319,9 @@ def get_search_query_from_webapp(preferences, form):
319319 for engine in categories[categ]
320320 if (engine.name, categ) not in disabled_engines)
321321
322− return SearchQuery(query, query_engines, query_categories,
323− query_lang, query_safesearch, query_pageno, query_time_range)
322+ return (SearchQuery(query, query_engines, query_categories,
323+ query_lang, query_safesearch, query_pageno, query_time_range),
324+ raw_text_query)
324325
325326
326327class Search(object):
searx/templates/courgette/results.html+2−2
@@ -42,8 +42,8 @@
4242 <div id="suggestions"><span>{{ _('Suggestions') }}</span>
4343 {% for suggestion in suggestions %}
4444 <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
45− <input type="hidden" name="q" value="{{ suggestion }}">
46− <input type="submit" value="{{ suggestion }}" />
45+ <input type="hidden" name="q" value="{{ suggestion.url }}">
46+ <input type="submit" value="{{ suggestion.title }}" />
4747 </form>
4848 {% endfor %}
4949 </div>
searx/templates/legacy/results.html+2−2
@@ -44,8 +44,8 @@
4444 {% set first = true %}
4545 {% for suggestion in suggestions %}
4646 {% if not first %} &bull; {% endif %}<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
47− <input type="hidden" name="q" value="{{ suggestion }}">
48− <input type="submit" class="suggestion" value="{{ suggestion }}" />
47+ <input type="hidden" name="q" value="{{ suggestion.url }}">
48+ <input type="submit" class="suggestion" value="{{ suggestion.title }}" />
4949 </form>
5050 {% set first = false %}
5151 {% endfor %}
searx/templates/oscar/results.html+2−2
@@ -118,8 +118,8 @@
118118 <div class="panel-body">
119119 {% for suggestion in suggestions %}
120120 <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" role="navigation" class="form-inline pull-{% if rtl %}right{% else %}left{% endif %} suggestion_item">
121− <input type="hidden" name="q" value="{{ query_prefix + suggestion }}">
122− <button type="submit" class="btn btn-default btn-xs">{{ suggestion }}</button>
121+ <input type="hidden" name="q" value="{{ suggestion.url }}">
122+ <button type="submit" class="btn btn-default btn-xs">{{ suggestion.title }}</button>
123123 </form>
124124 {% endfor %}
125125 </div>
searx/templates/simple/results.html+2−2
@@ -50,11 +50,11 @@
5050 <div class="wrapper">
5151 {% for suggestion in suggestions %}
5252 <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
53− <input type="hidden" name="q" value="{{ suggestion }}">
53+ <input type="hidden" name="q" value="{{ suggestion.url }}">
5454 <input type="hidden" name="language" value="{{ current_language }}">
5555 <input type="hidden" name="safesearch" value="{{ safesearch }}">
5656 <input type="hidden" name="theme" value="{{ theme }}">
57− <input type="submit" class="suggestion" value="&bull; {{ suggestion }}">
57+ <input type="submit" class="suggestion" value="&bull; {{ suggestion.title }}">
5858 </form>
5959 {% endfor %}
6060 </div>
searx/webapp.py+12−3
@@ -489,9 +489,10 @@ def index():
489489
490490 # search
491491 search_query = None
492+ raw_text_query = None
492493 result_container = None
493494 try:
494− search_query = get_search_query_from_webapp(request.preferences, request.form)
495+ search_query, raw_text_query = get_search_query_from_webapp(request.preferences, request.form)
495496 # search = Search(search_query) # without plugins
496497 search = SearchWithPlugins(search_query, request.user_plugins, request)
497498 result_container = search.search()
@@ -580,17 +581,25 @@ def index():
580581 )
581582 return Response(response_rss, mimetype='text/xml')
582583
584+ # HTML output format
585+
586+ # suggestions: use RawTextQuery to get the suggestion URLs with the same bang
587+ suggestion_urls = map(lambda suggestion: {
588+ 'url': raw_text_query.changeSearchQuery(suggestion).getFullQuery(),
589+ 'title': suggestion
590+ },
591+ result_container.suggestions)
592+ #
583593 return render(
584594 'results.html',
585595 results=results,
586596 q=request.form['q'],
587− query_prefix=u''.join((request.form['q']).rsplit(search_query.query.decode('utf-8'), 1)),
588597 selected_categories=search_query.categories,
589598 pageno=search_query.pageno,
590599 time_range=search_query.time_range,
591600 number_of_results=format_decimal(number_of_results),
592601 advanced_search=advanced_search,
593− suggestions=result_container.suggestions,
602+ suggestions=suggestion_urls,
594603 answers=result_container.answers,
595604 corrections=result_container.corrections,
596605 infoboxes=result_container.infoboxes,
utils/standalone_searx.py+1−1
@@ -64,7 +64,7 @@ form = {
6464preferences = searx.preferences.Preferences(['oscar'], searx.engines.categories.keys(), searx.engines.engines, [])
6565preferences.key_value_settings['safesearch'].parse(args.safesearch)
6666
67−search_query = searx.search.get_search_query_from_webapp(preferences, form)
67+search_query, raw_text_query = searx.search.get_search_query_from_webapp(preferences, form)
6868search = searx.search.Search(search_query)
6969result_container = search.search()
7070