From d3a188106c5cb5e10639bf47f1108a5d5a99cdfe Mon Sep 17 00:00:00 2001 From: anima Date: Sat, 21 Sep 2024 19:45:48 +0200 Subject: [PATCH] add health check --- SatiAPI.py | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/SatiAPI.py b/SatiAPI.py index 906dcdd..76fe840 100644 --- a/SatiAPI.py +++ b/SatiAPI.py @@ -16,7 +16,7 @@ urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) class SatiAPI: """A API wrapper for Satisfactory dedicated server""" __AUTHOR__ = 'anima' - __VERSION__ = '0.1.0' + __VERSION__ = '0.2.1' def __init__(self, host: str = None, port: int = 7777, token: str = None, conffile: str = 'conf.yml', logfile: str = 'SatiAPI.log', loglevel: int = 20) -> None: """create a wrapper for satisfactory dedicated server @@ -165,7 +165,12 @@ class SatiAPI: response = requests.post(f'https://{self.host}:7777/api/v1', headers=headers, json=payload, verify=False) if response.status_code == 200: - return json.loads(response.text)['data'] + json_response = json.loads(response.text) + if 'data' in json_response: + return json_response + else: + self._log.error(f'wrong response data {json_response=}') + else: self._log.error(f'non successfull response {response.content} [{response.status_code}]') self._log.debug(f'{response.request.url=}') @@ -221,7 +226,20 @@ class SatiAPI: """ return self.__query('QueryServerState') + def get_health(self, ClientCustomData: str = '') -> dict: + """get health check + + :param ClientCustomData: Custom Data passed from the Game Client or Third Party service. Not used by vanilla Dedicated Servers + :type ClientCustomData: string + :return: full return from server + :rtpye: dict + """ + data = dict() + data['ClientCustomData'] = ClientCustomData + + return self.__query('HealthCheck', data) if __name__ == "__main__": sati = SatiAPI(loglevel=10) - print('Verbundene Spieler: ', sati.get_status()['serverGameState']['numConnectedPlayers']) \ No newline at end of file + # print('Verbundene Spieler: ', sati.get_status()['serverGameState']['numConnectedPlayers']) + print(sati.health_check()) \ No newline at end of file