Remove theme choice: move searx/templates/simple to searx/templates

This commit is contained in:
Alexandre Flament 2022-05-08 10:11:00 +02:00
parent 641e39b0df
commit 31bb938126
44 changed files with 69 additions and 89 deletions

View file

@ -290,7 +290,7 @@ class PluginsSetting(BooleanChoices):
class Preferences: class Preferences:
"""Validates and saves preferences to cookies""" """Validates and saves preferences to cookies"""
def __init__(self, themes: List[str], categories: List[str], engines: Dict[str, Engine], plugins: Iterable[Plugin]): def __init__(self, categories: List[str], engines: Dict[str, Engine], plugins: Iterable[Plugin]):
super().__init__() super().__init__()
self.key_value_settings: Dict[str, Setting] = { self.key_value_settings: Dict[str, Setting] = {
@ -340,11 +340,6 @@ class Preferences:
'2': 2 '2': 2
} }
), ),
'theme': EnumStringSetting(
settings['ui']['default_theme'],
locked=is_locked('theme'),
choices=themes
),
'results_on_new_tab': MapSetting( 'results_on_new_tab': MapSetting(
settings['ui']['results_on_new_tab'], settings['ui']['results_on_new_tab'],
locked=is_locked('results_on_new_tab'), locked=is_locked('results_on_new_tab'),

View file

@ -91,8 +91,6 @@ ui:
query_in_title: false query_in_title: false
# infinite_scroll: When true, automatically loads the next page when scrolling to bottom of the current page. # infinite_scroll: When true, automatically loads the next page when scrolling to bottom of the current page.
infinite_scroll: false infinite_scroll: false
# ui theme
default_theme: simple
# center the results ? # center the results ?
center_alignment: false center_alignment: false
# Default interface locale - leave blank to detect from browser information or # Default interface locale - leave blank to detect from browser information or

View file

@ -180,7 +180,6 @@ SCHEMA = {
'static_path': SettingsDirectoryValue(str, os.path.join(searx_dir, 'static')), 'static_path': SettingsDirectoryValue(str, os.path.join(searx_dir, 'static')),
'static_use_hash': SettingsValue(bool, False), 'static_use_hash': SettingsValue(bool, False),
'templates_path': SettingsDirectoryValue(str, os.path.join(searx_dir, 'templates')), 'templates_path': SettingsDirectoryValue(str, os.path.join(searx_dir, 'templates')),
'default_theme': SettingsValue(str, 'simple'),
'default_locale': SettingsValue(str, ''), 'default_locale': SettingsValue(str, ''),
'theme_args': { 'theme_args': {
'simple_style': SettingsValue(SIMPLE_STYLE, 'auto'), 'simple_style': SettingsValue(SIMPLE_STYLE, 'auto'),

View file

@ -145,7 +145,7 @@ module.exports = function (grunt) {
svgo: ['--config', 'svg4web.svgo.js'] svgo: ['--config', 'svg4web.svgo.js']
}, },
files: { files: {
'<%= _templates %>/simple/searxng-wordmark.min.svg': '<%= _brand %>/searxng-wordmark.svg', '<%= _templates %>/searxng-wordmark.min.svg': '<%= _brand %>/searxng-wordmark.svg',
'img/searxng.svg': '<%= _brand %>/searxng.svg', 'img/searxng.svg': '<%= _brand %>/searxng.svg',
'img/img_load_error.svg': '<%= _brand %>/img_load_error.svg' 'img/img_load_error.svg': '<%= _brand %>/img_load_error.svg'
} }
@ -192,7 +192,7 @@ module.exports = function (grunt) {
'heart-outline': 'node_modules/ionicons/dist/svg/heart-outline.svg', 'heart-outline': 'node_modules/ionicons/dist/svg/heart-outline.svg',
'information-circle-outline': 'src/svg/information-circle-outline.svg', 'information-circle-outline': 'src/svg/information-circle-outline.svg',
}, },
dest: '../../../templates/simple/icons.html', dest: '../../../templates/icons.html',
}, },
}, },
}); });

View file

@ -1,4 +1,4 @@
{% extends "simple/base.html" %} {% extends "base.html" %}
{% block content %} {% block content %}
<div class="center"> <div class="center">
<h1>{{ _('Page not found') }}</h1> <h1>{{ _('Page not found') }}</h1>

View file

@ -28,7 +28,7 @@
<link rel="icon" href="{{ url_for('static', filename='img/favicon.svg') }}" type="image/svg+xml"> <link rel="icon" href="{{ url_for('static', filename='img/favicon.svg') }}" type="image/svg+xml">
</head> </head>
<body class="{{ endpoint }}_endpoint" > <body class="{{ endpoint }}_endpoint" >
<main id="main_{{ self._TemplateReference__context.name|replace("simple/", "")|replace(".html", "") }}" class="{{body_class}}"> <main id="main_{{ self._TemplateReference__context.name|replace(".html", "") }}" class="{{body_class}}">
{% if errors %} {% if errors %}
<div class="dialog-error" role="alert"> <div class="dialog-error" role="alert">
<a href="#" class="close" aria-label="close" title="close">×</a> <a href="#" class="close" aria-label="close" title="close">×</a>
@ -41,7 +41,7 @@
{% endif %} {% endif %}
<nav id="links_on_top"> <nav id="links_on_top">
{%- from 'simple/icons.html' import icon_big -%} {%- from 'icons.html' import icon_big -%}
{%- block linkto_about -%} {%- block linkto_about -%}
<a href="{{ url_for('info', pagename='about') }}" class="link_on_top_about">{{ icon_big('information-circle-outline') }}<span>{{ _('About') }}</span></a> <a href="{{ url_for('info', pagename='about') }}" class="link_on_top_about">{{ icon_big('information-circle-outline') }}<span>{{ _('About') }}</span></a>
{%- endblock -%} {%- endblock -%}

View file

@ -1,4 +1,4 @@
{% from 'simple/icons.html' import icon_big %} {% from 'icons.html' import icon_big %}
{%- set category_icons = { {%- set category_icons = {
'general': 'search-outline', 'general': 'search-outline',
'images': 'image-outline', 'images': 'image-outline',

View file

@ -0,0 +1,8 @@
{% extends "base.html" %}
{% from 'icons.html' import icon_big %}
{% block content %}
<div class="index">
<div class="title"><h1>SearXNG</h1></div>
{% include 'simple_search.html' %}
</div>
{% endblock %}

View file

@ -1,4 +1,4 @@
{% extends 'simple/page_with_header.html' %} {% extends 'page_with_header.html' %}
{% block title %}{{ active_page.title }} - {% endblock %} {% block title %}{{ active_page.title }} - {% endblock %}
{% block linkto_about %}{% endblock %} {% block linkto_about %}{% endblock %}
{% block linkto_donate %}{% endblock %} {% block linkto_donate %}{% endblock %}

View file

@ -1,4 +1,4 @@
{% from 'simple/icons.html' import icon_small %} {% from 'icons.html' import icon_small %}
<!-- Draw favicon --> <!-- Draw favicon -->
{% macro draw_favicon(favicon) -%} {% macro draw_favicon(favicon) -%}

View file

@ -1,4 +1,4 @@
{% from 'simple/icons.html' import icon %} {% from 'icons.html' import icon %}
<div class="alert alert-info fade in" role="alert"> <div class="alert alert-info fade in" role="alert">
<strong class="lead">{{ icon('info-sign') }} {{ _('Information!') }}</strong> <strong class="lead">{{ icon('info-sign') }} {{ _('Information!') }}</strong>
{{ _('currently, there are no cookies defined.') }} {{ _('currently, there are no cookies defined.') }}

View file

@ -1,4 +1,4 @@
{% from 'simple/icons.html' import icon_big %} {% from 'icons.html' import icon_big %}
{% if unresponsive_engines %} {% if unresponsive_engines %}
<div class="dialog-error" role="alert"> <div class="dialog-error" role="alert">
{{ icon_big('warning') }} {{ icon_big('warning') }}

View file

@ -1,5 +1,5 @@
{% set body_class = "page_with_header" %} {% set body_class = "page_with_header" %}
{% extends "simple/base.html" %} {% extends "base.html" %}
{% block header %} {% block header %}
<a href="{{ url_for('index') }}"><img class="logo" src="{{ url_for('static', filename='img/searxng.png') }}" alt="SearXNG"></a> <a href="{{ url_for('index') }}"><img class="logo" src="{{ url_for('static', filename='img/searxng.png') }}" alt="SearXNG"></a>
{% endblock %} {% endblock %}

View file

@ -1,7 +1,7 @@
{% from 'simple/macros.html' import tabs_open, tabs_close, tab_header, tab_footer, checkbox_onoff, checkbox %} {% from 'macros.html' import tabs_open, tabs_close, tab_header, tab_footer, checkbox_onoff, checkbox %}
{% from 'simple/icons.html' import icon_big %} {% from 'icons.html' import icon_big %}
{% extends "simple/page_with_header.html" %} {% extends "page_with_header.html" %}
{%- macro plugin_preferences(section) -%} {%- macro plugin_preferences(section) -%}
{%- for plugin in plugins -%} {%- for plugin in plugins -%}
@ -107,7 +107,7 @@
<fieldset> <fieldset>
<legend>{{ _('Default categories') }}</legend> <legend>{{ _('Default categories') }}</legend>
{% set display_tooltip = false %} {% set display_tooltip = false %}
{% include 'simple/categories.html' %} {% include 'categories.html' %}
</fieldset> </fieldset>
{% endif %} {% endif %}
{% if 'language' not in locked_preferences %} {% if 'language' not in locked_preferences %}
@ -191,17 +191,6 @@
</fieldset> </fieldset>
{% endif %} {% endif %}
{% if 'theme' not in locked_preferences %} {% if 'theme' not in locked_preferences %}
<fieldset>
<legend id="pref_theme">{{ _('Theme') }}</legend>
<p class="value">
<select name="theme" aria-labelledby="pref_theme">
{%- for name in themes -%}
<option value="{{ name }}" {% if name == theme %}selected="selected"{% endif %}>{{ name }}</option>
{%- endfor -%}
</select>
</p>
<div class="description">{{ _('Change SearXNG layout') }}</div>
</fieldset>
<fieldset> <fieldset>
<legend id="pref_simple_style">{{ _('Theme style') }}</legend> <legend id="pref_simple_style">{{ _('Theme style') }}</legend>
<p class="value"> <p class="value">
@ -409,7 +398,7 @@
{% endfor %} {% endfor %}
</table> </table>
{% else %} {% else %}
{% include 'simple/messages/no_cookies.html' %} {% include 'messages/no_cookies.html' %}
{% endif %} {% endif %}
<h4>{{ _('Search URL of the currently saved preferences') }} :</h4> <h4>{{ _('Search URL of the currently saved preferences') }} :</h4>
<div class="selectable_url"> <div class="selectable_url">

View file

@ -1,4 +1,4 @@
{% from 'simple/macros.html' import result_header, result_sub_header, result_sub_footer, result_footer with context %} {% from 'macros.html' import result_header, result_sub_header, result_sub_footer, result_footer with context %}
{{ result_header(result, favicons, image_proxify) -}} {{ result_header(result, favicons, image_proxify) -}}
{{- result_sub_header(result) -}} {{- result_sub_header(result) -}}

View file

@ -1,4 +1,4 @@
{% from 'simple/macros.html' import result_header, result_sub_header, result_sub_footer, result_footer with context %} {% from 'macros.html' import result_header, result_sub_header, result_sub_footer, result_footer with context %}
{{ result_header(result, favicons, image_proxify) -}} {{ result_header(result, favicons, image_proxify) -}}
{{- result_sub_header(result) -}} {{- result_sub_header(result) -}}

View file

@ -1,5 +1,5 @@
{% from 'simple/macros.html' import result_header, result_sub_header, result_sub_footer, result_footer with context %} {% from 'macros.html' import result_header, result_sub_header, result_sub_footer, result_footer with context %}
{% from 'simple/icons.html' import icon_small %} {% from 'icons.html' import icon_small %}
{{ result_header(result, favicons, image_proxify) -}} {{ result_header(result, favicons, image_proxify) -}}
{{- result_sub_header(result) -}} {{- result_sub_header(result) -}}

View file

@ -0,0 +1,14 @@
{% from 'simple/macros.html' import result_header, result_sub_header, result_sub_footer, result_footer, result_footer_rtl with context %}
{{ result_header(result, favicons, image_proxify) -}}
{{- result_sub_header(result) -}}
{% if result.price %}<div class="result_price">{{ result.price }}</div></br>{% endif %}
{% if result.shipping %}<div class="result_shipping">{{ result.shipping }}</div></br>{% endif %}
{% if result.source_country %}<div class="result_source_country">{{ result.source_country }}</div></br>{% endif %}
{%- if result.content %}
<p class="content">
{{ result.content }}
</p>
{% endif -%}
{{- result_sub_footer(result, proxify) -}}
{{- result_footer(result) }}

View file

@ -1,4 +1,4 @@
{% from 'simple/macros.html' import result_header, result_sub_header, result_sub_footer, result_footer, result_link with context %} {% from 'macros.html' import result_header, result_sub_header, result_sub_footer, result_footer, result_link with context %}
{{ result_header(result, favicons, image_proxify) -}} {{ result_header(result, favicons, image_proxify) -}}
{{- result_sub_header(result) -}} {{- result_sub_header(result) -}}

View file

@ -1,4 +1,4 @@
{% from 'simple/macros.html' import result_header, result_sub_header, result_sub_footer, result_footer with context %} {% from 'macros.html' import result_header, result_sub_header, result_sub_footer, result_footer with context %}
{{ result_header(result, favicons, image_proxify) }} {{ result_header(result, favicons, image_proxify) }}
{{ result_sub_header(result) }} {{ result_sub_header(result) }}

View file

@ -1,5 +1,5 @@
{% extends "simple/base.html" %} {% extends "base.html" %}
{% from 'simple/icons.html' import icon, icon_big, icon_small %} {% from 'icons.html' import icon, icon_big, icon_small %}
{% macro engine_data_form(engine_data) -%} {% macro engine_data_form(engine_data) -%}
{% for engine_name, kv_data in engine_data.items() %} {% for engine_name, kv_data in engine_data.items() %}
{% for k, v in kv_data.items() %} {% for k, v in kv_data.items() %}
@ -10,7 +10,7 @@
{% block title %}{% if query_in_title %}{{- q|e }} - {% endif %}{% endblock %} {% block title %}{% if query_in_title %}{{- q|e }} - {% endif %}{% endblock %}
{% block meta %}<link rel="alternate" type="application/rss+xml" title="Searx search: {{ q|e }}" href="{{ url_for('search', _external=True) }}?q={{ q|urlencode }}&amp;categories={{ selected_categories|join(",") | replace(' ','+') }}&amp;pageno={{ pageno }}&amp;time_range={{ time_range }}&amp;language={{ current_language }}&amp;safesearch={{ safesearch }}&amp;format=rss">{% endblock %} {% block meta %}<link rel="alternate" type="application/rss+xml" title="Searx search: {{ q|e }}" href="{{ url_for('search', _external=True) }}?q={{ q|urlencode }}&amp;categories={{ selected_categories|join(",") | replace(' ','+') }}&amp;pageno={{ pageno }}&amp;time_range={{ time_range }}&amp;language={{ current_language }}&amp;safesearch={{ safesearch }}&amp;format=rss">{% endblock %}
{% block content %} {% block content %}
{% include 'simple/search.html' %} {% include 'search.html' %}
{% if results and results|map(attribute='template')|unique|list|count == 1 %} {% if results and results|map(attribute='template')|unique|list|count == 1 %}
{% set only_template = 'only_template_' + results[0]['template']|default('default')|replace('.html', '') %} {% set only_template = 'only_template_' + results[0]['template']|default('default')|replace('.html', '') %}
@ -58,7 +58,7 @@
{% if infoboxes %} {% if infoboxes %}
<div id="infoboxes"> <div id="infoboxes">
{% for infobox in infoboxes -%} {% for infobox in infoboxes -%}
{% include 'simple/infobox.html' %} {% include 'infobox.html' %}
{%- endfor %} {%- endfor %}
</div> </div>
{% endif %} {% endif %}
@ -145,7 +145,7 @@
{% if result.close_group and not only_template %}</div>{% endif %} {% if result.close_group and not only_template %}</div>{% endif %}
{% endfor %} {% endfor %}
{% if not results and not answers %} {% if not results and not answers %}
{% include 'simple/messages/no_results.html' %} {% include 'messages/no_results.html' %}
{% endif %} {% endif %}
</div> </div>
<div id="backToTop"> <div id="backToTop">

View file

@ -2,7 +2,7 @@
<div id="search_header"> <div id="search_header">
<a id="search_logo" href="{{ url_for('index') }}" tabindex="0" title="{{ _('Display the front page') }}"> <a id="search_logo" href="{{ url_for('index') }}" tabindex="0" title="{{ _('Display the front page') }}">
<span hidden>SearXNG</span> <span hidden>SearXNG</span>
{% include 'simple/searxng-wordmark.min.svg' without context %} {% include 'searxng-wordmark.min.svg' without context %}
</a> </a>
<div id="search_view"> <div id="search_view">
<div class="search_box"> <div class="search_box">
@ -12,12 +12,12 @@
</div> </div>
</div> </div>
{% set display_tooltip = true %} {% set display_tooltip = true %}
{% include 'simple/categories.html' %} {% include 'categories.html' %}
</div> </div>
<div class="search_filters"> <div class="search_filters">
{% include 'simple/filters/languages.html' %} {% include 'filters/languages.html' %}
{% include 'simple/filters/time_range.html' %} {% include 'filters/time_range.html' %}
{% include 'simple/filters/safesearch.html' %} {% include 'filters/safesearch.html' %}
</div> </div>
<input type="hidden" name="theme" value="{{ theme }}" > <input type="hidden" name="theme" value="{{ theme }}" >
{% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit|e }}" >{% endif %} {% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit|e }}" >{% endif %}

View file

Before

Width:  |  Height:  |  Size: 711 B

After

Width:  |  Height:  |  Size: 711 B

View file

@ -1,8 +0,0 @@
{% 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' %}
</div>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% from 'simple/icons.html' import icon_big %} {% from 'icons.html' import icon_big %}
{% from 'simple/new_issue.html' import new_issue with context %} {% from 'new_issue.html' import new_issue with context %}
{% extends "simple/page_with_header.html" %} {% extends "page_with_header.html" %}
{%- macro th_sort(column_order, column_name) -%} {%- macro th_sort(column_order, column_name) -%}
{% if selected_engine_name %} {% if selected_engine_name %}

View file

@ -73,7 +73,6 @@ from searx.webutils import (
highlight_content, highlight_content,
get_static_files, get_static_files,
get_result_templates, get_result_templates,
get_themes,
prettify_url, prettify_url,
new_hmac, new_hmac,
is_hmac_of, is_hmac_of,
@ -138,9 +137,7 @@ static_files = get_static_files(settings['ui']['static_path'])
# about templates # about templates
logger.debug('templates directory is %s', settings['ui']['templates_path']) logger.debug('templates directory is %s', settings['ui']['templates_path'])
default_theme = settings['ui']['default_theme']
templates_path = settings['ui']['templates_path'] templates_path = settings['ui']['templates_path']
themes = get_themes(templates_path)
result_templates = get_result_templates(templates_path) result_templates = get_result_templates(templates_path)
STATS_SORT_PARAMETERS = { STATS_SORT_PARAMETERS = {
@ -299,9 +296,7 @@ def custom_url_for(endpoint: str, **values):
if endpoint == 'static' and values.get('filename'): if endpoint == 'static' and values.get('filename'):
file_hash = static_files.get(values['filename']) file_hash = static_files.get(values['filename'])
if not file_hash: if not file_hash:
# try file in the current theme filename_with_theme = "themes/simple/" + values['filename']
theme_name = request.preferences.get_value('theme')
filename_with_theme = "themes/{}/{}".format(theme_name, values['filename'])
file_hash = static_files.get(filename_with_theme) file_hash = static_files.get(filename_with_theme)
if file_hash: if file_hash:
values['filename'] = filename_with_theme values['filename'] = filename_with_theme
@ -489,7 +484,7 @@ def render(template_name: str, **kwargs):
kwargs['styles'].add(css) kwargs['styles'].add(css)
start_time = default_timer() start_time = default_timer()
result = render_template('{}/{}'.format(kwargs['theme'], template_name), **kwargs) result = render_template(template_name, **kwargs)
request.render_time += default_timer() - start_time # pylint: disable=assigning-non-slot request.render_time += default_timer() - start_time # pylint: disable=assigning-non-slot
return result return result
@ -502,7 +497,7 @@ def pre_request():
request.timings = [] # pylint: disable=assigning-non-slot request.timings = [] # pylint: disable=assigning-non-slot
request.errors = [] # pylint: disable=assigning-non-slot request.errors = [] # pylint: disable=assigning-non-slot
preferences = Preferences(themes, list(categories.keys()), engines, plugins) # pylint: disable=redefined-outer-name preferences = Preferences(list(categories.keys()), engines, plugins) # pylint: disable=redefined-outer-name
user_agent = request.headers.get('User-Agent', '').lower() user_agent = request.headers.get('User-Agent', '').lower()
if 'webkit' in user_agent and 'android' in user_agent: if 'webkit' in user_agent and 'android' in user_agent:
preferences.key_value_settings['method'].value = 'GET' preferences.key_value_settings['method'].value = 'GET'
@ -1083,7 +1078,6 @@ def preferences():
disabled_engines = disabled_engines, disabled_engines = disabled_engines,
autocomplete_backends = autocomplete_backends, autocomplete_backends = autocomplete_backends,
shortcuts = {y: x for x, y in engine_shortcuts.items()}, shortcuts = {y: x for x, y in engine_shortcuts.items()},
themes = themes,
plugins = plugins, plugins = plugins,
doi_resolvers = settings['doi_resolvers'], doi_resolvers = settings['doi_resolvers'],
current_doi_resolver = get_doi_resolver(request.preferences), current_doi_resolver = get_doi_resolver(request.preferences),
@ -1301,9 +1295,8 @@ def opensearch():
@app.route('/favicon.ico') @app.route('/favicon.ico')
def favicon(): def favicon():
theme = request.preferences.get_value("theme")
return send_from_directory( return send_from_directory(
os.path.join(app.root_path, settings['ui']['static_path'], 'themes', theme, 'img'), os.path.join(app.root_path, settings['ui']['static_path'], 'themes/simple/img'),
'favicon.png', 'favicon.png',
mimetype='image/vnd.microsoft.icon', mimetype='image/vnd.microsoft.icon',
) )
@ -1358,7 +1351,6 @@ def config():
'default_locale': settings['ui']['default_locale'], 'default_locale': settings['ui']['default_locale'],
'autocomplete': settings['search']['autocomplete'], 'autocomplete': settings['search']['autocomplete'],
'safe_search': settings['search']['safe_search'], 'safe_search': settings['search']['safe_search'],
'default_theme': settings['ui']['default_theme'],
'version': VERSION_STRING, 'version': VERSION_STRING,
'brand': { 'brand': {
'PRIVACYPOLICY_URL': get_setting('general.privacypolicy_url'), 'PRIVACYPOLICY_URL': get_setting('general.privacypolicy_url'),

View file

@ -51,11 +51,6 @@ class UnicodeWriter:
self.writerow(row) self.writerow(row)
def get_themes(templates_path):
"""Returns available themes list."""
return os.listdir(templates_path)
def get_hash_for_file(file: pathlib.Path) -> str: def get_hash_for_file(file: pathlib.Path) -> str:
m = hashlib.sha1() m = hashlib.sha1()
with file.open('rb') as f: with file.open('rb') as f:

View file

@ -105,7 +105,7 @@ def get_search_query(
"language": args.lang, "language": args.lang,
"time_range": args.timerange, "time_range": args.timerange,
} }
preferences = searx.preferences.Preferences(['simple'], engine_categories, searx.engines.engines, []) preferences = searx.preferences.Preferences(engine_categories, searx.engines.engines, [])
preferences.key_value_settings['safesearch'].parse(args.safesearch) preferences.key_value_settings['safesearch'].parse(args.safesearch)
search_query = searx.webadapter.get_search_query_from_webapp(preferences, form)[0] search_query = searx.webadapter.get_search_query_from_webapp(preferences, form)[0]

View file

@ -24,7 +24,6 @@ server:
ui: ui:
static_path: "" static_path: ""
templates_path: "" templates_path: ""
default_theme: simple
preferences: preferences:
lock: [] lock: []

View file

@ -27,7 +27,6 @@ server:
ui: ui:
static_path: "" static_path: ""
templates_path: "" templates_path: ""
default_theme: simple
default_locale: "" default_locale: ""
theme_args: theme_args:
simple_style: auto simple_style: auto

View file

@ -122,7 +122,7 @@ class TestPreferences(SearxTestCase):
def test_encode(self): def test_encode(self):
from searx.preferences import Preferences from searx.preferences import Preferences
pref = Preferences(['simple'], ['general'], {}, []) pref = Preferences(['general'], {}, [])
url_params = ( url_params = (
'eJx1Vk1z4zYM_TXxRZNMd7eddg8-pe21nWnvGoiEJEQkofDDtvzrC1qSRdnbQxQTBA' 'eJx1Vk1z4zYM_TXxRZNMd7eddg8-pe21nWnvGoiEJEQkofDDtvzrC1qSRdnbQxQTBA'
'Hw8eGRCiJ27AnDsUOHHszBgOsSdHjU-Pr7HwfDCkweHCBFVmxHgxGPB7LiU4-eL9Px' 'Hw8eGRCiJ27AnDsUOHHszBgOsSdHjU-Pr7HwfDCkweHCBFVmxHgxGPB7LiU4-eL9Px'

View file

@ -30,14 +30,14 @@ class ValidateQueryCase(SearxTestCase):
searx.search.initialize(TEST_ENGINES) searx.search.initialize(TEST_ENGINES)
def test_query_private_engine_without_token(self): def test_query_private_engine_without_token(self):
preferences = Preferences(['simple'], ['general'], engines, []) preferences = Preferences(['general'], engines, [])
valid, unknown, invalid_token = validate_engineref_list(SEARCHQUERY, preferences) valid, unknown, invalid_token = validate_engineref_list(SEARCHQUERY, preferences)
self.assertEqual(len(valid), 0) self.assertEqual(len(valid), 0)
self.assertEqual(len(unknown), 0) self.assertEqual(len(unknown), 0)
self.assertEqual(len(invalid_token), 1) self.assertEqual(len(invalid_token), 1)
def test_query_private_engine_with_incorrect_token(self): def test_query_private_engine_with_incorrect_token(self):
preferences_with_tokens = Preferences(['simple'], ['general'], engines, []) preferences_with_tokens = Preferences(['general'], engines, [])
preferences_with_tokens.parse_dict({'tokens': 'bad-token'}) preferences_with_tokens.parse_dict({'tokens': 'bad-token'})
valid, unknown, invalid_token = validate_engineref_list(SEARCHQUERY, preferences_with_tokens) valid, unknown, invalid_token = validate_engineref_list(SEARCHQUERY, preferences_with_tokens)
self.assertEqual(len(valid), 0) self.assertEqual(len(valid), 0)
@ -45,7 +45,7 @@ class ValidateQueryCase(SearxTestCase):
self.assertEqual(len(invalid_token), 1) self.assertEqual(len(invalid_token), 1)
def test_query_private_engine_with_correct_token(self): def test_query_private_engine_with_correct_token(self):
preferences_with_tokens = Preferences(['simple'], ['general'], engines, []) preferences_with_tokens = Preferences(['general'], engines, [])
preferences_with_tokens.parse_dict({'tokens': 'my-token'}) preferences_with_tokens.parse_dict({'tokens': 'my-token'})
valid, unknown, invalid_token = validate_engineref_list(SEARCHQUERY, preferences_with_tokens) valid, unknown, invalid_token = validate_engineref_list(SEARCHQUERY, preferences_with_tokens)
self.assertEqual(len(valid), 1) self.assertEqual(len(valid), 1)

View file

@ -8,8 +8,8 @@ STATIC_BUILT_PATHS=(
'searx/static/themes/simple/js' 'searx/static/themes/simple/js'
'searx/static/themes/simple/src/generated/pygments.less' 'searx/static/themes/simple/src/generated/pygments.less'
'searx/static/themes/simple/img' 'searx/static/themes/simple/img'
'searx/templates/simple/searxng-wordmark.min.svg' 'searx/templates/searxng-wordmark.min.svg'
'searx/templates/simple/icons.html' 'searx/templates/icons.html'
) )
static_help(){ static_help(){