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