Skip to content

Commit

Permalink
Fix FileStation api for DSM 5.2 (#375)
Browse files Browse the repository at this point in the history
  • Loading branch information
mib1185 authored Feb 14, 2025
1 parent 58cb2ee commit 085de38
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 32 deletions.
72 changes: 42 additions & 30 deletions src/synology_dsm/api/file_station/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,22 +54,30 @@ async def get_shared_folders(

shared_folders: list[SynoFileSharedFolder] = []
for folder in data["shares"]:
additional = folder["additional"]
shared_folders.append(
SynoFileSharedFolder(
SynoFileSharedFolderAdditional(
additional["mount_point_type"],
SynoFileAdditionalOwner(**additional["owner"]),
SynoFileSharedFolderAdditionalPermission(**additional["perm"]),
SynoFileSharedFolderAdditionalVolumeStatus(
**additional["volume_status"],
if (additional := folder.get("additional")) is not None:
shared_folders.append(
SynoFileSharedFolder(
SynoFileSharedFolderAdditional(
additional["mount_point_type"],
SynoFileAdditionalOwner(**additional["owner"]),
SynoFileSharedFolderAdditionalPermission(
**additional["perm"]
),
SynoFileSharedFolderAdditionalVolumeStatus(
**additional["volume_status"],
),
),
),
folder["isdir"],
folder["name"],
folder["path"],
folder["isdir"],
folder["name"],
folder["path"],
)
)
else:
shared_folders.append(
SynoFileSharedFolder(
None, folder["isdir"], folder["name"], folder["path"]
)
)
)

return shared_folders

Expand All @@ -95,23 +103,27 @@ async def get_files(

files: list[SynoFileFile] = []
for file in data["files"]:
additional = file["additional"]
files.append(
SynoFileFile(
SynoFileFileAdditional(
additional["mount_point_type"],
SynoFileAdditionalOwner(**additional["owner"]),
SynoFileFileAdditionalPermission(**additional["perm"]),
additional["real_path"],
additional["size"],
SynoFileFileAdditionalTime(**additional["time"]),
additional["type"],
),
file["isdir"],
file["name"],
file["path"],
if (additional := file.get("additional")) is not None:
files.append(
SynoFileFile(
SynoFileFileAdditional(
additional["mount_point_type"],
SynoFileAdditionalOwner(**additional["owner"]),
SynoFileFileAdditionalPermission(**additional["perm"]),
additional["real_path"],
additional["size"],
SynoFileFileAdditionalTime(**additional["time"]),
additional["type"],
),
file["isdir"],
file["name"],
file["path"],
)
)
else:
files.append(
SynoFileFile(None, file["isdir"], file["name"], file["path"])
)
)

return files

Expand Down
4 changes: 2 additions & 2 deletions src/synology_dsm/api/file_station/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class SynoFileSharedFolderAdditional:
class SynoFileSharedFolder:
"""Representation of an Synology FileStation Shared Folder."""

additional: SynoFileSharedFolderAdditional
additional: SynoFileSharedFolderAdditional | None
is_dir: bool
name: str
path: str
Expand Down Expand Up @@ -107,7 +107,7 @@ class SynoFileFileAdditional:
class SynoFileFile:
"""Representation of an Synology FileStation File."""

additional: SynoFileFileAdditional
additional: SynoFileFileAdditional | None
is_dir: bool
name: str
path: str

0 comments on commit 085de38

Please sign in to comment.