diff --git a/src/mpd_now_playable/mpd/artwork_cache.py b/src/mpd_now_playable/mpd/artwork_cache.py index f99dbf2..298effe 100644 --- a/src/mpd_now_playable/mpd/artwork_cache.py +++ b/src/mpd_now_playable/mpd/artwork_cache.py @@ -6,7 +6,7 @@ from ..async_tools import run_background_task from ..cache import Cache, make_cache from .types import CurrentSongResponse, MpdStateHandler -CACHE_TTL = 60 * 60 # seconds = 1 hour +CACHE_TTL = 60 * 60 # seconds = 1 hour class ArtCacheEntry(TypedDict): @@ -49,7 +49,7 @@ class MpdArtworkCache: return None async def cache_artwork(self, song: CurrentSongResponse) -> None: - art = ArtCacheEntry(data=await self.mpd.get_art(song["file"])) + art = ArtCacheEntry(data=await self.mpd.readpicture(song["file"])) try: await self.album_cache.add(calc_album_key(song), art, ttl=CACHE_TTL) except ValueError: diff --git a/src/mpd_now_playable/mpd/listener.py b/src/mpd_now_playable/mpd/listener.py index db46f19..9559937 100644 --- a/src/mpd_now_playable/mpd/listener.py +++ b/src/mpd_now_playable/mpd/listener.py @@ -95,19 +95,6 @@ class MpdStateListener(Player): print(song) listener.update(song) - async def get_art(self, file: str) -> bytes | None: - picture = await self.readpicture(file) - if picture: - return picture - return await self.albumart(file) - - async def albumart(self, file: str) -> bytes | None: - try: - albumart = await self.client.albumart(file) - return albumart.get("binary") - except CommandError: - return None - async def readpicture(self, file: str) -> bytes | None: try: readpic = await self.client.readpicture(file) diff --git a/src/mpd_now_playable/mpd/types.py b/src/mpd_now_playable/mpd/types.py index a5aa8a3..4fe2d25 100644 --- a/src/mpd_now_playable/mpd/types.py +++ b/src/mpd_now_playable/mpd/types.py @@ -2,9 +2,11 @@ from typing import Literal, NotRequired, Protocol, TypedDict class MpdStateHandler(Protocol): - async def get_art(self, file: str) -> bytes | None: ... + async def readpicture(self, file: str) -> bytes | None: + ... - async def refresh(self) -> None: ... + async def refresh(self) -> None: + ... BooleanFlag = Literal["0", "1"] diff --git a/stubs/mpd/asyncio.pyi b/stubs/mpd/asyncio.pyi index 6968141..221fcf4 100644 --- a/stubs/mpd/asyncio.pyi +++ b/stubs/mpd/asyncio.pyi @@ -13,7 +13,6 @@ class MPDClient(MPDClientBase): def idle(self, subsystems: Sequence[str] = ...) -> AsyncIterator[Sequence[str]]: ... async def status(self) -> types.StatusResponse: ... async def currentsong(self) -> types.CurrentSongResponse: ... - async def albumart(self, uri: str) -> types.ReadPictureResponse: ... async def readpicture(self, uri: str) -> types.ReadPictureResponse: ... async def play(self) -> None: ... async def pause(self, pause: Literal[1, 0, None] = None) -> None: