Update images path

This commit is contained in:
TheThomaas 2026-09-18 14:58:12 +02:00
parent 75000a01cf
commit 3cbd094edd
2 changed files with 9 additions and 7 deletions

View file

@ -22,11 +22,11 @@ _LOGGER = logging.getLogger(__name__)
class CookCliImageView(HomeAssistantView): class CookCliImageView(HomeAssistantView):
"""GET /api/cookcli/image/{entry_id}/{image_ref} -> octets de l'image.""" """GET /api/cookcli/image/{entry_id}/{image_ref}?authSig=... -> octets de l'image."""
url = "/api/cookcli/image/{entry_id}{image_ref:.*}" url = "/api/cookcli/image/{entry_id}{image_ref:.*}"
name = "api:cookcli:image" name = "api:cookcli:image"
requires_auth = True requires_auth = False
def __init__(self, hass: HomeAssistant) -> None: def __init__(self, hass: HomeAssistant) -> None:
self.hass = hass self.hass = hass

View file

@ -25,11 +25,13 @@ naviguent vers le même identifiant sans dupliquer la logique de slug.
from __future__ import annotations from __future__ import annotations
from datetime import timedelta
import re import re
from urllib.parse import quote from urllib.parse import quote
import voluptuous as vol import voluptuous as vol
from homeassistant.components import websocket_api from homeassistant.components import websocket_api
from homeassistant.components.http.auth import async_sign_path
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from .api import CookCliApiError from .api import CookCliApiError
@ -48,11 +50,11 @@ def _resolve_entry(
return None, None return None, None
def _image_url(entry_id: str, image_ref: str | None) -> str | None: def _image_url(hass: HomeAssistant, entry_id: str, image_ref: str | None) -> str | None:
if not image_ref: if not image_ref:
return None return None
return f"/api/cookcli/image/{entry_id}/{quote(image_ref, safe='/')}" raw_path = f"/api/cookcli/image/{entry_id}/{quote(image_ref, safe='/')}"
return async_sign_path(hass, raw_path, timedelta(hours=1))
def _view_path(recipe_path: str) -> str: def _view_path(recipe_path: str) -> str:
"""Slug utilisé comme path de vue HA pour cette recette. """Slug utilisé comme path de vue HA pour cette recette.
@ -110,7 +112,7 @@ async def ws_list_recipes(
"time": metadata.get("time"), "time": metadata.get("time"),
"servings": metadata.get("servings"), "servings": metadata.get("servings"),
"tags": metadata.get("tags", []), "tags": metadata.get("tags", []),
"image_url": _image_url(entry_id, metadata.get("image")), "image_url": _image_url(hass, entry_id, metadata.get("image")),
} }
) )
connection.send_result(msg["id"], {"recipes": recipes}) connection.send_result(msg["id"], {"recipes": recipes})
@ -139,7 +141,7 @@ async def ws_get_recipe(
connection.send_error(msg["id"], "cannot_connect", str(err)) connection.send_error(msg["id"], "cannot_connect", str(err))
return return
recipe["image_url"] = _image_url(entry_id, recipe.get("image")) recipe["image_url"] = _image_url(hass, entry_id, recipe.get("image"))
todo_entity = entry_data.get("todo_entity") todo_entity = entry_data.get("todo_entity")
if todo_entity is not None: if todo_entity is not None: