81 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
| import musicbrainzngs
 | |
| from cache_memoize import cache_memoize
 | |
| from django.conf import settings
 | |
| 
 | |
| from funkwhale_api import __version__
 | |
| 
 | |
| _api = musicbrainzngs
 | |
| _api.set_useragent("funkwhale", str(__version__), settings.FUNKWHALE_URL)
 | |
| _api.set_hostname(settings.MUSICBRAINZ_HOSTNAME)
 | |
| _api.set_format(fmt="json")
 | |
| 
 | |
| 
 | |
| def clean_artist_search(query, **kwargs):
 | |
|     cleaned_kwargs = {}
 | |
|     if kwargs.get("name"):
 | |
|         cleaned_kwargs["artist"] = kwargs.get("name")
 | |
|     return _api.search_artists(query, **cleaned_kwargs)
 | |
| 
 | |
| 
 | |
| class API:
 | |
|     _api = _api
 | |
| 
 | |
|     class artists:
 | |
|         search = cache_memoize(
 | |
|             settings.MUSICBRAINZ_CACHE_DURATION,
 | |
|             prefix="memoize:musicbrainz:clean_artist_search",
 | |
|         )(clean_artist_search)
 | |
|         get = cache_memoize(
 | |
|             settings.MUSICBRAINZ_CACHE_DURATION,
 | |
|             prefix="memoize:musicbrainz:get_artist_by_id",
 | |
|         )(_api.get_artist_by_id)
 | |
| 
 | |
|     class images:
 | |
|         get_front = cache_memoize(
 | |
|             settings.MUSICBRAINZ_CACHE_DURATION,
 | |
|             prefix="memoize:musicbrainz:get_image_front",
 | |
|         )(_api.get_image_front)
 | |
| 
 | |
|     class recordings:
 | |
|         search = cache_memoize(
 | |
|             settings.MUSICBRAINZ_CACHE_DURATION,
 | |
|             prefix="memoize:musicbrainz:search_recordings",
 | |
|         )(_api.search_recordings)
 | |
|         get = cache_memoize(
 | |
|             settings.MUSICBRAINZ_CACHE_DURATION,
 | |
|             prefix="memoize:musicbrainz:get_recording_by_id",
 | |
|         )(_api.get_recording_by_id)
 | |
| 
 | |
|     class releases:
 | |
|         search = cache_memoize(
 | |
|             settings.MUSICBRAINZ_CACHE_DURATION,
 | |
|             prefix="memoize:musicbrainz:search_releases",
 | |
|         )(_api.search_releases)
 | |
|         get = cache_memoize(
 | |
|             settings.MUSICBRAINZ_CACHE_DURATION,
 | |
|             prefix="memoize:musicbrainz:get_release_by_id",
 | |
|         )(_api.get_release_by_id)
 | |
|         browse = cache_memoize(
 | |
|             settings.MUSICBRAINZ_CACHE_DURATION,
 | |
|             prefix="memoize:musicbrainz:browse_releases",
 | |
|         )(_api.browse_releases)
 | |
|         # get_image_front = _api.get_image_front
 | |
| 
 | |
|     class release_groups:
 | |
|         search = cache_memoize(
 | |
|             settings.MUSICBRAINZ_CACHE_DURATION,
 | |
|             prefix="memoize:musicbrainz:search_release_groups",
 | |
|         )(_api.search_release_groups)
 | |
|         get = cache_memoize(
 | |
|             settings.MUSICBRAINZ_CACHE_DURATION,
 | |
|             prefix="memoize:musicbrainz:get_release_group_by_id",
 | |
|         )(_api.get_release_group_by_id)
 | |
|         browse = cache_memoize(
 | |
|             settings.MUSICBRAINZ_CACHE_DURATION,
 | |
|             prefix="memoize:musicbrainz:browse_release_groups",
 | |
|         )(_api.browse_release_groups)
 | |
|         # get_image_front = _api.get_image_front
 | |
| 
 | |
| 
 | |
| api = API()
 |