2024-01-13 11:57:11 +01:00
|
|
|
from tidalapi import Track
|
|
|
|
|
|
2024-01-14 23:09:43 +01:00
|
|
|
from tidal_dl_ng.constants import MediaType
|
|
|
|
|
|
2024-01-13 11:57:11 +01:00
|
|
|
|
|
|
|
|
def name_builder_artist(media: Track) -> str:
|
|
|
|
|
return ", ".join(artist.name for artist in media.artists)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def name_builder_title(media: Track) -> str:
|
|
|
|
|
return media.name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def name_builder_item(media: Track) -> str:
|
|
|
|
|
return f"{name_builder_artist(media)} - {name_builder_title(media)}"
|
2024-01-14 23:09:43 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_tidal_media_id(url_or_id_media: str) -> str:
|
|
|
|
|
id_dirty = url_or_id_media.rsplit("/", 1)[-1]
|
|
|
|
|
id_media = id_dirty.rsplit("?", 1)[0]
|
|
|
|
|
|
|
|
|
|
return id_media
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_tidal_media_type(url_media: str) -> MediaType | bool:
|
|
|
|
|
result: MediaType | bool = False
|
|
|
|
|
url_split = url_media.split("/")[-2]
|
|
|
|
|
|
|
|
|
|
if len(url_split) > 1:
|
|
|
|
|
media_name = url_media.split("/")[-2]
|
|
|
|
|
|
|
|
|
|
if media_name == "track":
|
2024-01-16 06:33:23 +01:00
|
|
|
result = MediaType.TRACK
|
2024-01-14 23:09:43 +01:00
|
|
|
elif media_name == "video":
|
2024-01-16 06:33:23 +01:00
|
|
|
result = MediaType.VIDEO
|
2024-01-14 23:09:43 +01:00
|
|
|
elif media_name == "album":
|
2024-01-16 06:33:23 +01:00
|
|
|
result = MediaType.ALBUM
|
2024-01-14 23:09:43 +01:00
|
|
|
elif media_name == "playlist":
|
2024-01-16 06:33:23 +01:00
|
|
|
result = MediaType.PLAYLIST
|
2024-01-14 23:09:43 +01:00
|
|
|
elif media_name == "mix":
|
2024-01-16 06:33:23 +01:00
|
|
|
result = MediaType.MIX
|
2024-01-14 23:09:43 +01:00
|
|
|
|
|
|
|
|
return result
|