From 40fcbfd576f97d9bcd75bfd324051086583085d1 Mon Sep 17 00:00:00 2001 From: geoffrey45 Date: Tue, 5 Jul 2022 14:22:00 +0300 Subject: [PATCH] add the albumhash prop to the fallback track object - plus other tiny changes --- server/app/api/track.py | 8 +++-- server/app/functions.py | 18 ++++++----- server/app/lib/watchdoge.py | 4 --- src/components/PlaylistView/Header.vue | 2 +- src/composables/state.ts | 44 -------------------------- src/stores/queue.ts | 1 + 6 files changed, 18 insertions(+), 59 deletions(-) diff --git a/server/app/api/track.py b/server/app/api/track.py index 9a3eb587..08ca78e6 100644 --- a/server/app/api/track.py +++ b/server/app/api/track.py @@ -17,14 +17,18 @@ def send_track_file(trackid): Returns an audio file that matches the passed id to the client. """ track = instances.tracks_instance.get_track_by_id(trackid) + msg = {"msg": "File Not Found"} if track is None: - return "File not found", 404 + return msg, 404 track = models.Track(track) type = track.filepath.split(".")[-1] - return send_file(track.filepath, mimetype=f"audio/{type}") + try: + return send_file(track.filepath, mimetype=f"audio/{type}") + except FileNotFoundError: + return msg, 404 @track_bp.route("/sample") diff --git a/server/app/functions.py b/server/app/functions.py index fb4eebe9..106a8a6e 100644 --- a/server/app/functions.py +++ b/server/app/functions.py @@ -79,7 +79,6 @@ class getArtistImage: class useImageDownloader: - def __init__(self, url: str, dest: str) -> None: self.url = url self.dest = dest @@ -96,7 +95,6 @@ class useImageDownloader: class CheckArtistImages: - def __init__(self): self.artists: list[str] = [] print("Checking for artist images") @@ -121,8 +119,12 @@ class CheckArtistImages: :param artistname: The artist name """ - img_path = (settings.APP_DIR + "/images/artists/" + - helpers.create_safe_name(artistname) + ".webp") + img_path = ( + settings.APP_DIR + + "/images/artists/" + + helpers.create_safe_name(artistname) + + ".webp" + ) if cls.check_if_exists(img_path): return "exists" @@ -139,7 +141,7 @@ class CheckArtistImages: with ThreadPoolExecutor() as pool: iter = pool.map(self.download_image, self.artists) - [print(i) for i in iter] + [i for i in iter] print("Done fetching images") @@ -149,7 +151,8 @@ def fetch_album_bio(title: str, albumartist: str) -> str | None: Returns the album bio for a given album. """ last_fm_url = "http://ws.audioscrobbler.com/2.0/?method=album.getinfo&api_key={}&artist={}&album={}&format=json".format( - settings.LAST_FM_API_KEY, albumartist, title) + settings.LAST_FM_API_KEY, albumartist, title + ) try: response = requests.get(last_fm_url) @@ -158,8 +161,7 @@ def fetch_album_bio(title: str, albumartist: str) -> str | None: return None try: - bio = data["album"]["wiki"]["summary"].split( - '({ - title: "Nothing played yet", - artists: ["... blah blah blah"], - image: "http://127.0.0.1:8900/images/thumbnails/4.webp", - trackid: "", - }) -); - -const folder_song_list = ref([]); -const folder_list = ref([]); - -const current = ref({ - title: "Nothing played yet", - artists: ["... blah blah blah"], - image: "http://127.0.0.1:8900/images/thumbnails/4.webp", - trackid: "", -}); - -const prev = ref({ - title: "Nothing played yet", - artists: ["... blah blah blah"], - image: "http://127.0.0.1:8900/images/thumbnails/4.webp", - trackid: "", -}); - -const album = reactive({ - tracklist: Array(), - info: {}, - artists: Array(), - bio: "", -}); - const loading = ref(false); -const is_playing = ref(false); const settings = reactive({ uri: "http://127.0.0.1:9876", }); export default { - search_query, - queue, - folder_song_list, - folder_list, - current, - prev, loading, - is_playing, - album, settings, }; diff --git a/src/stores/queue.ts b/src/stores/queue.ts index a23f855c..da6d8355 100644 --- a/src/stores/queue.ts +++ b/src/stores/queue.ts @@ -40,6 +40,7 @@ function readCurrent(): number { const defaultTrack = { title: "Nothing played yet", + albumhash: " ", artists: ["Alice"], trackid: "", image: "",