93 for result
in eval_xpath_list(dom, results_xpath):
96 'url': extract_text(eval_xpath(result, url_xpath)),
97 'title': extract_text(eval_xpath(result, title_xpath)),
98 'content': extract_text(eval_xpath(result, content_xpath)),
102 for suggestion
in eval_xpath(dom, suggestion_xpath):
103 results.append({
'suggestion': extract_text(suggestion)})
111 for result
in eval_xpath_list(dom, image_results_xpath):
114 'template':
'images.html',
115 'url': extract_text(eval_xpath(result, image_url_xpath)),
116 'title': extract_text(eval_xpath(result, image_title_xpath)),
117 'img_src': base_url + extract_text(eval_xpath(result, image_img_src_xpath)),
128 for result
in eval_xpath_list(dom, news_results_xpath):
131 'url': extract_text(eval_xpath(result, news_url_xpath)),
132 'title': extract_text(eval_xpath(result, news_title_xpath)),
133 'content': extract_text(eval_xpath(result, news_content_xpath)),
157 from searx
import network
159 from babel
import Locale, UnknownLocaleError
162 resp = network.get(base_url +
"/preferences", headers={
'Accept-Language':
'en-US,en;q=0.5'})
163 dom = html.fromstring(resp.text)
165 languages = eval_xpath_list(dom, f
'//select[@name="{language_param}"]/option/@value')
167 engine_traits.custom[
'language_all'] = languages[0]
169 for code
in languages[1:]:
170 with contextlib.suppress(UnknownLocaleError):
171 locale = Locale(code)
172 engine_traits.languages[locale.language] = code
174 regions = eval_xpath_list(dom, f
'//select[@name="{region_param}"]/option/@value')
176 engine_traits.custom[
'region_all'] = regions[1]
178 for code
in regions[2:]:
179 for locale
in get_official_locales(code, engine_traits.languages):
180 engine_traits.regions[region_tag(locale)] = code