From 11278ebe5faed5fac6f454b9d5ba22f75c8bff97 Mon Sep 17 00:00:00 2001 From: Andrew Date: Tue, 1 Mar 2022 00:33:09 -0500 Subject: [PATCH] Added translation for backup start/end messages. Finalize bedrock support. Removed confusion so server stats won't be shown if server isn't running. --- app/classes/minecraft/stats.py | 200 +++++++++++++++++++-------------- app/classes/shared/server.py | 4 +- app/translations/en_EN.json | 4 +- 3 files changed, 122 insertions(+), 86 deletions(-) diff --git a/app/classes/minecraft/stats.py b/app/classes/minecraft/stats.py index d203957d..8bae5869 100644 --- a/app/classes/minecraft/stats.py +++ b/app/classes/minecraft/stats.py @@ -170,11 +170,10 @@ class Stats: except Exception as e: server_icon = False logger.info(f"Unable to read the server icon : {e}") - print('in raw stats') ping_data = { 'online': ping_obj['server_player_count'], 'max': ping_obj['server_player_max'], - 'players': 0, + 'players': [], 'server_description': ping_obj['server_edition'], 'server_version': ping_obj['server_version_name'], 'server_icon': server_icon @@ -258,28 +257,47 @@ class Stats: # if we got a good ping return, let's parse it if int_mc_ping: int_data = True - if servers_helper.get_server_type_by_id(server_id) == 'minecraft-bedrock': + if servers_helper.get_server_type_by_id(s['server_id']) == 'minecraft-bedrock': ping_data = self.parse_server_RakNet_ping(int_mc_ping) else: ping_data = self.parse_server_ping(int_mc_ping) - - server_stats = { - 'id': server_id, - 'started': server_obj.get_start_time(), - 'running': server_obj.check_running(), - 'cpu': p_stats.get('cpu_usage', 0), - 'mem': p_stats.get('memory_usage', 0), - "mem_percent": p_stats.get('mem_percentage', 0), - 'world_name': world_name, - 'world_size': self.get_world_size(world_path), - 'server_port': server_port, - 'int_ping_results': int_data, - 'online': ping_data.get("online", False), - "max": ping_data.get("max", False), - 'players': ping_data.get("players", False), - 'desc': ping_data.get("server_description", False), - 'version': ping_data.get("server_version", False) - } + #Makes sure we only show stats when a server is online otherwise people have gotten confused. + if server_obj.check_running(): + server_stats = { + 'id': server_id, + 'started': server_obj.get_start_time(), + 'running': server_obj.check_running(), + 'cpu': p_stats.get('cpu_usage', 0), + 'mem': p_stats.get('memory_usage', 0), + "mem_percent": p_stats.get('mem_percentage', 0), + 'world_name': world_name, + 'world_size': self.get_world_size(world_path), + 'server_port': server_port, + 'int_ping_results': int_data, + 'online': ping_data.get("online", False), + "max": ping_data.get("max", False), + 'players': ping_data.get("players", False), + 'desc': ping_data.get("server_description", False), + 'version': ping_data.get("server_version", False) + } + else: + server_stats = { + 'id': server_id, + 'started': server_obj.get_start_time(), + 'running': server_obj.check_running(), + 'cpu': p_stats.get('cpu_usage', 0), + 'mem': p_stats.get('memory_usage', 0), + "mem_percent": p_stats.get('mem_percentage', 0), + 'world_name': world_name, + 'world_size': self.get_world_size(world_path), + 'server_port': server_port, + 'int_ping_results': int_data, + 'online': False, + "max": False, + 'players': False, + 'desc': False, + 'version': False + } # add this servers data to the stack server_stats_list.append(server_stats) @@ -323,13 +341,81 @@ class Stats: int_data = False ping_data = {} + #Makes sure we only show stats when a server is online otherwise people have gotten confused. + if server_obj.check_running(): + # if we got a good ping return, let's parse it + if servers_helper.get_server_type_by_id(server_id) != 'minecraft-bedrock': + if int_mc_ping: + int_data = True + ping_data = self.parse_server_ping(int_mc_ping) - # if we got a good ping return, let's parse it - if servers_helper.get_server_type_by_id(server_id) != 'minecraft-bedrock': - if int_mc_ping: - int_data = True - ping_data = self.parse_server_ping(int_mc_ping) + server_stats = { + 'id': server_id, + 'started': server_obj.get_start_time(), + 'running': server_obj.check_running(), + 'cpu': p_stats.get('cpu_usage', 0), + 'mem': p_stats.get('memory_usage', 0), + "mem_percent": p_stats.get('mem_percentage', 0), + 'world_name': world_name, + 'world_size': self.get_world_size(world_path), + 'server_port': server_port, + 'int_ping_results': int_data, + 'online': ping_data.get("online", False), + "max": ping_data.get("max", False), + 'players': ping_data.get("players", False), + 'desc': ping_data.get("server_description", False), + 'version': ping_data.get("server_version", False), + 'icon': ping_data.get("server_icon", False) + } + else: + if int_mc_ping: + int_data = True + ping_data = self.parse_server_RakNet_ping(int_mc_ping) + try: + server_icon = base64.encodebytes(ping_data['icon']) + except Exception as e: + server_icon = False + logger.info(f"Unable to read the server icon : {e}") + + server_stats = { + 'id': server_id, + 'started': server_obj.get_start_time(), + 'running': server_obj.check_running(), + 'cpu': p_stats.get('cpu_usage', 0), + 'mem': p_stats.get('memory_usage', 0), + "mem_percent": p_stats.get('mem_percentage', 0), + 'world_name': world_name, + 'world_size': self.get_world_size(world_path), + 'server_port': server_port, + 'int_ping_results': int_data, + 'online': ping_data['online'], + 'max': ping_data['max'], + 'players': [], + 'desc': ping_data['server_description'], + 'version': ping_data['server_version'], + 'icon': server_icon + } + else: + server_stats = { + 'id': server_id, + 'started': server_obj.get_start_time(), + 'running': server_obj.check_running(), + 'cpu': p_stats.get('cpu_usage', 0), + 'mem': p_stats.get('memory_usage', 0), + "mem_percent": p_stats.get('mem_percentage', 0), + 'world_name': world_name, + 'world_size': self.get_world_size(world_path), + 'server_port': server_port, + 'int_ping_results': int_data, + 'online': False, + 'max': False, + 'players': False, + 'desc': False, + 'version': False, + 'icon': False + } + else: server_stats = { 'id': server_id, 'started': server_obj.get_start_time(), @@ -341,65 +427,13 @@ class Stats: 'world_size': self.get_world_size(world_path), 'server_port': server_port, 'int_ping_results': int_data, - 'online': ping_data.get("online", False), - "max": ping_data.get("max", False), - 'players': ping_data.get("players", False), - 'desc': ping_data.get("server_description", False), - 'version': ping_data.get("server_version", False), - 'icon': ping_data.get("server_icon", False) + 'online': False, + "max": False, + 'players': False, + 'desc': False, + 'version': False } - else: - - if int_mc_ping: - int_data = True - ping_data = self.parse_server_RakNet_ping(int_mc_ping) - try: - server_icon = base64.encodebytes(ping_data['icon']) - except Exception as e: - server_icon = False - logger.info(f"Unable to read the server icon : {e}") - - print(ping_data) - - server_stats = { - 'id': server_id, - 'started': server_obj.get_start_time(), - 'running': server_obj.check_running(), - 'cpu': p_stats.get('cpu_usage', 0), - 'mem': p_stats.get('memory_usage', 0), - "mem_percent": p_stats.get('mem_percentage', 0), - 'world_name': world_name, - 'world_size': self.get_world_size(world_path), - 'server_port': server_port, - 'int_ping_results': int_data, - 'online': ping_data['online'], - 'max': ping_data['max'], - 'players': 0, - 'server_description': ping_data['server_description'], - 'server_version': ping_data['server_version'], - 'server_icon': server_icon - } - else: - server_stats = { - 'id': server_id, - 'started': server_obj.get_start_time(), - 'running': server_obj.check_running(), - 'cpu': p_stats.get('cpu_usage', 0), - 'mem': p_stats.get('memory_usage', 0), - "mem_percent": p_stats.get('mem_percentage', 0), - 'world_name': world_name, - 'world_size': self.get_world_size(world_path), - 'server_port': server_port, - 'int_ping_results': int_data, - 'online': 0, - 'max': 0, - 'players': 0, - 'server_description': '', - 'server_version': '', - 'server_icon': '' - } - return server_stats def record_stats(self): diff --git a/app/classes/shared/server.py b/app/classes/shared/server.py index b9ead600..94c0f9d8 100644 --- a/app/classes/shared/server.py +++ b/app/classes/shared/server.py @@ -577,7 +577,7 @@ class Server: logger.info(f"Starting server {self.name} (ID {self.server_id}) backup") server_users = server_permissions.get_server_user_list(self.server_id) for user in server_users: - websocket_helper.broadcast_user(user, 'notification', "Starting backup for " + self.name) + websocket_helper.broadcast_user(user, 'notification', translation.translate('notify', 'backupStarted', users_helper.get_user_lang_by_id(user)) + self.name) time.sleep(3) self.is_backingup = True conf = management_helper.get_backup_config(self.server_id) @@ -617,7 +617,7 @@ class Server: logger.info(f"Backup of server: {self.name} completed") server_users = server_permissions.get_server_user_list(self.server_id) for user in server_users: - websocket_helper.broadcast_user(user, 'notification', "Backup completed successfully for " + self.name) + websocket_helper.broadcast_user(user, 'notification', translation.translate('notify', 'backupComplete', users_helper.get_user_lang_by_id(user)) + self.name) time.sleep(3) return except: diff --git a/app/translations/en_EN.json b/app/translations/en_EN.json index 1a9ec7d3..ba6dba3c 100644 --- a/app/translations/en_EN.json +++ b/app/translations/en_EN.json @@ -213,7 +213,9 @@ "logout": "Logout", "preparingLogs": " Please wait while we prepare your logs... We`ll send a notification when they`re ready. This may take a while for large deployments.", "downloadLogs": "Download Support Logs?", - "finishedPreparing": "We've finished preparing your support logs. Please click download to download" + "finishedPreparing": "We've finished preparing your support logs. Please click download to download", + "backupComplete": "Backup completed successfully for server ", + "backupStarted": "Backup started for server " }, "serverBackups": { "backupNow": "Backup Now!",