Add entity picture for gems to Habitica integration (#130827)

pull/130038/head^2
Manu 2024-11-18 10:52:23 +01:00 committed by GitHub
parent 2f1c1d66cb
commit e9eaeedf2b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 1 deletions

View File

@ -24,7 +24,7 @@ from homeassistant.helpers.issue_registry import (
)
from homeassistant.helpers.typing import StateType
from .const import DOMAIN, UNIT_TASKS
from .const import ASSETS_URL, DOMAIN, UNIT_TASKS
from .entity import HabiticaBase
from .types import HabiticaConfigEntry
from .util import entity_used_in, get_attribute_points, get_attributes_total
@ -40,6 +40,7 @@ class HabitipySensorEntityDescription(SensorEntityDescription):
attributes_fn: (
Callable[[dict[str, Any], dict[str, Any]], dict[str, Any] | None] | None
) = None
entity_picture: str | None = None
@dataclass(kw_only=True, frozen=True)
@ -144,6 +145,7 @@ SENSOR_DESCRIPTIONS: tuple[HabitipySensorEntityDescription, ...] = (
value_fn=lambda user, _: user.get("balance", 0) * 4,
suggested_display_precision=0,
native_unit_of_measurement="gems",
entity_picture="shop_gem.png",
),
HabitipySensorEntityDescription(
key=HabitipySensorEntity.TRINKETS,
@ -293,6 +295,13 @@ class HabitipySensor(HabiticaBase, SensorEntity):
return func(self.coordinator.data.user, self.coordinator.content)
return None
@property
def entity_picture(self) -> str | None:
"""Return the entity picture to use in the frontend, if any."""
if entity_picture := self.entity_description.entity_picture:
return f"{ASSETS_URL}{entity_picture}"
return None
class HabitipyTaskSensor(HabiticaBase, SensorEntity):
"""A Habitica task sensor."""

View File

@ -405,6 +405,7 @@
# name: test_sensors[sensor.test_user_gems-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'entity_picture': 'https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_gem.png',
'friendly_name': 'test-user Gems',
'unit_of_measurement': 'gems',
}),