summaryrefslogtreecommitdiff
path: root/searx/engines/bing.py
diff options
context:
space:
mode:
authorMarkus Heiser <markus.heiser@darmarit.de>2020-03-04 12:11:58 +0100
committerMarkus Heiser <markus.heiser@darmarit.de>2020-03-04 12:11:58 +0100
commit9f1cb7a943cc5a5e26fec753ddeec47bd3580ea0 (patch)
tree7b3a571ab8caad931b4cbcdf063bf8b10c715095 /searx/engines/bing.py
parent3cb7daedb7c5c93a98dfefa191c161f31a1347c6 (diff)
parenta5d3585a0c47b736b0845fcf6786f0f5b57d4215 (diff)
Merge branch 'master' of https://github.com/asciimoo/searx into filtron
Diffstat (limited to 'searx/engines/bing.py')
-rw-r--r--searx/engines/bing.py23
1 files changed, 14 insertions, 9 deletions
diff --git a/searx/engines/bing.py b/searx/engines/bing.py
index b193f7c60..afb776acd 100644
--- a/searx/engines/bing.py
+++ b/searx/engines/bing.py
@@ -110,13 +110,18 @@ def response(resp):
# get supported languages from their site
def _fetch_supported_languages(resp):
- supported_languages = []
+ lang_tags = set()
+
+ setmkt = re.compile('setmkt=([^&]*)')
dom = html.fromstring(resp.text)
- options = eval_xpath(dom, '//div[@id="limit-languages"]//input')
- for option in options:
- code = eval_xpath(option, './@id')[0].replace('_', '-')
- if code == 'nb':
- code = 'no'
- supported_languages.append(code)
-
- return supported_languages
+ lang_links = eval_xpath(dom, "//li/a[contains(@href, 'setmkt')]")
+
+ for a in lang_links:
+ href = eval_xpath(a, './@href')[0]
+ match = setmkt.search(href)
+ l_tag = match.groups()[0]
+ _lang, _nation = l_tag.split('-', 1)
+ l_tag = _lang.lower() + '-' + _nation.upper()
+ lang_tags.add(l_tag)
+
+ return list(lang_tags)