summaryrefslogtreecommitdiff
path: root/searx
diff options
context:
space:
mode:
Diffstat (limited to 'searx')
-rw-r--r--searx/engines/duckduckgo.py30
-rw-r--r--searx/engines/filecrop.py1
-rw-r--r--searx/preferences.py2
-rw-r--r--searx/results.py1
-rw-r--r--searx/utils.py1
-rw-r--r--searx/webapp.py1
6 files changed, 28 insertions, 8 deletions
diff --git a/searx/engines/duckduckgo.py b/searx/engines/duckduckgo.py
index 373ce1b2d..d29e4416a 100644
--- a/searx/engines/duckduckgo.py
+++ b/searx/engines/duckduckgo.py
@@ -11,13 +11,12 @@
@parse url, title, content
@todo rewrite to api
- @todo language support
- (the current used site does not support language-change)
"""
from urllib import urlencode
from lxml.html import fromstring
from searx.engines.xpath import extract_text
+from searx.languages import language_codes
# engine dependent config
categories = ['general']
@@ -39,13 +38,28 @@ def request(query, params):
offset = (params['pageno'] - 1) * 30
if params['language'] == 'all':
- locale = 'en-us'
+ locale = None
else:
- locale = params['language'].replace('_', '-').lower()
-
- params['url'] = url.format(
- query=urlencode({'q': query, 'kl': locale}),
- offset=offset)
+ locale = params['language'].split('_')
+ if len(locale) == 2:
+ # country code goes first
+ locale = locale[1].lower() + '-' + locale[0].lower()
+ else:
+ # tries to get a country code from language
+ locale = locale[0].lower()
+ lang_codes = [x[0] for x in language_codes]
+ for lc in lang_codes:
+ lc = lc.split('_')
+ if locale == lc[0]:
+ locale = lc[1].lower() + '-' + lc[0].lower()
+ break
+
+ if locale:
+ params['url'] = url.format(
+ query=urlencode({'q': query, 'kl': locale}), offset=offset)
+ else:
+ params['url'] = url.format(
+ query=urlencode({'q': query}), offset=offset)
return params
diff --git a/searx/engines/filecrop.py b/searx/engines/filecrop.py
index 89dc77697..71665bd4e 100644
--- a/searx/engines/filecrop.py
+++ b/searx/engines/filecrop.py
@@ -8,6 +8,7 @@ paging = True
class FilecropResultParser(HTMLParser):
+
def __init__(self):
HTMLParser.__init__(self)
self.__start_processing = False
diff --git a/searx/preferences.py b/searx/preferences.py
index dd9133ddb..e19ae7502 100644
--- a/searx/preferences.py
+++ b/searx/preferences.py
@@ -166,6 +166,7 @@ class SwitchableSetting(Setting):
class EnginesSetting(SwitchableSetting):
+
def _post_init(self):
super(EnginesSetting, self)._post_init()
transformed_choices = []
@@ -191,6 +192,7 @@ class EnginesSetting(SwitchableSetting):
class PluginsSetting(SwitchableSetting):
+
def _post_init(self):
super(PluginsSetting, self)._post_init()
transformed_choices = []
diff --git a/searx/results.py b/searx/results.py
index dcd966ef7..4bb0de0d8 100644
--- a/searx/results.py
+++ b/searx/results.py
@@ -91,6 +91,7 @@ def result_score(result):
class ResultContainer(object):
"""docstring for ResultContainer"""
+
def __init__(self):
super(ResultContainer, self).__init__()
self.results = defaultdict(list)
diff --git a/searx/utils.py b/searx/utils.py
index a444cd3cf..219135a4b 100644
--- a/searx/utils.py
+++ b/searx/utils.py
@@ -74,6 +74,7 @@ def highlight_content(content, query):
class HTMLTextExtractor(HTMLParser):
+
def __init__(self):
HTMLParser.__init__(self)
self.result = []
diff --git a/searx/webapp.py b/searx/webapp.py
index 2093bb0b4..00a203636 100644
--- a/searx/webapp.py
+++ b/searx/webapp.py
@@ -735,6 +735,7 @@ class ReverseProxyPathFix(object):
:param app: the WSGI application
'''
+
def __init__(self, app):
self.app = app