add rename server
This commit is contained in:
95
SatiAPI.py
95
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.9.0'
|
||||
__VERSION__ = '0.10.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
|
||||
@@ -197,6 +197,10 @@ class SatiAPI:
|
||||
# self.get_token()
|
||||
self._log.error(f'wrong response data {json_response=}')
|
||||
|
||||
elif response.status_code == 204:
|
||||
# response from rename server
|
||||
return True
|
||||
|
||||
else:
|
||||
self._log.error(f'non successfull response {response.content} [{response.status_code}]')
|
||||
self._log.debug(f'{response.request.url=}')
|
||||
@@ -263,6 +267,36 @@ class SatiAPI:
|
||||
self._log.error('server can not be clamed because no authentication possable')
|
||||
return False
|
||||
|
||||
def get_token(self, password: str = None, privilegeLevel: str = 'Administrator') -> bool:
|
||||
"""get token from satisfacory dedicated server, password is needed!
|
||||
Attempts to log in to the Dedicated Server as a player using either Admin Password or Client Protection Password. This function requires no Authentication.
|
||||
|
||||
:param password: password of admin level
|
||||
:type password: string
|
||||
:param privilegeLevel: level of authentication
|
||||
:type privilegeLevel: string
|
||||
:return: true if successfull get a token
|
||||
:rtype: bool
|
||||
"""
|
||||
if self.token is not None:
|
||||
self._log.warning('you have already a token')
|
||||
if isinstance(password, str):
|
||||
self._log.debug('password used from parameter')
|
||||
else:
|
||||
password = self._get_config_password()
|
||||
if password is not None:
|
||||
self._log.debug('password used from conf file')
|
||||
else:
|
||||
self._log.error(f'no password for auth given!')
|
||||
return False
|
||||
|
||||
data = dict()
|
||||
data['password'] = password
|
||||
data['MinimumPrivilegeLevel'] = privilegeLevel
|
||||
|
||||
response = self.__query('PasswordLogin', data)
|
||||
return self._save_token(response)
|
||||
|
||||
def set_admin_password(self, password: str = None):
|
||||
"""Updates the currently set Admin Password. This will invalidate all previously issued Client and Admin authentication tokens. Requires Admin privileges. Function does not return any data on success.
|
||||
|
||||
@@ -303,36 +337,24 @@ class SatiAPI:
|
||||
response = self.__query('SetClientPassword', data, True)
|
||||
return True
|
||||
|
||||
def get_token(self, password: str = None, privilegeLevel: str = 'Administrator') -> bool:
|
||||
"""get token from satisfacory dedicated server, password is needed!
|
||||
Attempts to log in to the Dedicated Server as a player using either Admin Password or Client Protection Password. This function requires no Authentication.
|
||||
def set_servername(self, servername: str) -> bool:
|
||||
"""Renames the Dedicated Server once it has been claimed. Requires Admin privileges. Function does not return any data on success.
|
||||
|
||||
:param password: password of admin level
|
||||
:type password: string
|
||||
:param privilegeLevel: level of authentication
|
||||
:type privilegeLevel: string
|
||||
:return: true if successfull get a token
|
||||
:param servername: New name of the Dedicated Server
|
||||
:type servername: string
|
||||
:return: true if set new name successfull
|
||||
:rtype: bool
|
||||
"""
|
||||
if self.token is not None:
|
||||
self._log.warning('you have already a token')
|
||||
if isinstance(password, str):
|
||||
self._log.debug('password used from parameter')
|
||||
if isinstance(servername, str):
|
||||
# TODO: add check if contain non allowed characters
|
||||
data = dict()
|
||||
data['ServerName'] = servername
|
||||
|
||||
response = self.__query('RenameServer', data, True)
|
||||
return response
|
||||
else:
|
||||
password = self._get_config_password()
|
||||
if password is not None:
|
||||
self._log.debug('password used from conf file')
|
||||
else:
|
||||
self._log.error(f'no password for auth given!')
|
||||
return False
|
||||
|
||||
data = dict()
|
||||
data['password'] = password
|
||||
data['MinimumPrivilegeLevel'] = privilegeLevel
|
||||
|
||||
response = self.__query('PasswordLogin', data)
|
||||
return self._save_token(response)
|
||||
|
||||
self._log.error(f'{servername=} is not a valid name')
|
||||
return False
|
||||
|
||||
def get_status(self) -> dict:
|
||||
"""Retrieves the current state of the Dedicated Server. Does not require any input parameters.
|
||||
@@ -374,25 +396,26 @@ class SatiAPI:
|
||||
|
||||
|
||||
## todo
|
||||
#RenameServer
|
||||
#SetClientPassword
|
||||
#RunCommand
|
||||
#Shutdown
|
||||
|
||||
#SetAutoLoadSessionName
|
||||
#ApplyServerOptions
|
||||
#ApplyAdvancedGameSettings
|
||||
#RunCommand
|
||||
#Shutdown
|
||||
|
||||
#CreateNewGame
|
||||
#SaveGame
|
||||
#LoadGame
|
||||
#DownloadSaveGame
|
||||
#UploadSaveGame
|
||||
|
||||
#DeleteSaveFile
|
||||
#DeleteSaveSession
|
||||
#EnumerateSessions
|
||||
#LoadGame
|
||||
#UploadSaveGame
|
||||
#DownloadSaveGame
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sati = SatiAPI(loglevel=10)
|
||||
# print('Verbundene Spieler: ', sati.get_status()['serverGameState']['numConnectedPlayers'])
|
||||
print(sati.get_status())
|
||||
print(sati.token)
|
||||
print(sati.set_client_password())
|
||||
print(sati.set_servername('OtherName'))
|
||||
Reference in New Issue
Block a user