feat: Add cover art support for user client

This commit adds support for displaying cover art from the currently playing media in the Home Assistant user client.

- The `HassUserClient` now publishes cover art to the `user/image/cover` MQTT topic.
- The `publish_cover` method uses `playerctl` to retrieve the art URL and `pillow` to convert the image to WebP format before publishing.
- The `components` property now includes an `image` component for cover art.
- The `cover` attribute on `HassUserClient` is used to avoid resending the same cover multiple times.
- The `publish_state` method has been extended to spawn a thread for updating the cover.
This commit is contained in:
Edgar P. Burkhart 2025-03-09 18:51:38 +01:00
parent 45f7fc4741
commit e54223e361
Signed by: edpibu
GPG key ID: 9833D3C5A25BD227
6 changed files with 148 additions and 26 deletions

View file

@ -6,6 +6,7 @@ readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"paho-mqtt>=2.1.0",
"pillow>=11.1.0",
]
[dependency-groups]