From d49be5c42e9601f16a28bd43135b8803ae4b3843 Mon Sep 17 00:00:00 2001 From: Alexander-D-Karpov Date: Sun, 7 Apr 2024 00:22:51 +0300 Subject: [PATCH] bug fixes --- akarpov/music/services/db.py | 15 +++++++++------ akarpov/music/services/yandex.py | 20 +++++++++----------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/akarpov/music/services/db.py b/akarpov/music/services/db.py index 4bc05f5..6899249 100644 --- a/akarpov/music/services/db.py +++ b/akarpov/music/services/db.py @@ -122,12 +122,15 @@ def load_track( album=album, ): return sng.first() - - if not path.endswith(".mp3"): - mp3_path = path.replace(path.split(".")[-1], "mp3") - AudioSegment.from_file(path).export(mp3_path) - os.remove(path) - path = mp3_path + try: + if not path.endswith(".mp3"): + mp3_path = path.replace(path.split(".")[-1], "mp3") + AudioSegment.from_file(path).export(mp3_path) + os.remove(path) + path = mp3_path + except Exception as e: + print(e) + return Song.objects.none() tag = MP3(path, ID3=ID3) diff --git a/akarpov/music/services/yandex.py b/akarpov/music/services/yandex.py index 0c9387b..aef5b9e 100644 --- a/akarpov/music/services/yandex.py +++ b/akarpov/music/services/yandex.py @@ -95,21 +95,19 @@ def load_url(link: str, user_id: int): ) elif "/album/" in link: album = client.albums_with_tracks(obj_id) - tracks = [] for volume in album.volumes: for track in volume: - tracks.append(track) - - for track in tracks: - tasks.load_ym_file_meta.apply_async( - kwargs={"track": track.track.id, "user_id": user_id} - ) + tasks.load_ym_file_meta.apply_async( + kwargs={"track": track.id, "user_id": user_id} + ) elif "/artist/" in link: artist = client.artists(obj_id)[0] - for track in artist.popular_tracks: - tasks.load_ym_file_meta.apply_async( - kwargs={"track": track.id, "user_id": user_id} - ) + albums = artist.get_albums(page_size=100) + for album in albums: + for track in album.fetch_tracks(): + tasks.load_ym_file_meta.apply_async( + kwargs={"track": track.id, "user_id": user_id} + ) else: tasks.load_ym_file_meta.apply_async( kwargs={"track": obj_id, "user_id": user_id}