Match photo selection and rendered canvas to device rotation

This commit is contained in:
Pigway
2026-10-05 22:44:41 +08:00
parent 8139a646d7
commit 59345f12a7
13 changed files with 249 additions and 35 deletions
+11 -1
View File
@@ -69,6 +69,7 @@ from pigway_frame_flow.providers.synology_photos import (
PhotosPerson,
)
from pigway_frame_flow.providers.weather import ConfigurableWeatherProvider
from pigway_frame_flow.renderers.frame_geometry import frame_canvas
from pigway_frame_flow.renderers.images import Assets, convert
from pigway_frame_flow.renderers.templates import TemplateRenderer
from pigway_frame_flow.scheduler.engine import Scheduler
@@ -629,8 +630,17 @@ def create_app(settings=None, start_worker=True):
offset: int = Query(0, ge=0),
limit: int = Query(50, ge=1, le=200),
refresh: bool = False,
device_id: str | None = None,
):
items = service.photo_sources.catalog(source_id, refresh=refresh)
source = service.photo_sources.get(source_id)
size = (1200, 1600)
if source.orientation == "auto":
size = frame_canvas(
registry.get(device_id or settings.device_id).device().display
)
items = service.photo_sources.catalog(
source_id, refresh=refresh, target_size=size
)
return {
"items": items[offset : offset + limit],
"total": len(items),