@@ -110,13 +110,18 @@ def response(resp):
111# get supported languages from their site
111# get supported languages from their site
112def _fetch_supported_languages(resp):
112def _fetch_supported_languages(resp):
113− supported_languages = []
113+ lang_tags = set()
115+ setmkt = re.compile('setmkt=([^&]*)')
114 dom = html.fromstring(resp.text)
116 dom = html.fromstring(resp.text)
115− options = eval_xpath(dom, '//div[@id="limit-languages"]//input')
117+ lang_links = eval_xpath(dom, "//li/a[contains(@href, 'setmkt')]")
116− for option in options:
118+
119+ for a in lang_links:
117− code = eval_xpath(option, './@id')[0].replace('_', '-')
120+ href = eval_xpath(a, './@href')[0]
118− if code == 'nb':
121+ match = setmkt.search(href)
119− code = 'no'
122+ l_tag = match.groups()[0]
120− supported_languages.append(code)
123+ _lang, _nation = l_tag.split('-',1)
121−
124+ l_tag = _lang.lower() + '-' + _nation.upper()
122− return supported_languages
125+ lang_tags.add(l_tag)
127+ return list(lang_tags)