From d285a3edf7d6e75946184b238d6fe3758b3d5c26 Mon Sep 17 00:00:00 2001 From: Mungai Geoffrey Date: Thu, 14 Apr 2022 11:31:52 +0300 Subject: [PATCH] fix playlist image being lost on title edit (#29) --- server/app/api/playlist.py | 14 ++++++++------ server/app/lib/playlistlib.py | 4 ++-- server/app/models.py | 2 +- src/components/RightSideBar/Search.vue | 2 +- src/composables/album.ts | 10 +++++----- 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/server/app/api/playlist.py b/server/app/api/playlist.py index ad568df7..64b08b78 100644 --- a/server/app/api/playlist.py +++ b/server/app/api/playlist.py @@ -21,8 +21,7 @@ TrackExistsInPlaylist = exceptions.TrackExistsInPlaylist @playlist_bp.route("/playlists", methods=["GET"]) def get_all_playlists(): playlists = [ - serializer.Playlist(p, construct_last_updated=False) - for p in api.PLAYLISTS + serializer.Playlist(p, construct_last_updated=False) for p in api.PLAYLISTS ] playlists.sort( key=lambda p: datetime.strptime(p.lastUpdated, "%Y-%m-%d %H:%M:%S"), @@ -69,7 +68,7 @@ def add_track_to_playlist(playlist_id: str): try: playlistlib.add_track(playlist_id, trackid) except TrackExistsInPlaylist as e: - return {"error": str(e)}, 409 + return {"error": "Track already exists in playlist"}, 409 return {"msg": "I think It's done"}, 200 @@ -103,11 +102,14 @@ def update_playlist(playlistid: str): "image": None, } - if image: - playlist["image"] = playlistlib.save_p_image(image, playlistid) - for p in api.PLAYLISTS: if p.playlistid == playlistid: + + if image: + playlist["image"] = playlistlib.save_p_image(image, playlistid) + else: + playlist["image"] = p.image.split("/")[-1] + p.update_playlist(playlist) instances.playlist_instance.update_playlist(playlistid, playlist) diff --git a/server/app/lib/playlistlib.py b/server/app/lib/playlistlib.py index aa2b9fa9..f95e70be 100644 --- a/server/app/lib/playlistlib.py +++ b/server/app/lib/playlistlib.py @@ -38,8 +38,8 @@ def add_track(playlistid: str, trackid: str): instances.playlist_instance.add_track_to_playlist( playlistid, track) return - except TrackExistsInPlaylist as e: - return {"error": str(e)}, 409 + except TrackExistsInPlaylist as error: + raise error def get_playlist_tracks(pid: str): diff --git a/server/app/models.py b/server/app/models.py index 3eeb3ca5..fa4f5dc2 100644 --- a/server/app/models.py +++ b/server/app/models.py @@ -127,7 +127,7 @@ class Playlist: if image: return settings.IMG_PLAYLIST_URI + image - return settings.IMG_PLAYLIST_URI + "" + return settings.IMG_PLAYLIST_URI + "default.webp" def update_count(self): self.count = len(self._pre_tracks) diff --git a/src/components/RightSideBar/Search.vue b/src/components/RightSideBar/Search.vue index 86ae3316..26d7eccf 100644 --- a/src/components/RightSideBar/Search.vue +++ b/src/components/RightSideBar/Search.vue @@ -28,7 +28,7 @@ v-if="search.query.trim().length === 0" class="no-res border rounded" > -
👻 Find your music
+
🦋 Find your music
{ data.info = res.data.info; data.tracks = res.data.songs; }) - .catch((err) => { + .catch((err: AxiosError) => { console.error(err); }); return data; }; -const getAlbumArtists = async (album, artist) => { +const getAlbumArtists = async (album:string, artist:string) => { let artists = []; await axios @@ -35,7 +35,7 @@ const getAlbumArtists = async (album, artist) => { .then((res) => { artists = res.data.artists; }) - .catch((err) => { + .catch((err: AxiosError) => { console.error(err); }); @@ -53,7 +53,7 @@ const getAlbumBio = async (album: string, albumartist: string) => { .then((res) => { bio = res.data.bio; }) - .catch((err) => { + .catch((err: AxiosError) => { if (err.response.status === 404) { bio = null; }