diff options
Diffstat (limited to 'searx/engines/swisscows.py')
| -rw-r--r-- | searx/engines/swisscows.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/searx/engines/swisscows.py b/searx/engines/swisscows.py index 72184e428..d8a454039 100644 --- a/searx/engines/swisscows.py +++ b/searx/engines/swisscows.py @@ -13,6 +13,7 @@ from json import loads from urllib import urlencode, unquote import re +from lxml.html import fromstring # engine dependent config categories = ['general', 'images'] @@ -23,6 +24,8 @@ language_support = True base_url = 'https://swisscows.ch/' search_string = '?{query}&page={page}' +supported_languages_url = base_url + # regex regex_json = re.compile(r'initialData: {"Request":(.|\n)*},\s*environment') regex_json_remove_start = re.compile(r'^initialData:\s*') @@ -35,9 +38,11 @@ def request(query, params): if params['language'] == 'all': ui_language = 'browser' region = 'browser' + elif params['language'].split('-')[0] == 'no': + region = 'nb-NO' else: - region = params['language'].replace('_', '-') - ui_language = params['language'].split('_')[0] + region = params['language'] + ui_language = params['language'].split('-')[0] search_path = search_string.format( query=urlencode({'query': query, @@ -106,3 +111,15 @@ def response(resp): # return results return results + + +# get supported languages from their site +def _fetch_supported_languages(resp): + supported_languages = [] + dom = fromstring(resp.text) + options = dom.xpath('//div[@id="regions-popup"]//ul/li/a') + for option in options: + code = option.xpath('./@data-val')[0] + supported_languages.append(code) + + return supported_languages |