mirror of
https://github.com/N4S4/synology-api.git
synced 2025-07-24 10:00:37 +00:00
80 lines
3.2 KiB
Python
80 lines
3.2 KiB
Python
from __future__ import annotations
|
|
from typing import Optional
|
|
from . import base_api
|
|
|
|
|
|
class AudioStation(base_api.BaseApi):
|
|
|
|
def get_info(self) -> dict[str, object] | str:
|
|
api_name = 'SYNO.AudioStation.Info'
|
|
info = self.gen_list[api_name]
|
|
api_path = info['path']
|
|
req_param = {'version': info['maxVersion'], 'method': 'getinfo'}
|
|
return self.request_data(api_name, api_path, req_param)
|
|
|
|
def get_playlist_info(self) -> dict[str, object] | str:
|
|
api_name = 'SYNO.AudioStation.Playlist'
|
|
info = self.gen_list[api_name]
|
|
api_path = info['path']
|
|
req_param = {'method': 'list', 'library': 'all', 'limit': '100000', 'version': info['maxVersion']}
|
|
|
|
return self.request_data(api_name, api_path, req_param)
|
|
|
|
def list_remote_player(self) -> dict[str, object] | str:
|
|
api_name = 'SYNO.AudioStation.RemotePlayer'
|
|
info = self.gen_list[api_name]
|
|
api_path = info['path']
|
|
req_param = {'method': 'list', 'type': 'all', 'additional': 'subplayer_list', 'version': info['maxVersion']}
|
|
|
|
return self.request_data(api_name, api_path, req_param)
|
|
|
|
def list_pinned_song(self) -> dict[str, object] | str:
|
|
api_name = 'SYNO.AudioStation.Pin'
|
|
info = self.gen_list[api_name]
|
|
api_path = info['path']
|
|
req_param = {'method': 'list', 'version': info['maxVersion']}
|
|
|
|
return self.request_data(api_name, api_path, req_param)
|
|
|
|
def device_id(self, device: str) -> dict[str, object] | str:
|
|
api_name = 'SYNO.AudioStation.RemotePlayer'
|
|
info = self.gen_list[api_name]
|
|
api_path = info['path']
|
|
req_param = {'method': 'getplaylist', 'id': device, 'version': info['maxVersion']}
|
|
|
|
return self.request_data(api_name, api_path, req_param)
|
|
|
|
# You Must choose the device if any from list_remote_player()
|
|
|
|
def remote_play(self, device: str) -> dict[str, object] | str:
|
|
api_name = 'SYNO.AudioStation.RemotePlayer'
|
|
info = self.gen_list[api_name]
|
|
api_path = info['path']
|
|
req_param = {'method': 'control', 'id': device, 'version': info['maxVersion'], 'action': 'play'}
|
|
|
|
return self.request_data(api_name, api_path, req_param)
|
|
|
|
def remote_stop(self, device: str) -> dict[str, object] | str:
|
|
api_name = 'SYNO.AudioStation.RemotePlayer'
|
|
info = self.gen_list[api_name]
|
|
api_path = info['path']
|
|
req_param = {'method': 'control', 'id': device, 'version': info['maxVersion'], 'action': 'stop'}
|
|
|
|
return self.request_data(api_name, api_path, req_param)
|
|
|
|
def remote_next(self, device: str) -> dict[str, object] | str:
|
|
api_name = 'SYNO.AudioStation.RemotePlayer'
|
|
info = self.gen_list[api_name]
|
|
api_path = info['path']
|
|
req_param = {'method': 'control', 'id': device, 'version': info['maxVersion'], 'action': 'next'}
|
|
|
|
return self.request_data(api_name, api_path, req_param)
|
|
|
|
def remote_prev(self, device: str) -> dict[str, object] | str:
|
|
api_name = 'SYNO.AudioStation.RemotePlayer'
|
|
info = self.gen_list[api_name]
|
|
api_path = info['path']
|
|
req_param = {'method': 'control', 'id': device, 'version': info['maxVersion'], 'action': 'prev'}
|
|
|
|
return self.request_data(api_name, api_path, req_param)
|