mirror of
https://github.com/searxng/searxng.git
synced 2024-11-27 05:11:03 +00:00
Merge pull request #93 from return42/genius-misc
Some minor Genius improvements
This commit is contained in:
commit
32b5a0ef7b
1 changed files with 35 additions and 25 deletions
|
@ -1,12 +1,17 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""
|
||||
Genius
|
||||
# lint: pylint
|
||||
# pylint: disable=invalid-name, missing-function-docstring
|
||||
"""Genius
|
||||
|
||||
"""
|
||||
|
||||
from json import loads
|
||||
from urllib.parse import urlencode
|
||||
from datetime import datetime
|
||||
|
||||
from searx import logger
|
||||
logger = logger.getChild('genius engine')
|
||||
|
||||
# about
|
||||
about = {
|
||||
"website": 'https://genius.com/',
|
||||
|
@ -27,49 +32,54 @@ search_url = url + 'search/{index}?{query}&page={pageno}&per_page={page_size}'
|
|||
|
||||
|
||||
def request(query, params):
|
||||
params['url'] = search_url.format(query=urlencode({'q': query}),
|
||||
params['url'] = search_url.format(
|
||||
query=urlencode({'q': query}),
|
||||
index='multi',
|
||||
page_size=page_size,
|
||||
pageno=params['pageno'])
|
||||
pageno=params['pageno'],
|
||||
)
|
||||
return params
|
||||
|
||||
|
||||
def parse_lyric(hit):
|
||||
try:
|
||||
content = hit['highlights'][0]['value']
|
||||
except:
|
||||
except Exception as e: # pylint: disable=broad-except
|
||||
logger.error(e, exc_info=True)
|
||||
content = ''
|
||||
timestamp = hit['result']['lyrics_updated_at']
|
||||
result = {'url': hit['result']['url'],
|
||||
result = {
|
||||
'url': hit['result']['url'],
|
||||
'title': hit['result']['full_title'],
|
||||
'content': content,
|
||||
'thumbnail': hit['result']['song_art_image_thumbnail_url'],
|
||||
'template': 'videos.html'}
|
||||
}
|
||||
if timestamp:
|
||||
result.update({'publishedDate': datetime.fromtimestamp(timestamp)})
|
||||
return result
|
||||
|
||||
|
||||
def parse_artist(hit):
|
||||
result = {'url': hit['result']['url'],
|
||||
result = {
|
||||
'url': hit['result']['url'],
|
||||
'title': hit['result']['name'],
|
||||
'content': '',
|
||||
'thumbnail': hit['result']['image_url'],
|
||||
'template': 'videos.html'}
|
||||
}
|
||||
return result
|
||||
|
||||
|
||||
def parse_album(hit):
|
||||
result = {'url': hit['result']['url'],
|
||||
result = {
|
||||
'url': hit['result']['url'],
|
||||
'title': hit['result']['full_title'],
|
||||
'thumbnail': hit['result']['cover_art_url'],
|
||||
'content': '',
|
||||
# 'thumbnail': hit['result']['cover_art_thumbnail_url'],
|
||||
'template': 'videos.html'}
|
||||
}
|
||||
try:
|
||||
year = hit['result']['release_date_components']['year']
|
||||
except:
|
||||
pass
|
||||
except Exception as e: # pylint: disable=broad-except
|
||||
logger.error(e, exc_info=True)
|
||||
else:
|
||||
if year:
|
||||
result.update({'content': 'Released: {}'.format(year)})
|
||||
|
|
Loading…
Reference in a new issue