mirror of
				https://github.com/searxng/searxng.git
				synced 2025-11-04 03:27:06 -05:00 
			
		
		
		
	[enh] add result proxy support - #707
This commit is contained in:
		
							parent
							
								
									19a6ca0b68
								
							
						
					
					
						commit
						1be6e72d51
					
				@ -18,6 +18,12 @@ ui:
 | 
			
		||||
    default_theme : oscar # ui theme
 | 
			
		||||
    default_locale : "" # Default interface locale - leave blank to detect from browser information or use codes from the 'locales' config section
 | 
			
		||||
 | 
			
		||||
# searx supports result proxification using an external service: https://github.com/asciimoo/morty
 | 
			
		||||
# uncomment below section if you have running morty proxy
 | 
			
		||||
#result_proxy:
 | 
			
		||||
#    url : http://127.0.0.1:3000/
 | 
			
		||||
#    key : your_morty_proxy_key
 | 
			
		||||
 | 
			
		||||
outgoing: # communication with search engines
 | 
			
		||||
    request_timeout : 2.0 # seconds
 | 
			
		||||
    useragent_suffix : "" # suffix of searx_useragent, could contain informations like an email address to the administrator
 | 
			
		||||
 | 
			
		||||
@ -33,6 +33,9 @@
 | 
			
		||||
        <span class="label label-default">{{ engine }}</span>
 | 
			
		||||
    {% endfor %}
 | 
			
		||||
    <small>{{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info") }}</small>
 | 
			
		||||
    {% if proxify %}
 | 
			
		||||
    <small>{{ result_link(proxify(result.url), icon('sort') + _('proxied'), "text-info") }}</small>
 | 
			
		||||
    {% endif %}
 | 
			
		||||
</div>
 | 
			
		||||
    <div class="text-muted"><small>{{ result.pretty_url }}</small></div>
 | 
			
		||||
{%- endmacro %}
 | 
			
		||||
@ -44,6 +47,9 @@
 | 
			
		||||
        <span class="label label-default">{{ engine }}</span>
 | 
			
		||||
    {% endfor %}
 | 
			
		||||
    <small>{{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info") }}</small>
 | 
			
		||||
    {% if proxify %}
 | 
			
		||||
    <small>{{ result_link(proxify(result.url), icon('sort') + _('proxied'), "text-info") }}</small>
 | 
			
		||||
    {% endif %}
 | 
			
		||||
    <div class="text-muted"><small>{{ result.pretty_url }}</small></div>
 | 
			
		||||
{%- endmacro %}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -243,6 +243,20 @@ def url_for_theme(endpoint, override_theme=None, **values):
 | 
			
		||||
    return url_for(endpoint, **values)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def proxify(url):
 | 
			
		||||
    if url.startswith('//'):
 | 
			
		||||
        url = 'https:' + url
 | 
			
		||||
 | 
			
		||||
    if not settings.get('result_proxy'):
 | 
			
		||||
        return url
 | 
			
		||||
 | 
			
		||||
    h = hmac.new(settings['result_proxy']['key'], url, hashlib.sha256).hexdigest()
 | 
			
		||||
 | 
			
		||||
    return '{0}?{1}'.format(settings['result_proxy']['url'],
 | 
			
		||||
                            urlencode(dict(mortyurl=url.encode('utf-8'),
 | 
			
		||||
                                           mortyhash=h)))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def image_proxify(url):
 | 
			
		||||
 | 
			
		||||
    if url.startswith('//'):
 | 
			
		||||
@ -310,6 +324,8 @@ def render(template_name, override_theme=None, **kwargs):
 | 
			
		||||
 | 
			
		||||
    kwargs['image_proxify'] = image_proxify
 | 
			
		||||
 | 
			
		||||
    kwargs['proxify'] = proxify if settings.get('result_proxy') else None
 | 
			
		||||
 | 
			
		||||
    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