diff options
| author | Markus Heiser <markus.heiser@darmarit.de> | 2020-03-04 12:11:58 +0100 |
|---|---|---|
| committer | Markus Heiser <markus.heiser@darmarit.de> | 2020-03-04 12:11:58 +0100 |
| commit | 9f1cb7a943cc5a5e26fec753ddeec47bd3580ea0 (patch) | |
| tree | 7b3a571ab8caad931b4cbcdf063bf8b10c715095 /searx/engines/bing.py | |
| parent | 3cb7daedb7c5c93a98dfefa191c161f31a1347c6 (diff) | |
| parent | a5d3585a0c47b736b0845fcf6786f0f5b57d4215 (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.py | 23 |
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) |