forked from Ponysearch/Ponysearch
[fix] xpath expressions to grap all items from bandcamp's response
I also found some items missing a thumbnail and I used text_extract for content and title, to remove unneeded whitespaces. BTW: added bandcamp's favicon Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
parent
4d3c399ee9
commit
062d589f86
2 changed files with 8 additions and 7 deletions
|
@ -51,19 +51,20 @@ def response(resp):
|
||||||
tree = html.fromstring(resp.text)
|
tree = html.fromstring(resp.text)
|
||||||
search_results = tree.xpath('//li[contains(@class, "searchresult")]')
|
search_results = tree.xpath('//li[contains(@class, "searchresult")]')
|
||||||
for result in search_results:
|
for result in search_results:
|
||||||
link = result.xpath('//div[@class="itemurl"]/a')[0]
|
link = result.xpath('.//div[@class="itemurl"]/a')[0]
|
||||||
result_id = parse_qs(urlparse(link.get('href')).query)["search_item_id"][0]
|
result_id = parse_qs(urlparse(link.get('href')).query)["search_item_id"][0]
|
||||||
title = result.xpath('//div[@class="heading"]/a/text()')[0]
|
title = result.xpath('.//div[@class="heading"]/a/text()')
|
||||||
date = dateparse(result.xpath('//div[@class="released"]/text()')[0].replace("released ", ""))
|
date = dateparse(result.xpath('//div[@class="released"]/text()')[0].replace("released ", ""))
|
||||||
content = result.xpath('//div[@class="subhead"]/text()')[0]
|
content = result.xpath('.//div[@class="subhead"]/text()')
|
||||||
thumbnail = result.xpath('//div[@class="art"]/img/@src')[0]
|
|
||||||
new_result = {
|
new_result = {
|
||||||
"url": extract_text(link),
|
"url": extract_text(link),
|
||||||
"title": title,
|
"title": extract_text(title),
|
||||||
"content": content,
|
"content": extract_text(content),
|
||||||
"publishedDate": date,
|
"publishedDate": date,
|
||||||
"thumbnail": thumbnail,
|
|
||||||
}
|
}
|
||||||
|
thumbnail = result.xpath('.//div[@class="art"]/img/@src')
|
||||||
|
if thumbnail:
|
||||||
|
new_result['thumbnail'] = thumbnail[0]
|
||||||
if "album" in result.classes:
|
if "album" in result.classes:
|
||||||
new_result["embedded"] = embedded_url.format(type='album', result_id=result_id)
|
new_result["embedded"] = embedded_url.format(type='album', result_id=result_id)
|
||||||
elif "track" in result.classes:
|
elif "track" in result.classes:
|
||||||
|
|
BIN
searx/static/themes/oscar/img/icons/bandcamp.png
Normal file
BIN
searx/static/themes/oscar/img/icons/bandcamp.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 919 B |
Loading…
Reference in a new issue