summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/conf.py41
-rw-r--r--searx/__init__.py21
-rw-r--r--setup.py8
-rw-r--r--utils/build_env.py28
-rw-r--r--utils/templates/etc/searx/use_default_settings.yml2
5 files changed, 68 insertions, 32 deletions
diff --git a/docs/conf.py b/docs/conf.py
index 09cc22878..04c8aa205 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -4,7 +4,7 @@
import sys, os
from pallets_sphinx_themes import ProjectLink
-from searx import brand
+from searx import get_setting
from searx.version import VERSION_STRING
# Project --------------------------------------------------------------
@@ -14,6 +14,15 @@ copyright = u'2015-2020, Adam Tauber, Noémi Ványi'
author = u'Adam Tauber'
release, version = VERSION_STRING, VERSION_STRING
+SEARX_URL = get_setting('server.base_url') or 'https://example.org/searx'
+GIT_URL = get_setting('brand.git_url')
+GIT_BRANCH = get_setting('brand.git_branch')
+ISSUE_URL = get_setting('brand.issue_url')
+DOCS_URL = get_setting('brand.docs_url')
+PUBLIC_INSTANCES = get_setting('brand.public_instances')
+CONTACT_URL = get_setting('general.contact_url')
+WIKI_URL = get_setting('brand.wiki_url')
+
# hint: sphinx.ext.viewcode won't highlight when 'highlight_language' [1] is set
# to string 'none' [2]
#
@@ -49,10 +58,10 @@ extlinks['pull'] = ('https://github.com/searxng/searxng/pull/%s', 'PR ')
extlinks['pull-searx'] = ('https://github.com/searx/searx/pull/%s', 'PR ')
# links to custom brand
-extlinks['origin'] = (brand.GIT_URL + '/blob/' + brand.GIT_BRANCH + '/%s', 'git://')
-extlinks['patch'] = (brand.GIT_URL + '/commit/%s', '#')
-extlinks['search'] = (brand.SEARX_URL + '/%s', '#')
-extlinks['docs'] = (brand.DOCS_URL + '/%s', 'docs: ')
+extlinks['origin'] = (GIT_URL + '/blob/' + GIT_BRANCH + '/%s', 'git://')
+extlinks['patch'] = (GIT_URL + '/commit/%s', '#')
+extlinks['search'] = (SEARX_URL + '/%s', '#')
+extlinks['docs'] = (DOCS_URL + '/%s', 'docs: ')
extlinks['pypi'] = ('https://pypi.org/project/%s', 'PyPi: ')
extlinks['man'] = ('https://manpages.debian.org/jump?q=%s', '')
#extlinks['role'] = (
@@ -108,18 +117,16 @@ imgmath_font_size = 14
html_theme_options = {"index_sidebar_logo": True}
html_context = {"project_links": [] }
-if brand.GIT_URL:
- html_context["project_links"].append(ProjectLink("Source", brand.GIT_URL))
-if brand.WIKI_URL:
- html_context["project_links"].append(ProjectLink("Wiki", brand.WIKI_URL))
-if brand.PUBLIC_INSTANCES:
- html_context["project_links"].append(ProjectLink("Public instances", brand.PUBLIC_INSTANCES))
-if brand.TWITTER_URL:
- html_context["project_links"].append(ProjectLink("Twitter", brand.TWITTER_URL))
-if brand.ISSUE_URL:
- html_context["project_links"].append(ProjectLink("Issue Tracker", brand.ISSUE_URL))
-if brand.CONTACT_URL:
- html_context["project_links"].append(ProjectLink("Contact", brand.CONTACT_URL))
+html_context["project_links"].append(ProjectLink("Source", GIT_URL + '/tree/' + GIT_BRANCH))
+
+if WIKI_URL:
+ html_context["project_links"].append(ProjectLink("Wiki", WIKI_URL))
+if PUBLIC_INSTANCES:
+ html_context["project_links"].append(ProjectLink("Public instances", PUBLIC_INSTANCES))
+if ISSUE_URL:
+ html_context["project_links"].append(ProjectLink("Issue Tracker", ISSUE_URL))
+if CONTACT_URL:
+ html_context["project_links"].append(ProjectLink("Contact", CONTACT_URL))
html_sidebars = {
"**": ["project.html", "relations.html", "searchbox.html"],
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
diff --git a/setup.py b/setup.py
index 61227d199..b320524d3 100644
--- a/setup.py
+++ b/setup.py
@@ -8,7 +8,7 @@ import os
import sys
from searx.version import VERSION_STRING
-from searx import brand
+from searx import get_setting
with open('README.rst', encoding='utf-8') as f:
long_description = f.read()
@@ -24,10 +24,10 @@ setup(
version=VERSION_STRING,
description="A privacy-respecting, hackable metasearch engine",
long_description=long_description,
- url=brand.DOCS_URL,
+ url=get_setting('brand.docs_url'),
project_urls={
- "Code": brand.GIT_URL,
- "Issue tracker": brand.ISSUE_URL
+ "Code": get_setting('brand.git_url'),
+ "Issue tracker": get_setting('brand.issue_url')
},
classifiers=[
"Development Status :: 4 - Beta",
diff --git a/utils/build_env.py b/utils/build_env.py
index ffb2689e9..58d58d564 100644
--- a/utils/build_env.py
+++ b/utils/build_env.py
@@ -16,18 +16,26 @@ os.environ['SEARX_SETTINGS_PATH'] = abspath(dirname(__file__) + '/settings.yml')
# from /etc/searx/settings.yml.
os.environ['SEARX_SETTINGS_PATH'] = abspath(dirname(__file__) + sep + 'settings.yml')
-from searx import brand
+from searx import get_setting
+
+def _env(*arg, **kwargs):
+ val = get_setting(*arg, **kwargs)
+ if val is True:
+ val = '1'
+ elif val is False:
+ val = ''
+ return val
name_val = [
- ('SEARX_URL' , brand.SEARX_URL),
- ('GIT_URL' , brand.GIT_URL),
- ('GIT_BRANCH' , brand.GIT_BRANCH),
- ('ISSUE_URL' , brand.ISSUE_URL),
- ('DOCS_URL' , brand.DOCS_URL),
- ('PUBLIC_INSTANCES' , brand.PUBLIC_INSTANCES),
- ('CONTACT_URL' , brand.CONTACT_URL),
- ('WIKI_URL' , brand.WIKI_URL),
- ('TWITTER_URL' , brand.TWITTER_URL),
+ ('SEARX_URL' , _env('server.base_url','')),
+ ('GIT_URL' , _env('brand.git_url', '')),
+ ('GIT_BRANCH' , _env('brand.git_branch', '')),
+ ('ISSUE_URL' , _env('brand.issue_url', '')),
+ ('DOCS_URL' , _env('brand.docs_url', '')),
+ ('PUBLIC_INSTANCES' , _env('brand.public_instances', '')),
+ ('CONTACT_URL' , _env('general.contact_url', '')),
+ ('WIKI_URL' , _env('brand.wiki_url', '')),
+ ('TWITTER_URL' , _env('brand.twitter_url', '')),
]
brand_env = 'utils' + sep + 'brand.env'
diff --git a/utils/templates/etc/searx/use_default_settings.yml b/utils/templates/etc/searx/use_default_settings.yml
index f805373fe..1e7530cdc 100644
--- a/utils/templates/etc/searx/use_default_settings.yml
+++ b/utils/templates/etc/searx/use_default_settings.yml
@@ -25,7 +25,7 @@ server:
secret_key: "ultrasecretkey" # change this!
# Set custom base_url. Possible values:
# false or "https://your.custom.host/location/"
- base_url: https://darmarit.org/searx
+ # base_url: https://example.org/searx
# Proxying image results through searx
image_proxy: false