[fix] opensearch.xml URL contains method and autocomplete parameters
When the user add searx as a search engine, the browser loads the /opensearch.xml URL without the cookies. Without the query parameters, the user preferences are ignored (method and autocomplete). In addition, opensearch.xml is modified to support automatic updates, see https://developer.mozilla.org/en-US/docs/Web/OpenSearch
This commit is contained in:
		
							parent
							
								
									584760cf54
								
							
						
					
					
						commit
						bfdad7bc0f
					
				| @ -15,4 +15,8 @@ | ||||
|   {% if autocomplete %} | ||||
|     <Url rel="suggestions" type="application/x-suggestions+json" template="{{ host }}autocompleter?q={searchTerms}"/> | ||||
|   {% endif %} | ||||
| 
 | ||||
|   <Url type="application/opensearchdescription+xml" | ||||
|       rel="self" | ||||
|       template="{{ opensearch_url }}" /> | ||||
| </OpenSearchDescription> | ||||
|  | ||||
| @ -9,7 +9,7 @@ | ||||
|     <opensearch:totalResults>{{ number_of_results }}</opensearch:totalResults> | ||||
|     <opensearch:startIndex>1</opensearch:startIndex> | ||||
|     <opensearch:itemsPerPage>{{ number_of_results }}</opensearch:itemsPerPage> | ||||
|     <atom:link rel="search" type="application/opensearchdescription+xml" href="{{ base_url }}opensearch.xml"/> | ||||
|     <atom:link rel="search" type="application/opensearchdescription+xml" href="{{ opensearch_url }}"/> | ||||
|     <opensearch:Query role="request" searchTerms="{{ q|e }}" startPage="1" /> | ||||
|     {% if error_message %} | ||||
|     <item> | ||||
|  | ||||
| @ -22,7 +22,7 @@ | ||||
|         {% endblock %} | ||||
|         {% block meta %}{% endblock %} | ||||
|         {% block head %} | ||||
|         <link title="{{ instance_name }}" type="application/opensearchdescription+xml" rel="search" href="{{ url_for('opensearch') }}"/> | ||||
|         <link title="{{ instance_name }}" type="application/opensearchdescription+xml" rel="search" href="{{ opensearch_url }}"/> | ||||
|         {% endblock %} | ||||
|         <script type="text/javascript"> | ||||
|             searx = {}; | ||||
|  | ||||
| @ -17,7 +17,7 @@ | ||||
|         {% endblock %} | ||||
|         {% block meta %}{% endblock %} | ||||
|         {% block head %} | ||||
|         <link title="{{ instance_name }}" type="application/opensearchdescription+xml" rel="search" href="{{ url_for('opensearch') }}"/> | ||||
|         <link title="{{ instance_name }}" type="application/opensearchdescription+xml" rel="search" href="{{ opensearch_url }}"/> | ||||
|         {% endblock %} | ||||
|     </head> | ||||
|     <body class="{{ endpoint }}_endpoint" > | ||||
|  | ||||
| @ -37,7 +37,7 @@ | ||||
|     {% block head %} | ||||
|     {% endblock %} | ||||
| 
 | ||||
|     <link title="{{ instance_name }}" type="application/opensearchdescription+xml" rel="search" href="{{ url_for('opensearch') }}"/> | ||||
|     <link title="{{ instance_name }}" type="application/opensearchdescription+xml" rel="search" href="{{ opensearch_url }}"/> | ||||
|     <noscript> | ||||
|         <style type="text/css"> | ||||
|             .tab-content > .active_if_nojs, .active_if_nojs {display: block !important; visibility: visible !important;} | ||||
|  | ||||
| @ -29,7 +29,7 @@ | ||||
|           data-no-item-found="{{ _('No item found') }}"></script> | ||||
|   <!--<![endif]--> | ||||
|   {% block head %} | ||||
|   <link title="{{ instance_name }}" type="application/opensearchdescription+xml" rel="search" href="{{ url_for('opensearch') }}"/> | ||||
|   <link title="{{ instance_name }}" type="application/opensearchdescription+xml" rel="search" href="{{ opensearch_url }}"/> | ||||
|   {% endblock %} | ||||
|   <link rel="shortcut icon" href="{{ url_for('static', filename='img/favicon.png') }}" /> | ||||
| </head> | ||||
|  | ||||
| @ -386,6 +386,9 @@ def render(template_name, override_theme=None, **kwargs): | ||||
| 
 | ||||
|     kwargs['proxify'] = proxify if settings.get('result_proxy', {}).get('url') else None | ||||
| 
 | ||||
|     kwargs['opensearch_url'] = url_for('opensearch') + '?' \ | ||||
|         + urlencode({'method': kwargs['method'], 'autocomplete': kwargs['autocomplete']}) | ||||
| 
 | ||||
|     kwargs['get_result_template'] = get_result_template | ||||
| 
 | ||||
|     kwargs['theme'] = get_current_theme_name(override=override_theme) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Alexandre Flament
						Alexandre Flament