From f93fa79fc5c1908acdfd6d2229ed07a63c40462f Mon Sep 17 00:00:00 2001 From: geoffrey45 Date: Mon, 7 Feb 2022 14:59:35 +0300 Subject: [PATCH] improve look of the folder item card --- server/app/functions.py | 49 ++++++++-------- src/components/FolderView/FolderItem.vue | 74 ++++++++++++++++++++++++ src/components/FolderView/FolderList.vue | 68 ++++++---------------- 3 files changed, 118 insertions(+), 73 deletions(-) create mode 100644 src/components/FolderView/FolderItem.vue diff --git a/server/app/functions.py b/server/app/functions.py index a660ca10..24a51665 100644 --- a/server/app/functions.py +++ b/server/app/functions.py @@ -52,8 +52,27 @@ def populate(): ) +def fetch_image_path(artist: str) -> str or None: + """ + Returns a direct link to an artist artist + """ + + try: + url = f"https://api.deezer.com/search/artist?q={artist}" + response = requests.get(url) + data = response.json() + + return data["data"][0]["picture_medium"] + except requests.exceptions.ConnectionError: + time.sleep(5) + return None + except IndexError: + return None + + def populate_images(): """populates the artists images""" + all_songs = instances.songs_instance.get_all_songs() artists = [] @@ -72,27 +91,11 @@ def populate_images(): ) if not os.path.exists(file_path): + img_path = fetch_image_path(artist) - def try_save_image(): - url = "https://api.deezer.com/search/artist?q={}".format(artist) - response = requests.get(url) - data = response.json() - - try: - img_path = data["data"][0]["picture_medium"] - except: - img_path = None - - if img_path is not None: - # save image as webp - img = Image.open(BytesIO(requests.get(img_path).content)) - img.save(file_path, format="webp") - - try: - try_save_image() - except requests.exceptions.ConnectionError: - time.sleep(5) - try_save_image() + if img_path is not None: + img = Image.open(BytesIO(requests.get(img_path).content)) + img.save(file_path, format="webp") _bar.next() @@ -266,7 +269,7 @@ def get_tags(full_path: str) -> dict: "date": parse_date_tag(audio)[:4], "tracknumber": parse_track_number(audio), "discnumber": parse_disk_number(audio), - "length": audio.info.length, + "length": round(audio.info.length), "bitrate": round(int(audio.info.bitrate) / 1000), "filepath": full_path.replace(helpers.home_dir, ""), "image": extract_thumb(full_path), @@ -318,6 +321,6 @@ def create_track_class(tags): tags["genre"], tags["bitrate"], tags["image"], - tags['tracknumber'], - tags['discnumber'], + tags["tracknumber"], + tags["discnumber"], ) diff --git a/src/components/FolderView/FolderItem.vue b/src/components/FolderView/FolderItem.vue new file mode 100644 index 00000000..747cb702 --- /dev/null +++ b/src/components/FolderView/FolderItem.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/src/components/FolderView/FolderList.vue b/src/components/FolderView/FolderList.vue index d692db6b..bea1d610 100644 --- a/src/components/FolderView/FolderList.vue +++ b/src/components/FolderView/FolderList.vue @@ -1,29 +1,29 @@ - \ No newline at end of file +