2023-02-26 13:17:36 +01:00
|
|
|
from ._client import AbstractApiClient, Response, default_retry
|
2021-06-03 15:20:39 +02:00
|
|
|
|
2020-01-30 14:47:36 +01:00
|
|
|
|
2022-07-20 16:33:03 +02:00
|
|
|
class ApiClient(AbstractApiClient):
|
|
|
|
VERSION = "2.0"
|
2022-03-04 14:00:14 +01:00
|
|
|
|
2022-07-20 16:33:03 +02:00
|
|
|
def __init__(self, base_url: str, api_key: str):
|
2023-02-26 13:17:36 +01:00
|
|
|
super().__init__(
|
|
|
|
base_url=base_url,
|
|
|
|
retry=default_retry(),
|
|
|
|
)
|
2022-07-20 16:33:03 +02:00
|
|
|
self.session.headers.update({"Authorization": f"Api-Key {api_key}"})
|
2020-01-30 14:47:36 +01:00
|
|
|
|
2022-08-24 10:38:53 +02:00
|
|
|
def get_info(self, **kwargs) -> Response:
|
|
|
|
return self._request("GET", "/api/v2/info", **kwargs)
|
|
|
|
|
2022-07-20 16:33:03 +02:00
|
|
|
def get_version(self, **kwargs) -> Response:
|
|
|
|
return self._request("GET", "/api/v2/version", **kwargs)
|
2020-01-30 14:47:36 +01:00
|
|
|
|
2022-07-20 16:33:03 +02:00
|
|
|
def get_show(self, item_id: int, **kwargs) -> Response:
|
|
|
|
return self._request("GET", f"/api/v2/shows/{item_id}", **kwargs)
|
2021-05-27 16:23:02 +02:00
|
|
|
|
2022-07-20 16:33:03 +02:00
|
|
|
def get_show_instance(self, item_id: int, **kwargs) -> Response:
|
|
|
|
return self._request("GET", f"/api/v2/show-instances/{item_id}", **kwargs)
|
2020-01-30 14:47:36 +01:00
|
|
|
|
2022-07-20 16:33:03 +02:00
|
|
|
def list_schedule(self, **kwargs) -> Response:
|
|
|
|
return self._request("GET", "/api/v2/schedule", **kwargs)
|
2022-02-22 18:19:16 +01:00
|
|
|
|
2022-07-20 16:33:03 +02:00
|
|
|
def get_webstream(self, item_id: int, **kwargs) -> Response:
|
|
|
|
return self._request("GET", f"/api/v2/webstreams/{item_id}", **kwargs)
|
2022-02-22 18:19:16 +01:00
|
|
|
|
2022-07-20 16:33:03 +02:00
|
|
|
def get_file(self, item_id: int, **kwargs) -> Response:
|
|
|
|
return self._request("GET", f"/api/v2/files/{item_id}", **kwargs)
|
2020-01-30 14:47:36 +01:00
|
|
|
|
2022-07-20 16:33:03 +02:00
|
|
|
def update_file(self, item_id: int, **kwargs) -> Response:
|
|
|
|
return self._request("PATCH", f"/api/v2/files/{item_id}", **kwargs)
|
2020-01-30 14:47:36 +01:00
|
|
|
|
2022-07-20 16:33:03 +02:00
|
|
|
def download_file(self, item_id: int, **kwargs) -> Response:
|
|
|
|
return self._request("GET", f"/api/v2/files/{item_id}/download", **kwargs)
|
2022-08-24 10:38:53 +02:00
|
|
|
|
|
|
|
def get_stream_preferences(self, **kwargs) -> Response:
|
|
|
|
return self._request("GET", "/api/v2/stream/preferences", **kwargs)
|
|
|
|
|
|
|
|
def get_stream_state(self, **kwargs) -> Response:
|
|
|
|
return self._request("GET", "/api/v2/stream/state", **kwargs)
|