84 for result
in eval_xpath_list(dom, results_xpath):
87 'url': extract_text(eval_xpath(result, url_xpath)),
88 'title': extract_text(eval_xpath(result, title_xpath)),
89 'content': extract_text(eval_xpath(result, content_xpath)),
93 for suggestion
in eval_xpath(dom, suggestion_xpath):
94 results.append({
'suggestion': extract_text(suggestion)})
102 for result
in eval_xpath_list(dom, image_results_xpath):
105 'template':
'images.html',
106 'url': extract_text(eval_xpath(result, image_url_xpath)),
107 'title': extract_text(eval_xpath(result, image_title_xpath)),
108 'img_src': base_url + extract_text(eval_xpath(result, image_img_src_xpath)),
119 for result
in eval_xpath_list(dom, news_results_xpath):
122 'url': extract_text(eval_xpath(result, news_url_xpath)),
123 'title': extract_text(eval_xpath(result, news_title_xpath)),
124 'content': extract_text(eval_xpath(result, news_content_xpath)),
148 from searx
import network
150 from babel
import Locale, UnknownLocaleError
153 resp = network.get(base_url +
"/preferences", headers={
'Accept-Language':
'en-US,en;q=0.5'})
154 dom = html.fromstring(resp.text)
156 languages = eval_xpath_list(dom, f
'//select[@name="{language_param}"]/option/@value')
158 engine_traits.custom[
'language_all'] = languages[0]
160 for code
in languages[1:]:
161 with contextlib.suppress(UnknownLocaleError):
162 locale = Locale(code)
163 engine_traits.languages[locale.language] = code
165 regions = eval_xpath_list(dom, f
'//select[@name="{region_param}"]/option/@value')
167 engine_traits.custom[
'region_all'] = regions[1]
169 for code
in regions[2:]:
170 for locale
in get_official_locales(code, engine_traits.languages):
171 engine_traits.regions[region_tag(locale)] = code