Files
musicseerr/backend/infrastructure/cover_urls.py
T
2026-04-03 15:53:00 +01:00

38 lines
1.2 KiB
Python

from typing import Optional
from infrastructure.validators import is_valid_mbid
def release_group_cover_url(release_group_mbid: Optional[str], size: int = 500) -> Optional[str]:
if not is_valid_mbid(release_group_mbid):
return None
return f"/api/v1/covers/release-group/{release_group_mbid}?size={size}"
def release_cover_url(release_mbid: Optional[str], size: int = 500) -> Optional[str]:
if not is_valid_mbid(release_mbid):
return None
return f"/api/v1/covers/release/{release_mbid}?size={size}"
def artist_cover_url(artist_mbid: Optional[str], size: int = 500) -> Optional[str]:
if not is_valid_mbid(artist_mbid):
return None
return f"/api/v1/covers/artist/{artist_mbid}?size={size}"
def prefer_release_group_cover_url(
release_group_mbid: Optional[str],
fallback_url: Optional[str] = None,
size: int = 500,
) -> Optional[str]:
return release_group_cover_url(release_group_mbid, size=size) or fallback_url
def prefer_artist_cover_url(
artist_mbid: Optional[str],
fallback_url: Optional[str] = None,
size: int = 500,
) -> Optional[str]:
return artist_cover_url(artist_mbid, size=size) or fallback_url