diff --git a/textual1/SubSonic.py b/textual1/SubSonic.py index 3ad9b09..a017486 100644 --- a/textual1/SubSonic.py +++ b/textual1/SubSonic.py @@ -314,23 +314,29 @@ class SubpyConn: return requests.get(url + self._encodePayload(payload), stream=True) # Saves cover art id - def getCoverArt(self, cover_art_id: str, path: str | None = None) -> None: + def getCoverArt(self, cover_art_id: str, size: int | None = None, path: str | None = None) -> None: url = self.base_url + '/rest/getCoverArt?' payload = self._getBasePayload() payload['id'] = cover_art_id + if size: + payload['size'] = size + r = requests.get(url + self._encodePayload(payload)) with open(path if path else 'cover.png', 'wb') as file: file.write(r.content) - def getCoverArtRaw(self, cover_art_id: str) -> bytes: + def getCoverArtRaw(self, cover_art_id: str, size: int | None = None) -> bytes: url = self.base_url + '/rest/getCoverArt?' payload = self._getBasePayload() payload['id'] = cover_art_id + if size: + payload['size'] = size + r = requests.get(url + self._encodePayload(payload)) return r.content diff --git a/textual1/app.py b/textual1/app.py index c44a5af..93a80f4 100644 --- a/textual1/app.py +++ b/textual1/app.py @@ -328,7 +328,6 @@ class Favourites(Screen): app.song_queue = q app.update_queue_table() -# TODO fix coverart class CoverArtPixels(Container): cover = reactive[Image.Image | None](None) @@ -362,7 +361,7 @@ class CoverArtPixels(Container): if image is None: try: - cover_art_data = conn.getCoverArtRaw(cover_art_id) + cover_art_data = conn.getCoverArtRaw(cover_art_id, size=300) image = Image.open(io.BytesIO(cover_art_data)) if CACHE: try: