51 """Assemble a Bing-News request."""
53 engine_region = traits.get_region(params[
'searxng_locale'], traits.all_locale)
54 engine_language = traits.get_language(params[
'searxng_locale'],
'en')
55 set_bing_cookies(params, engine_language, engine_region)
61 page = int(params.get(
'pageno', 1)) - 1
66 'first': page * 10 + 1,
69 'setlang': engine_region.split(
'-')[0],
70 'cc': engine_region.split(
'-')[-1],
73 if params[
'time_range']:
74 query_params[
'qft'] = time_map.get(params[
'time_range'],
'interval="9"')
76 params[
'url'] = base_url +
'?' + urlencode(query_params)
82 """Get response from Bing-Video"""
85 if not resp.ok
or not resp.text:
88 dom = html.fromstring(resp.text)
90 for newsitem
in eval_xpath_list(dom,
'//div[contains(@class, "newsitem")]'):
92 link = eval_xpath_getindex(newsitem,
'.//a[@class="title"]', 0,
None)
95 url = link.attrib.get(
'href')
96 title = extract_text(link)
97 content = extract_text(eval_xpath(newsitem,
'.//div[@class="snippet"]'))
100 source = eval_xpath_getindex(newsitem,
'.//div[contains(@class, "source")]', 0,
None)
101 if source
is not None:
103 eval_xpath_getindex(source,
'.//span[@aria-label]/@aria-label', 0,
None),
106 link.attrib.get(
'data-author'),
109 t = extract_text(item)
111 metadata.append(t.strip())
112 metadata =
' | '.join(metadata)
115 imagelink = eval_xpath_getindex(newsitem,
'.//a[@class="imagelink"]//img', 0,
None)
116 if imagelink
is not None:
117 thumbnail = imagelink.attrib.get(
'src')
118 if not thumbnail.startswith(
"https://www.bing.com"):
119 thumbnail =
'https://www.bing.com/' + thumbnail
126 'thumbnail': thumbnail,
127 'metadata': metadata,