fixed start after move
This commit is contained in:
83
src/integral_lib/YandexPlayer.py
Normal file
83
src/integral_lib/YandexPlayer.py
Normal file
@@ -0,0 +1,83 @@
|
||||
from os import getenv
|
||||
|
||||
from yandex_music import Client
|
||||
|
||||
client = Client(getenv('YANDEX_TOKEN')).init()
|
||||
|
||||
|
||||
def search(_str: str, _type: str = 'all') -> dict:
|
||||
album_id = None
|
||||
album_title = None
|
||||
artist_id = None
|
||||
artist_name = None
|
||||
result_json = {}
|
||||
|
||||
search_result = client.search(_str, type_=_type)
|
||||
type_ = search_result.best.type
|
||||
best = search_result.best.result
|
||||
|
||||
# print(search_result)
|
||||
if type_ == 'track':
|
||||
artists = ''
|
||||
if best.artists:
|
||||
artists = ', '.join(artist.name for artist in best.artists)
|
||||
if best.albums:
|
||||
for i in best.albums:
|
||||
album_id = i.id
|
||||
album_title = i.title
|
||||
|
||||
# Generate json for track
|
||||
result_json = {
|
||||
"artist": {
|
||||
"id": best.id,
|
||||
"name": artists
|
||||
},
|
||||
"track": {
|
||||
"id": best.trackId,
|
||||
"title": best.title
|
||||
},
|
||||
"album": {
|
||||
"id": album_id,
|
||||
"title": album_title
|
||||
}
|
||||
}
|
||||
elif type_ == 'artist':
|
||||
result_json = {
|
||||
"artist": {
|
||||
"id": best.id,
|
||||
"name": best.name
|
||||
}
|
||||
}
|
||||
elif type_ == 'album':
|
||||
if best.artists:
|
||||
for i in best.artists:
|
||||
artist_id = i.id
|
||||
artist_name = i.name
|
||||
_tracks = []
|
||||
tracks = {}
|
||||
album = client.albums_with_tracks(best.id)
|
||||
for i, volume in enumerate(album.volumes):
|
||||
_tracks += volume
|
||||
_i = 1
|
||||
for track in _tracks:
|
||||
print(track)
|
||||
tracks[f"track_{_i}"] = {
|
||||
"id": track.id,
|
||||
"tittle": track.title,
|
||||
|
||||
}
|
||||
_i += 1
|
||||
|
||||
result_json = {
|
||||
"artist": {
|
||||
"id": artist_id,
|
||||
"name": artist_name
|
||||
},
|
||||
"album": {
|
||||
"id": best.id,
|
||||
"title": best.title
|
||||
},
|
||||
"tracks": tracks
|
||||
}
|
||||
print(_type)
|
||||
return result_json
|
||||
Reference in New Issue
Block a user