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

@ -20,4 +20,4 @@ repos:
hooks:
- id: mypy
args: [--strict]
additional_dependencies: [paho-mqtt]
additional_dependencies: [paho-mqtt, pillow]