@@ -15,7 +15,8 @@ from datetime import datetime
1515from dateutil import parser
1616from urllib.parse import urlencode, urlparse, parse_qsl
1717from lxml import etree
18−from searx.utils import list_get, match_language
18+from lxml.etree import XPath
19+from searx.utils import match_language, eval_xpath_getindex
1920from searx.engines.bing import language_aliases
2021from searx.engines.bing import _fetch_supported_languages, supported_languages_url # NOQA # pylint: disable=unused-import
2122
@@ -94,12 +95,12 @@ def response(resp):
9495 # parse results
9596 for item in rss.xpath('./channel/item'):
9697 # url / title / content
97− url = url_cleanup(item.xpath('./link/text()')[0])
98− title = list_get(item.xpath('./title/text()'), 0, url)
99− content = list_get(item.xpath('./description/text()'), 0, '')
98+ url = url_cleanup(eval_xpath_getindex(item, './link/text()', 0, default=None))
99+ title = eval_xpath_getindex(item, './title/text()', 0, default=url)
100+ content = eval_xpath_getindex(item, './description/text()', 0, default='')
100101
101102 # publishedDate
102− publishedDate = list_get(item.xpath('./pubDate/text()'), 0)
103+ publishedDate = eval_xpath_getindex(item, './pubDate/text()', 0, default=None)
103104 try:
104105 publishedDate = parser.parse(publishedDate, dayfirst=False)
105106 except TypeError:
@@ -108,7 +109,7 @@ def response(resp):
108109 publishedDate = datetime.now()
109110
110111 # thumbnail
111− thumbnail = list_get(item.xpath('./News:Image/text()', namespaces=ns), 0)
112+ thumbnail = eval_xpath_getindex(item, XPath('./News:Image/text()', namespaces=ns), 0, default=None)
112113 if thumbnail is not None:
113114 thumbnail = image_url_cleanup(thumbnail)
114115