Searxng Frequent Sites
templates/simple/index.html
{% extends "simple/base.html" %}
{% from 'simple/icons.html' import icon_big %}
{% block content %}
<div class="index">
<div class="title"><h1>SearXNG</h1></div>
{% include 'simple/simple_search.html' %}
{% if most_visited_sites %}
<div class="top-sites">
<div class="site-grid" style="margin-top: 33px; max-width: 60%; margin-left: auto; margin-right: auto; display: grid; grid-template-columns: repeat(auto-fill, minmax(40px, 1fr)); gap: 5px;">
{% for site in most_visited_sites %}
<a href="{{ site.url }}" class="site-tile">
<img src="{{ site.favicon }}" alt="{{ site.title }} favicon" width="32">
</a>
{% endfor %}
</div>
</div>
{% endif %}
</div>
{% endblock %}
/searx/preferences.py:482
self.key_value_settings['custom_text'] = StringSetting(
'', locked=is_locked('custom_text')
)
/templates/simple/preferences.html
{{- tab_header('maintab', 'quicklinks', _('Quick Links')) -}}
{%- include 'simple/preferences/quicklinks.html' -%}
{{- tab_footer() -}}
/searx/webapp.py
def get_most_visited_sites(request, limit=50):
sites = []
custom_text = request.preferences.get_value('custom_text')
print(f"Cookie value: {custom_text}") # Debugging: check the cookie value
if custom_text:
# Split the cookie value by newlines instead of commas
for entry in custom_text.splitlines():
parts = entry.strip().split('|')
if len(parts) == 3:
sites.append({
"url": parts[0],
"title": parts[1],
"favicon": parts[2]
})
print(f"Parsed sites: {sites}") # Debugging: check the parsed list
return sites[:limit]
/searx/webapp.py
@app.route('/', methods=['GET', 'POST'])
def index():
"""Render index page."""
# redirect to search if there's a query in the request
if request.form.get('q'):
query = ('?' + request.query_string.decode()) if request.query_string else ''
return redirect(url_for('search') + query, 308)
most_visited_sites = get_most_visited_sites(request, limit=50)
return render(
# fmt: off
'index.html',
selected_categories=get_selected_categories(request.preferences, request.form),
current_locale = request.preferences.get_value("locale"),
most_visited_sites=most_visited_sites
# fmt: on
)
/searx/webapp.py:404
kwargs['custom_text'] = request.preferences.get_value('custom_text')
/searx/preferences.py:478
self.key_value_settings['custom_text'] = StringSetting(
'', locked=is_locked('custom_text')
)