Initial public release
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
import time
|
||||
from typing import Literal
|
||||
|
||||
from infrastructure.msgspec_fastapi import AppStruct
|
||||
|
||||
|
||||
class AudioDBArtistResponse(AppStruct):
|
||||
idArtist: str
|
||||
strArtist: str
|
||||
strMusicBrainzID: str | None = None
|
||||
strArtistThumb: str | None = None
|
||||
strArtistFanart: str | None = None
|
||||
strArtistFanart2: str | None = None
|
||||
strArtistFanart3: str | None = None
|
||||
strArtistFanart4: str | None = None
|
||||
strArtistWideThumb: str | None = None
|
||||
strArtistBanner: str | None = None
|
||||
strArtistLogo: str | None = None
|
||||
strArtistCutout: str | None = None
|
||||
strArtistClearart: str | None = None
|
||||
|
||||
|
||||
class AudioDBAlbumResponse(AppStruct):
|
||||
idAlbum: str
|
||||
strAlbum: str
|
||||
strMusicBrainzID: str | None = None
|
||||
strAlbumThumb: str | None = None
|
||||
strAlbumBack: str | None = None
|
||||
strAlbumCDart: str | None = None
|
||||
strAlbumSpine: str | None = None
|
||||
strAlbum3DCase: str | None = None
|
||||
strAlbum3DFlat: str | None = None
|
||||
strAlbum3DFace: str | None = None
|
||||
strAlbum3DThumb: str | None = None
|
||||
|
||||
|
||||
class AudioDBArtistImages(AppStruct):
|
||||
thumb_url: str | None = None
|
||||
fanart_url: str | None = None
|
||||
fanart_url_2: str | None = None
|
||||
fanart_url_3: str | None = None
|
||||
fanart_url_4: str | None = None
|
||||
wide_thumb_url: str | None = None
|
||||
banner_url: str | None = None
|
||||
logo_url: str | None = None
|
||||
cutout_url: str | None = None
|
||||
clearart_url: str | None = None
|
||||
lookup_source: Literal["mbid", "name"] = "mbid"
|
||||
matched_mbid: str | None = None
|
||||
is_negative: bool = False
|
||||
cached_at: float = 0.0
|
||||
|
||||
@staticmethod
|
||||
def from_response(resp: AudioDBArtistResponse, lookup_source: Literal["mbid", "name"] = "mbid") -> "AudioDBArtistImages":
|
||||
return AudioDBArtistImages(
|
||||
thumb_url=resp.strArtistThumb,
|
||||
fanart_url=resp.strArtistFanart,
|
||||
fanart_url_2=resp.strArtistFanart2,
|
||||
fanart_url_3=resp.strArtistFanart3,
|
||||
fanart_url_4=resp.strArtistFanart4,
|
||||
wide_thumb_url=resp.strArtistWideThumb,
|
||||
banner_url=resp.strArtistBanner,
|
||||
logo_url=resp.strArtistLogo,
|
||||
cutout_url=resp.strArtistCutout,
|
||||
clearart_url=resp.strArtistClearart,
|
||||
lookup_source=lookup_source,
|
||||
matched_mbid=resp.strMusicBrainzID,
|
||||
is_negative=False,
|
||||
cached_at=time.time(),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def negative(cls, lookup_source: Literal["mbid", "name"] = "mbid") -> "AudioDBArtistImages":
|
||||
return cls(
|
||||
is_negative=True,
|
||||
lookup_source=lookup_source,
|
||||
cached_at=time.time(),
|
||||
)
|
||||
|
||||
|
||||
class AudioDBAlbumImages(AppStruct):
|
||||
album_thumb_url: str | None = None
|
||||
album_back_url: str | None = None
|
||||
album_cdart_url: str | None = None
|
||||
album_spine_url: str | None = None
|
||||
album_3d_case_url: str | None = None
|
||||
album_3d_flat_url: str | None = None
|
||||
album_3d_face_url: str | None = None
|
||||
album_3d_thumb_url: str | None = None
|
||||
lookup_source: Literal["mbid", "name"] = "mbid"
|
||||
matched_mbid: str | None = None
|
||||
is_negative: bool = False
|
||||
cached_at: float = 0.0
|
||||
|
||||
@staticmethod
|
||||
def from_response(resp: AudioDBAlbumResponse, lookup_source: Literal["mbid", "name"] = "mbid") -> "AudioDBAlbumImages":
|
||||
return AudioDBAlbumImages(
|
||||
album_thumb_url=resp.strAlbumThumb,
|
||||
album_back_url=resp.strAlbumBack,
|
||||
album_cdart_url=resp.strAlbumCDart,
|
||||
album_spine_url=resp.strAlbumSpine,
|
||||
album_3d_case_url=resp.strAlbum3DCase,
|
||||
album_3d_flat_url=resp.strAlbum3DFlat,
|
||||
album_3d_face_url=resp.strAlbum3DFace,
|
||||
album_3d_thumb_url=resp.strAlbum3DThumb,
|
||||
lookup_source=lookup_source,
|
||||
matched_mbid=resp.strMusicBrainzID,
|
||||
is_negative=False,
|
||||
cached_at=time.time(),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def negative(cls, lookup_source: Literal["mbid", "name"] = "mbid") -> "AudioDBAlbumImages":
|
||||
return cls(
|
||||
is_negative=True,
|
||||
lookup_source=lookup_source,
|
||||
cached_at=time.time(),
|
||||
)
|
||||
Reference in New Issue
Block a user