add get sessions

Signed-off-by: anima <p.schreiner@4nima.de>
This commit is contained in:
2024-09-21 23:01:46 +02:00
parent 9354714919
commit da6bf7333c

View File

@@ -16,7 +16,7 @@ urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
class SatiAPI: class SatiAPI:
"""A API wrapper for Satisfactory dedicated server""" """A API wrapper for Satisfactory dedicated server"""
__AUTHOR__ = 'anima' __AUTHOR__ = 'anima'
__VERSION__ = '0.11.0' __VERSION__ = '0.11.3'
def __init__(self, host: str = None, port: int = 7777, token: str = None, conffile: str = 'conf.yml', logfile: str = 'SatiAPI.log', loglevel: int = 20) -> None: 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 """create a wrapper for satisfactory dedicated server
@@ -196,10 +196,17 @@ class SatiAPI:
# self._log.debug(f'token expired') # self._log.debug(f'token expired')
# self.get_token() # self.get_token()
self._log.error(f'wrong response data {json_response=}') self._log.error(f'wrong response data {json_response=}')
elif response.status_code == 201:
# The function has been executed and returned no error. Returned by some functions to indicate that a new file has been created, such as UploadSaveGame
return True
elif response.status_code == 202:
# The function has been executed, but is still being processed. This is returned by some functions with side deffects, such as LoadGame
return True
elif response.status_code == 204: elif response.status_code == 204:
# response from rename server, shutdown ... # used from some querys as response with no response content
print(query) # The function has been executed successfully, but returned no data (and no error)
return True return True
else: else:
@@ -386,6 +393,14 @@ class SatiAPI:
return self.__query('HealthCheck', data) return self.__query('HealthCheck', data)
def get_sessions(self):
return self.__query('EnumerateSessions', auth=True)
# def create_new_game(self, sessionname, startlocation) -> bool:
# data = dict()
# data['NewGameData']
# pass
def get_server_options(self) -> dict: def get_server_options(self) -> dict:
"""Retrieves currently applied server options and server options that are still pending application (because of needing session or server restart) Does not require input parameters. """Retrieves currently applied server options and server options that are still pending application (because of needing session or server restart) Does not require input parameters.
@@ -426,4 +441,4 @@ if __name__ == "__main__":
sati = SatiAPI(loglevel=10) sati = SatiAPI(loglevel=10)
# print('Verbundene Spieler: ', sati.get_status()['serverGameState']['numConnectedPlayers']) # print('Verbundene Spieler: ', sati.get_status()['serverGameState']['numConnectedPlayers'])
print(sati.get_status()) print(sati.get_status())
print(sati.shutdown()) print(sati.get_sessions())