Update images path
This commit is contained in:
parent
75000a01cf
commit
3cbd094edd
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue