Skip to content

Commit

Permalink
Merge pull request #191 from maybeec/device_id_name_login
Browse files Browse the repository at this point in the history
Added DSM v7 API Login option of device_id and device_name
  • Loading branch information
N4S4 authored Dec 28, 2024
2 parents 67e908a + da90452 commit c011003
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 5 deletions.
11 changes: 10 additions & 1 deletion synology_api/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ def __init__(self,
cert_verify: bool = False,
dsm_version: int = 7,
debug: bool = True,
otp_code: Optional[str] = None
otp_code: Optional[str] = None,
device_id: Optional[str] = None,
device_name: Optional[str] = None
) -> None:

self._ip_address: str = ip_address
Expand All @@ -40,6 +42,8 @@ def __init__(self,
self._version: int = dsm_version
self._debug: bool = debug
self._otp_code: Optional[str] = otp_code
self._device_id: Optional[str] = device_id
self._device_name: Optional[str] = device_name

if self._verify is False:
disable_warnings(InsecureRequestWarning)
Expand All @@ -60,6 +64,11 @@ def login(self, application: str) -> None:
'passwd': self._password, 'session': application, 'format': 'cookie', 'enable_syno_token':'yes'}
if self._otp_code:
params['otp_code'] = self._otp_code
if self._device_id is not None and self._device_name is not None:
params['device_id'] = self._device_id
params['device_name'] = self._device_name
if self._device_id is not None and self._device_name is None or self._device_id is None and self._device_name is not None:
print("device_id and device_name must be set together")

if not self._session_expire and self._sid is not None:
self._session_expire = False
Expand Down
4 changes: 3 additions & 1 deletion synology_api/base_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@ def __init__(self,
dsm_version: int = 7,
debug: bool = True,
otp_code: Optional[str] = None,
device_id: Optional[str] = None,
device_name: Optional[str] = None,
application: str = 'Core',
) -> None:

self.application = application
self.session: syn.Authentication = syn.Authentication(ip_address, port, username, password, secure, cert_verify,
dsm_version, debug, otp_code)
dsm_version, debug, otp_code, device_id, device_name)
self.session.login(self.application)
self.session.get_api_list(self.application)
self.session.get_api_list()
Expand Down
4 changes: 3 additions & 1 deletion synology_api/filestation.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,13 @@ def __init__(self,
dsm_version: int = 7,
debug: bool = True,
otp_code: Optional[str] = None,
device_id: Optional[str] = None,
device_name: Optional[str] = None,
interactive_output: bool = True
) -> None:

super(FileStation, self).__init__(ip_address, port, username, password, secure, cert_verify,
dsm_version, debug, otp_code, 'FileStation')
dsm_version, debug, otp_code, device_id, device_name, 'FileStation')

self._dir_taskid: str = ''
self._dir_taskid_list: list[str] = []
Expand Down
6 changes: 4 additions & 2 deletions synology_api/photos.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,13 @@ def __init__(self,
cert_verify: bool = False,
dsm_version: int = 7,
debug: bool = True,
otp_code: Optional[str] = None
otp_code: Optional[str] = None,
device_id: Optional[str] = None,
device_name: Optional[str] = None
) -> None:

super(Photos, self).__init__(ip_address, port, username, password, secure, cert_verify,
dsm_version, debug, otp_code, 'FotoStation')
dsm_version, debug, otp_code, device_id, device_name, 'FotoStation')

self.session.get_api_list('Foto')

Expand Down

0 comments on commit c011003

Please sign in to comment.