refactored Song object. I hooooope it works
This commit is contained in:
parent
12c453e005
commit
a050680dd7
57
src/music_kraken/database/get_song.py
Normal file
57
src/music_kraken/database/get_song.py
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
from typing import List
|
||||||
|
|
||||||
|
from .song import (
|
||||||
|
Song,
|
||||||
|
Source,
|
||||||
|
Target,
|
||||||
|
Metadata,
|
||||||
|
Artist,
|
||||||
|
LyricsContainer,
|
||||||
|
Lyrics
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def get_song_from_response(response: dict) -> Song:
|
||||||
|
# artists
|
||||||
|
artists = [Artist(a) for a in response['artists']]
|
||||||
|
|
||||||
|
# metadata
|
||||||
|
metadata = Metadata()
|
||||||
|
for key, value in response.items():
|
||||||
|
metadata[key] = value
|
||||||
|
metadata['artists'] = [a.name for a in artists]
|
||||||
|
|
||||||
|
# sources
|
||||||
|
sources: List[Source] = []
|
||||||
|
for src in response['source']:
|
||||||
|
if src['src'] is None:
|
||||||
|
continue
|
||||||
|
sources.append(Source(src))
|
||||||
|
|
||||||
|
# target
|
||||||
|
target = Target()
|
||||||
|
target.set_file(response['file'])
|
||||||
|
target.set_path(response['path'])
|
||||||
|
|
||||||
|
# Lyrics
|
||||||
|
lyrics_container = LyricsContainer()
|
||||||
|
lyrics_container.append(Lyrics(text=response['lyrics'], language='en'))
|
||||||
|
|
||||||
|
length = response['length']
|
||||||
|
if length is not None:
|
||||||
|
length = int(length)
|
||||||
|
|
||||||
|
song = Song(
|
||||||
|
id_=response['id'],
|
||||||
|
mb_id=response['id'],
|
||||||
|
title=response['title'],
|
||||||
|
release=response['album'],
|
||||||
|
isrc=response['isrc'],
|
||||||
|
length=length,
|
||||||
|
artists=artists,
|
||||||
|
metadata=metadata,
|
||||||
|
sources=sources,
|
||||||
|
target=target
|
||||||
|
)
|
||||||
|
|
||||||
|
return song
|
Loading…
Reference in New Issue
Block a user