From 3e50e8de3e669972da194b3d416f7913e75da9f4 Mon Sep 17 00:00:00 2001
From: Markus Heiser
Date: Sat, 17 Jul 2021 19:03:54 +0200
Subject: [mod] drop usage of the searx.brand namespace (python procs)
Added function searx.get_setting(name, default=_unset):
Returns the value to which ``name`` point. If there is no such name in the
settings and the ``default`` is unset, a KeyError exception is raised.
In all the python processes ..
- make docs
- make buildenv
- make install (setup.py)
the usage of the 'brand.*' name space is replaced by 'searx.get_setting'
function.
- brand.SEARX_URL --> get_setting('server.base_url')
- brand.GIT_URL --> get_setting('brand.git_url')
- brand.GIT_BRANCH' --> get_setting('server.base_url')
- brand.ISSUE_URL --> get_setting('brand.issue_url')
- brand.DOCS_URL --> get_setting('brand.docs_url')
- brand.PUBLIC_INSTANCES --> get_setting('brand.public_instances')
- brand.CONTACT_URL --> get_setting('general.contact_url', '')
- brand.WIKI_URL --> get_setting('brand.wiki_url')
- brand.TWITTER_URL --> get_setting('brand.twitter_url', '')
Signed-off-by: Markus Heiser
---
searx/__init__.py | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
(limited to 'searx')
diff --git a/searx/__init__.py b/searx/__init__.py
index 8452dd7b4..55f6bb464 100644
--- a/searx/__init__.py
+++ b/searx/__init__.py
@@ -32,6 +32,27 @@ if max_request_timeout is None:
else:
logger.info('max_request_timeout=%i second(s)', max_request_timeout)
+_unset = object()
+
+def get_setting(name, default=_unset):
+ """Returns the value to which ``name`` point. If there is no such name in the
+ settings and the ``default`` is unset, a :py:obj:`KeyError` is raised.
+
+ """
+ value = settings
+ for a in name.split('.'):
+ if isinstance(value, dict):
+ value = value.get(a, _unset)
+ else:
+ value = _unset
+
+ if value is _unset:
+ if default is _unset:
+ raise KeyError(name)
+ value = default
+ break
+
+ return value
class _brand_namespace: # pylint: disable=invalid-name
--
cgit v1.2.3
From 2a2b6c4d57958dd60cc59c80e5669d41b714c701 Mon Sep 17 00:00:00 2001
From: Markus Heiser
Date: Sat, 17 Jul 2021 19:34:18 +0200
Subject: [fix] add missing brand options to the settings SCHEMA
Signed-off-by: Markus Heiser
---
searx/settings_defaults.py | 8 ++++++++
searx/settings_robot.yml | 9 +++++++++
2 files changed, 17 insertions(+)
(limited to 'searx')
diff --git a/searx/settings_defaults.py b/searx/settings_defaults.py
index 8350d92ba..05df33440 100644
--- a/searx/settings_defaults.py
+++ b/searx/settings_defaults.py
@@ -130,6 +130,14 @@ SCHEMA = {
'contact_url': SettingsValue((None, False, str), None),
},
'brand': {
+ 'git_url': SettingsValue(str),
+ 'git_branch': SettingsValue(str),
+ 'issue_url': SettingsValue(str, None),
+ 'new_issue_url': SettingsValue(str, None),
+ 'docs_url': SettingsValue(str, None),
+ 'public_instances': SettingsValue(str, None),
+ 'wiki_url': SettingsValue(str, None),
+ 'twitter_url': SettingsValue(str, None),
},
'search': {
'safe_search': SettingsValue((0,1,2), 0),
diff --git a/searx/settings_robot.yml b/searx/settings_robot.yml
index 00dcb8da8..ca65449f7 100644
--- a/searx/settings_robot.yml
+++ b/searx/settings_robot.yml
@@ -2,6 +2,15 @@ general:
debug: false
instance_name: "searx_test"
+brand:
+ git_url: https://github.com/searxng/searxng
+ git_branch: master
+ issue_url: https://github.com/searxng/searxng/issues
+ new_issue_url: https://github.com/searxng/searxng/issues/new
+ docs_url: https://searxng.github.io/searxng
+ public_instances: https://searx.space
+ wiki_url: https://github.com/searxng/searxng/wiki
+
search:
language: "all"
--
cgit v1.2.3
From c9220de690f0081777cf43acb547f2b3818fd8fe Mon Sep 17 00:00:00 2001
From: Markus Heiser
Date: Sat, 17 Jul 2021 19:37:22 +0200
Subject: [mod] drop unused setting option brand:twitter_url
Signed-off-by: Markus Heiser
---
searx/__init__.py | 5 -----
searx/settings_defaults.py | 1 -
2 files changed, 6 deletions(-)
(limited to 'searx')
diff --git a/searx/__init__.py b/searx/__init__.py
index 55f6bb464..2b6a84124 100644
--- a/searx/__init__.py
+++ b/searx/__init__.py
@@ -96,9 +96,4 @@ class _brand_namespace: # pylint: disable=invalid-name
def WIKI_URL(self):
return self.get_val('brand', 'wiki_url')
- @property
- def TWITTER_URL(self):
- return self.get_val('brand', 'twitter_url')
-
-
brand = _brand_namespace()
diff --git a/searx/settings_defaults.py b/searx/settings_defaults.py
index 05df33440..d034cb1cd 100644
--- a/searx/settings_defaults.py
+++ b/searx/settings_defaults.py
@@ -137,7 +137,6 @@ SCHEMA = {
'docs_url': SettingsValue(str, None),
'public_instances': SettingsValue(str, None),
'wiki_url': SettingsValue(str, None),
- 'twitter_url': SettingsValue(str, None),
},
'search': {
'safe_search': SettingsValue((0,1,2), 0),
--
cgit v1.2.3
From 3f638ed196cdd98d933d6e70dffe374e2d2456dc Mon Sep 17 00:00:00 2001
From: Markus Heiser
Date: Sun, 18 Jul 2021 15:38:52 +0200
Subject: [mod] drop usage of the searx.brand namespace (templates & /config)
In the templates and the /config (JSON) the usage of the 'brand.*' name
space is replaced by 'searx.get_setting' function.
- new_issue_url --> get_setting('brand.new_issue_url')
- brand.GIT_URL --> get_setting('brand.git_url')
- brand.PUBLIC_INSTANCES --> get_setting('brand.public_instances')
- brand.DOCS_URL --> get_setting('brand.docs_url')
- brand.ISSUE_URL --> get_setting('brand.issue_url')
- brand.CONTACT_URL --> get_setting('general.contact_url', '')
The macro 'new_issue' from searx/templates/*/messages/no_results.html
is now imported with context::
{% from '__common__/new_issue.html' import new_issue with context %}
To get *public instances URL* from context's 'get_setting()' function::
get_setting('brand.public_instances','')
Macro's prototype does no longer need the 'new_issue_url' argument and has been
changed to::
macro new_issue(engine_name, engine_reliability)
Signed-off-by: Markus Heiser
---
searx/templates/__common__/about.html | 14 ++++++++------
searx/templates/__common__/new_issue.html | 6 +++---
searx/templates/oscar/base.html | 10 +++++-----
searx/templates/oscar/messages/no_results.html | 2 +-
searx/templates/oscar/stats.html | 4 ++--
searx/templates/simple/base.html | 8 ++++----
searx/templates/simple/messages/no_results.html | 2 +-
searx/templates/simple/stats.html | 4 ++--
searx/webapp.py | 14 ++++++--------
9 files changed, 32 insertions(+), 32 deletions(-)
(limited to 'searx')
diff --git a/searx/templates/__common__/about.html b/searx/templates/__common__/about.html
index 72c7b133f..96ebab28a 100644
--- a/searx/templates/__common__/about.html
+++ b/searx/templates/__common__/about.html
@@ -11,7 +11,7 @@
More about SearXNG ...
@@ -30,7 +30,8 @@
SearXNG is free software, the code is 100% open and you can help to make
- it better. See more on github.
+ it better. See more on SearXNG sources.
@@ -80,10 +81,11 @@
SearXNG appreciates your concern regarding logs, so take the code from
- the SearXNG project and run it yourself!
+ the SearXNG project and
+ run it yourself!
- Add your instance to this list of
+ Add your instance to this list of
public instances to help other people reclaim their privacy and make the
Internet freer! The more decentralized the Internet is, the more freedom we
have!
@@ -92,8 +94,8 @@
Where are the docs & code of this instance?
- See the {{ brand.DOCS_URL }}
- and {{ brand.GIT_URL }}
+ See the SearXNG docs
+ and SearXNG sources
diff --git a/searx/templates/__common__/new_issue.html b/searx/templates/__common__/new_issue.html
index 1b28804af..c741a049f 100644
--- a/searx/templates/__common__/new_issue.html
+++ b/searx/templates/__common__/new_issue.html
@@ -1,5 +1,5 @@
-{% macro new_issue(new_issue_url, engine_name, engine_reliability) %}
-
{% endmacro %}
diff --git a/searx/templates/oscar/base.html b/searx/templates/oscar/base.html
index b85f69fa9..cc716e62b 100644
--- a/searx/templates/oscar/base.html
+++ b/searx/templates/oscar/base.html
@@ -82,11 +82,11 @@
{% endblock %}
- {{ _('Powered by') }} searxng - {{ searx_version }} - {{ _('a privacy-respecting, hackable metasearch engine') }}
- {{ _('Source code') }} |
- {{ _('Issue tracker') }} |
- {{ _('Public instances') }}{% if brand.CONTACT_URL %} |
- {{ _('Contact instance maintainer') }}{% endif %}
+ {{ _('Powered by') }} SearXNG - {{ searx_version }} - {{ _('a privacy-respecting, hackable metasearch engine') }}
+ {{ _('Source code') }} |
+ {{ _('Issue tracker') }} |
+ {{ _('Public instances') }}{% if get_setting('general.contact_url') %} |
+ {{ _('Contact instance maintainer') }}{% endif %}
diff --git a/searx/templates/oscar/messages/no_results.html b/searx/templates/oscar/messages/no_results.html
index 7ad6423c5..fe8e39d33 100644
--- a/searx/templates/oscar/messages/no_results.html
+++ b/searx/templates/oscar/messages/no_results.html
@@ -10,7 +10,7 @@
){{- '' -}}
{%- endfor -%}
- {{ _('Please, try again later or find another searx instance.') }} ({{ _('Public instances') }})
+ {{ _('Please, try again later or find another searx instance.') }} ({{ _('Public instances') }})
{% else %}
diff --git a/searx/templates/oscar/stats.html b/searx/templates/oscar/stats.html
index d9b2ab68e..4be8043ff 100644
--- a/searx/templates/oscar/stats.html
+++ b/searx/templates/oscar/stats.html
@@ -1,5 +1,5 @@
{% extends 'oscar/base.html' %}
-{% from '__common__/new_issue.html' import new_issue %}
+{% from '__common__/new_issue.html' import new_issue with context %}
{% block title %}{{ _('stats') }} - {% if selected_engine_name %} {{ selected_engine_name }} - {% endif %}{% endblock %}
@@ -148,7 +148,7 @@
{% endfor %}
{% endif %}
- {{ new_issue(brand.NEW_ISSUE_URL, selected_engine_name, engine_reliabilities[selected_engine_name]) }}
+ {{ new_issue(selected_engine_name, engine_reliabilities[selected_engine_name]) }}
{% endif %}
diff --git a/searx/templates/simple/base.html b/searx/templates/simple/base.html
index 50cea045a..edf0eb6eb 100644
--- a/searx/templates/simple/base.html
+++ b/searx/templates/simple/base.html
@@ -51,10 +51,10 @@
diff --git a/searx/templates/simple/messages/no_results.html b/searx/templates/simple/messages/no_results.html
index b7f02167e..845f3e21a 100644
--- a/searx/templates/simple/messages/no_results.html
+++ b/searx/templates/simple/messages/no_results.html
@@ -11,7 +11,7 @@
{%- endfor %}
- {{ _('Please, try again later or find another searx instance.') }} ({{ _('Public instances') }})
+ {{ _('Please, try again later or find another searx instance.') }} ({{ _('Public instances') }})
{% else %}
diff --git a/searx/templates/simple/stats.html b/searx/templates/simple/stats.html
index 7058d04d4..f423b6861 100644
--- a/searx/templates/simple/stats.html
+++ b/searx/templates/simple/stats.html
@@ -1,5 +1,5 @@
{% from 'simple/macros.html' import icon %}
-{% from '__common__/new_issue.html' import new_issue %}
+{% from '__common__/new_issue.html' import new_issue with context %}
{% extends "simple/base.html" %}
@@ -147,7 +147,7 @@
{% endfor %}
{% endif %}
- {{ new_issue(brand.NEW_ISSUE_URL, selected_engine_name, engine_reliabilities[selected_engine_name]) }}
+ {{ new_issue(selected_engine_name, engine_reliabilities[selected_engine_name]) }}
{% endif %}
diff --git a/searx/webapp.py b/searx/webapp.py
index 4d838062b..09c0643be 100755
--- a/searx/webapp.py
+++ b/searx/webapp.py
@@ -50,7 +50,7 @@ from flask_babel import (
)
from searx import logger
-from searx import brand
+from searx import get_setting
from searx import (
settings,
searx_debug,
@@ -473,11 +473,9 @@ def render(template_name, override_theme=None, **kwargs):
kwargs['search_formats'] = [
x for x in settings['search']['formats'] if x != 'html'
]
-
- # brand
- kwargs['instance_name'] = settings['general']['instance_name']
+ kwargs['instance_name'] = get_setting('general.instance_name')
kwargs['searx_version'] = VERSION_STRING
- kwargs['brand'] = brand
+ kwargs['get_setting'] = get_setting
# helpers to create links to other pages
kwargs['url_for'] = url_for_theme # override url_for function in templates
@@ -1323,9 +1321,9 @@ def config():
'default_theme': settings['ui']['default_theme'],
'version': VERSION_STRING,
'brand': {
- 'CONTACT_URL': brand.CONTACT_URL,
- 'GIT_URL': brand.GIT_URL,
- 'DOCS_URL': brand.DOCS_URL
+ 'CONTACT_URL': get_setting('general.contact_url'),
+ 'GIT_URL': get_setting('brand.git_url'),
+ 'DOCS_URL': get_setting('brand.docs_url'),
},
'doi_resolvers': list(settings['doi_resolvers'].keys()),
'default_doi_resolver': settings['default_doi_resolver'],
--
cgit v1.2.3
From 6fbf5180bf17b563c0ef9552ab6aaaf48bc375ae Mon Sep 17 00:00:00 2001
From: Markus Heiser
Date: Sun, 18 Jul 2021 17:26:56 +0200
Subject: [mod] drop obsolete searx.brand namespace
The usages of the searx.brand namespace has been removed, the searx.brand
namespace is now longer needed.
The searx.brand namespace was an interim solution which has been added in commit
9e53470b4, see commit message there ...
This patch is a first 'proof of concept'. Later we can decide to remove the
brand namespace entirely or not.
Signed-off-by: Markus Heiser
---
searx/__init__.py | 44 --------------------------------------------
1 file changed, 44 deletions(-)
(limited to 'searx')
diff --git a/searx/__init__.py b/searx/__init__.py
index 2b6a84124..0b73d5204 100644
--- a/searx/__init__.py
+++ b/searx/__init__.py
@@ -53,47 +53,3 @@ def get_setting(name, default=_unset):
break
return value
-
-class _brand_namespace: # pylint: disable=invalid-name
-
- @classmethod
- def get_val(cls, group, name, default=''):
- return settings.get(group, {}).get(name) or default
-
- @property
- def SEARX_URL(self):
- return self.get_val('server', 'base_url')
-
- @property
- def CONTACT_URL(self):
- return self.get_val('general', 'contact_url')
-
- @property
- def GIT_URL(self):
- return self.get_val('brand', 'git_url')
-
- @property
- def GIT_BRANCH(self):
- return self.get_val('brand', 'git_branch')
-
- @property
- def ISSUE_URL(self):
- return self.get_val('brand', 'issue_url')
-
- @property
- def NEW_ISSUE_URL(self):
- return self.get_val('brand', 'new_issue_url')
-
- @property
- def DOCS_URL(self):
- return self.get_val('brand', 'docs_url')
-
- @property
- def PUBLIC_INSTANCES(self):
- return self.get_val('brand', 'public_instances')
-
- @property
- def WIKI_URL(self):
- return self.get_val('brand', 'wiki_url')
-
-brand = _brand_namespace()
--
cgit v1.2.3