summaryrefslogtreecommitdiff
path: root/searx/engines/swisscows.py
diff options
context:
space:
mode:
Diffstat (limited to 'searx/engines/swisscows.py')
-rw-r--r--searx/engines/swisscows.py21
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