summaryrefslogtreecommitdiff
path: root/searx/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'searx/__init__.py')
-rw-r--r--searx/__init__.py70
1 files changed, 21 insertions, 49 deletions
diff --git a/searx/__init__.py b/searx/__init__.py
index 8452dd7b4..0b73d5204 100644
--- a/searx/__init__.py
+++ b/searx/__init__.py
@@ -32,52 +32,24 @@ if max_request_timeout is None:
else:
logger.info('max_request_timeout=%i second(s)', max_request_timeout)
-
-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')
-
- @property
- def TWITTER_URL(self):
- return self.get_val('brand', 'twitter_url')
-
-
-brand = _brand_namespace()
+_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