feat: show original NAS photo paths in local gallery cards

This commit is contained in:
渡口浪人
2026-10-18 15:30:38 +08:00
parent a05260712e
commit 2af0aea2f6
10 changed files with 184 additions and 5 deletions
@@ -32,6 +32,7 @@ class PhotoSourceInput(StrictModel):
"local", "synology-photos", "webdav", "google-drive", "alipan", "baidu"
]
location: str = Field(min_length=1, max_length=2048)
nas_root_path: str | None = Field(default=None, max_length=2048, pattern=r"^/")
recursive: bool = True
enabled: bool = True
catalog_limit: int = Field(default=10000, ge=1, le=100000)
@@ -62,6 +63,7 @@ class PhotoItem(StrictModel):
id: str
name: str
caption: dict[str, str] | None = None
source_path: str | None = None
provider_preview: bool = False
orientation: Literal["landscape", "portrait", "square"] | None = None
width: int | None = None
@@ -492,6 +494,13 @@ class PhotoSources:
"id": str(row["id"]),
"name": row["filename"],
"provider_preview": True,
"source_path": (
source.nas_root_path.rstrip("/")
+ "/"
+ relative.lstrip("/")
if source.nas_root_path
else "/" + relative.lstrip("/")
),
"caption": caption if source.folder_caption else None,
"width": width,
"height": height,