Files
AnyMusicBot/lib/ShazamIO/shazamio/serializers.py
BarsTiger 9d45084d98 Add lib
2023-10-07 22:51:05 +03:00

33 lines
956 B
Python

from typing import Union
from shazamio.factory_misc import FACTORY_ARTIST
from shazamio.factory_misc import FACTORY_TRACK
from shazamio.schemas.artists import ArtistInfo
from shazamio.schemas.artists import ArtistResponse
from shazamio.schemas.artists import ArtistV2
from shazamio.schemas.models import ResponseTrack
from shazamio.schemas.models import TrackInfo
from shazamio.schemas.models import YoutubeData
class Serialize:
@classmethod
def track(cls, data):
return FACTORY_TRACK.load(data, TrackInfo)
@classmethod
def youtube(cls, data):
return FACTORY_TRACK.load(data, YoutubeData)
@classmethod
def artist_v2(cls, data) -> ArtistResponse:
return ArtistResponse.parse_obj(data)
@classmethod
def artist(cls, data):
return FACTORY_ARTIST.load(data, Union[ArtistV2, ArtistInfo])
@classmethod
def full_track(cls, data):
return FACTORY_TRACK.load(data, ResponseTrack)