mirror of
				https://github.com/searxng/searxng
				synced 2024-01-01 19:24:07 +01: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}), | ||||
|                                       index='multi', | ||||
|                                       page_size=page_size, | ||||
|                                       pageno=params['pageno']) | ||||
|     params['url'] = search_url.format( | ||||
|         query=urlencode({'q': query}), | ||||
|         index='multi', | ||||
|         page_size=page_size, | ||||
|         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'], | ||||
|               'title': hit['result']['full_title'], | ||||
|               'content': content, | ||||
|               'thumbnail': hit['result']['song_art_image_thumbnail_url'], | ||||
|               'template': 'videos.html'} | ||||
|     result = { | ||||
|         'url': hit['result']['url'], | ||||
|         'title': hit['result']['full_title'], | ||||
|         'content': content, | ||||
|         'thumbnail': hit['result']['song_art_image_thumbnail_url'], | ||||
|     } | ||||
|     if timestamp: | ||||
|         result.update({'publishedDate': datetime.fromtimestamp(timestamp)}) | ||||
|     return result | ||||
| 
 | ||||
| 
 | ||||
| def parse_artist(hit): | ||||
|     result = {'url': hit['result']['url'], | ||||
|               'title': hit['result']['name'], | ||||
|               'content': '', | ||||
|               'thumbnail': hit['result']['image_url'], | ||||
|               'template': 'videos.html'} | ||||
|     result = { | ||||
|         'url': hit['result']['url'], | ||||
|         'title': hit['result']['name'], | ||||
|         'content': '', | ||||
|         'thumbnail': hit['result']['image_url'], | ||||
|     } | ||||
|     return result | ||||
| 
 | ||||
| 
 | ||||
| def parse_album(hit): | ||||
|     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'} | ||||
|     result = { | ||||
|         'url': hit['result']['url'], | ||||
|         'title': hit['result']['full_title'], | ||||
|         'thumbnail': hit['result']['cover_art_url'], | ||||
|         'content': '', | ||||
|     } | ||||
|     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…
	
	Add table
		
		Reference in a new issue
	
	 Markus Heiser
						Markus Heiser