Files
synology-api/synology_api/drive_admin_console.py
2023-03-11 21:35:44 -05:00

159 lines
6.0 KiB
Python

from typing import Optional
from . import base_api_core
class AdminConsole(base_api_core.Core):
def __init__(self,
ip_address: str,
port: str,
username: str,
password: str,
secure: bool = False,
cert_verify: bool = False,
dsm_version: int = 7,
debug: bool = True,
otp_code: Optional[str] = None
) -> None:
super(AdminConsole, self).__init__(ip_address, port, username, password, secure, cert_verify, dsm_version, debug, otp_code)
return
def status_info(self) -> dict[str, object]:
api_name = 'SYNO.SynologyDrive'
info = self.gen_list[api_name]
api_path = info['path']
req_param = {'version': info['maxVersion'], 'method': 'get_status'}
return self.request_data(api_name, api_path, req_param)
def config_info(self) -> dict[str, object]:
api_name = 'SYNO.SynologyDrive.Config'
info = self.gen_list[api_name]
api_path = info['path']
req_param = {'version': info['maxVersion'], 'method': 'get'}
return self.request_data(api_name, api_path, req_param)
def connections(self) -> dict[str, object]:
api_name = 'SYNO.SynologyDrive.Connection'
info = self.gen_list[api_name]
api_path = info['path']
req_param = {'version': info['maxVersion'], 'method': 'summary'}
return self.request_data(api_name, api_path, req_param)
def drive_check_user(self) -> dict[str, object]:
api_name = 'SYNO.SynologyDrive'
info = self.gen_list[api_name]
api_path = info['path']
req_param = {'version': info['maxVersion'], 'method': 'check_user'}
return self.request_data(api_name, api_path, req_param)
def active_connections(self) -> dict[str, object]:
api_name = 'SYNO.SynologyDrive.Connection'
info = self.gen_list[api_name]
api_path = info['path']
req_param = {'version': info['maxVersion'], 'method': 'list'}
return self.request_data(api_name, api_path, req_param)
def active_sync_connections(self) -> dict[str, object]:
api_name = 'SYNO.SynologyDriveShareSync.Connection'
info = self.gen_list[api_name]
api_path = info['path']
req_param = {'version': info['maxVersion'], 'method': 'list'}
return self.request_data(api_name, api_path, req_param)
def share_active_list(self) -> dict[str, object]:
api_name = 'SYNO.SynologyDrive.Share'
info = self.gen_list[api_name]
api_path = info['path']
req_param = {'version': info['maxVersion'], 'method': 'list_active'}
return self.request_data(api_name, api_path, req_param)
def log(self,
share_type:str='all',
get_all:bool=False,
limit:int=1000,
keyword:str='',
date_from:int = 0,
date_to:int = 0,
username: str = '',
target: str = 'user'
) -> dict[str, object]:
api_name = 'SYNO.SynologyDrive.Log'
info = self.gen_list[api_name]
api_path = info['path']
if get_all:
get_all = 'true'
elif not get_all:
get_all = 'false'
else:
return 'get_all must be True or False'
req_param = {'version': info['maxVersion'], 'method': 'list', 'share_type': share_type, 'get_all': get_all,
'limit': limit, 'keyword': keyword, 'datefrom': date_from, 'dateto': date_to, 'username': username,
'target': target}
return self.request_data(api_name, api_path, req_param)
def c2fs_share(self) -> dict[str, object]:
api_name = 'SYNO.C2FS.Share'
info = self.gen_list[api_name]
api_path = info['path']
req_param = {'version': info['maxVersion'], 'method': 'list'}
return self.request_data(api_name, api_path, req_param)
def settings(self) -> dict[str, object]:
api_name = 'SYNO.SynologyDrive.Settings'
info = self.gen_list[api_name]
api_path = info['path']
req_param = {'version': info['maxVersion'], 'method': 'list'}
return self.request_data(api_name, api_path, req_param)
def db_usage(self) -> dict[str, object]:
api_name = 'SYNO.SynologyDrive.DBUsage'
info = self.gen_list[api_name]
api_path = info['path']
req_param = {'version': info['maxVersion'], 'method': 'get'}
return self.request_data(api_name, api_path, req_param)
def delete_status(self) -> dict[str, object]:
api_name = 'SYNO.SynologyDrive.Node.Delete'
info = self.gen_list[api_name]
api_path = info['path']
req_param = {'version': info['maxVersion'], 'method': 'status'}
return self.request_data(api_name, api_path, req_param)
def file_property_transfer_status(self) -> dict[str, object]:
api_name = 'SYNO.SynologyDrive.Migration.UserHome'
info = self.gen_list[api_name]
api_path = info['path']
req_param = {'version': info['maxVersion'], 'method': 'status'}
return self.request_data(api_name, api_path, req_param)
def user_sync_profile(self, user:str='', start:int=0, limit:str|int='null') -> dict[str, object]:
api_name = 'SYNO.SynologyDrive.Profiles'
info = self.gen_list[api_name]
api_path = info['path']
req_param = {'version': info['maxVersion'], 'method': 'list', 'start': start, 'limit': limit, 'user': user}
return self.request_data(api_name, api_path, req_param)
def index_pause(self, time_pause:int=60) -> dict[str, object]:
api_name = 'SYNO.SynologyDrive.Index'
info = self.gen_list[api_name]
api_path = info['path']
req_param = {'version': info['maxVersion'], 'method': 'set_native_client_index_pause',
'pause_duration': time_pause}
return self.request_data(api_name, api_path, req_param)