56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
import yaml
|
||
from yandex_music import Client
|
||
|
||
config = yaml.safe_load(open("config.yaml", "r", encoding="utf-8"))
|
||
client = Client(token=config["token"]).init()
|
||
|
||
|
||
def delete_track() -> None:
|
||
len_playlist = client.users_likes_tracks()
|
||
uid = client.account_status()["account"]["uid"]
|
||
|
||
for track in client.users_playlists(kind=3)["tracks"]:
|
||
client.users_likes_tracks_remove(track_ids=track["id"])
|
||
print(
|
||
f"Удален трек: {track['track']['artists'][0]['name']} - {track['track']['title']}"
|
||
)
|
||
|
||
|
||
def add_track(path: str) -> None:
|
||
with open(path, "r", encoding="utf-8") as file:
|
||
for track in file.read().splitlines():
|
||
track_search = client.search(text=track)
|
||
try:
|
||
track_info = track_search["tracks"]["results"][0]
|
||
client.users_likes_tracks_add(track_ids=track_info["id"])
|
||
print(
|
||
f"Добавлен трек: {track_info['artists'][0]['name']} - {track_info['title']}"
|
||
)
|
||
except TypeError:
|
||
print(f"Не удалось добавить '{track}'")
|
||
|
||
|
||
def main() -> None:
|
||
print("Выберите действие:")
|
||
print("1. Удалить все треки")
|
||
print("2. Добавить все треки")
|
||
print("3. Удалить и добавить все треки")
|
||
|
||
action = input("Введите: ").strip()
|
||
|
||
match action:
|
||
case "1":
|
||
delete_track()
|
||
case "2":
|
||
file_path = input("Введите путь к файлу для добавления треков: ").strip()
|
||
add_track(file_path)
|
||
case "3":
|
||
file_path = input("Введите путь к файлу для добавления треков: ").strip()
|
||
delete_track()
|
||
add_track(file_path)
|
||
case default:
|
||
print("Нет такого варианта")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
main()
|