From 207ca1b6a5df114daabaed85ad8e0c4e9b51147d Mon Sep 17 00:00:00 2001 From: Lars Noack Date: Fri, 26 Apr 2024 15:56:13 +0200 Subject: [PATCH] feat: caching of artwork request --- music_kraken/audio/metadata.py | 6 ++++-- music_kraken/objects/artwork.py | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/music_kraken/audio/metadata.py b/music_kraken/audio/metadata.py index a0d8386..aaac603 100644 --- a/music_kraken/audio/metadata.py +++ b/music_kraken/audio/metadata.py @@ -68,9 +68,11 @@ def write_metadata_to_target(metadata: Metadata, target: Target, song: Song): LOGGER.info(str(metadata)) if song.artwork.best_variant is not None: + best_variant = song.artwork.best_variant + r = artwork_connection.get( - url=song.artwork.best_variant["url"], - disable_cache=False, + url=best_variant["url"], + name=song.artwork.get_variant_name(best_variant, song.option_string), ) temp_target: Target = Target.temp() diff --git a/music_kraken/objects/artwork.py b/music_kraken/objects/artwork.py index 9b9b9ce..9613120 100644 --- a/music_kraken/objects/artwork.py +++ b/music_kraken/objects/artwork.py @@ -8,7 +8,7 @@ from .metadata import ( ID3Timestamp, Metadata ) -from ..utils.string_processing import unify, hash_url +from ..utils.string_processing import unify, hash_url, hash_url from .parents import OuterProxy as Base @@ -50,6 +50,9 @@ class Artwork: return None return min(self._variant_mapping.values(), key=lambda x: x["deviation"]) + def get_variant_name(self, variant: ArtworkVariant, option_string: str) -> str: + return f"artwork_{variant['width']}x{variant['height']}_{option_string}" + def __merge__(self, other: Artwork, override: bool = False) -> None: for key, value in other._variant_mapping.items(): if key not in self._variant_mapping or override: