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}