From 491415c7fa60d9327422a287b984a3eff796503c Mon Sep 17 00:00:00 2001 From: Andrew Date: Wed, 15 Feb 2023 18:01:21 -0500 Subject: [PATCH 1/3] Re-black codebase with new standard --- app/classes/controllers/servers_controller.py | 2 -- app/classes/minecraft/mc_ping.py | 1 - app/classes/minecraft/serverjars.py | 1 - app/classes/minecraft/stats.py | 3 --- app/classes/models/crafty_permissions.py | 1 + app/classes/models/management.py | 1 + app/classes/models/roles.py | 1 + app/classes/models/server_permissions.py | 1 + app/classes/models/server_stats.py | 1 + app/classes/models/servers.py | 1 + app/classes/models/users.py | 2 ++ app/classes/shared/command.py | 1 - app/classes/shared/helpers.py | 6 ------ app/classes/shared/import_helper.py | 1 - app/classes/shared/installer.py | 1 - app/classes/shared/main_controller.py | 1 - app/classes/shared/server.py | 8 -------- app/classes/shared/tasks.py | 1 - app/classes/web/default_handler.py | 1 - app/classes/web/public_handler.py | 4 ---- app/classes/web/routes/api/auth/login.py | 1 - app/classes/web/routes/api/servers/index.py | 1 - app/classes/web/server_handler.py | 1 - app/classes/web/tornado_handler.py | 2 -- app/classes/web/upload_handler.py | 2 -- app/classes/web/websocket_handler.py | 1 - 26 files changed, 8 insertions(+), 39 deletions(-) diff --git a/app/classes/controllers/servers_controller.py b/app/classes/controllers/servers_controller.py index 4c97a6c7..1503b78f 100644 --- a/app/classes/controllers/servers_controller.py +++ b/app/classes/controllers/servers_controller.py @@ -166,7 +166,6 @@ class ServersController(metaclass=Singleton): raise Exception(f"Unable to find server object for server id {server_id}") def init_all_servers(self): - servers = self.get_all_defined_servers() self.failed_servers = [] @@ -227,7 +226,6 @@ class ServersController(metaclass=Singleton): ) def check_server_loaded(self, server_id_to_check: int): - logger.info(f"Checking to see if we already registered {server_id_to_check}") for server in self.servers_list: diff --git a/app/classes/minecraft/mc_ping.py b/app/classes/minecraft/mc_ping.py index 1c52ab98..79610d8d 100644 --- a/app/classes/minecraft/mc_ping.py +++ b/app/classes/minecraft/mc_ping.py @@ -19,7 +19,6 @@ class Server: self.description = data.get("description") # print(self.description) if isinstance(self.description, dict): - # cat server if "translate" in self.description: self.description = self.description["translate"] diff --git a/app/classes/minecraft/serverjars.py b/app/classes/minecraft/serverjars.py index 3ecfdb8f..b70a8c40 100644 --- a/app/classes/minecraft/serverjars.py +++ b/app/classes/minecraft/serverjars.py @@ -104,7 +104,6 @@ class ServerJars: logger.error(f"Unable to update serverjars.com cache file: {e}") def refresh_cache(self): - cache_file = self.helper.serverjar_cache cache_old = self.helper.is_file_older_than_x_days(cache_file) diff --git a/app/classes/minecraft/stats.py b/app/classes/minecraft/stats.py index 07dd9c0d..8001b1d1 100644 --- a/app/classes/minecraft/stats.py +++ b/app/classes/minecraft/stats.py @@ -211,7 +211,6 @@ class Stats: @staticmethod def get_world_size(server_path): - total_size = 0 total_size = Helpers.get_dir_size(server_path) @@ -221,7 +220,6 @@ class Stats: return level_total_size def get_server_players(self, server_id): - server = HelperServers.get_server_data_by_id(server_id) logger.info(f"Getting players for server {server}") @@ -295,7 +293,6 @@ class Stats: @staticmethod def parse_server_raknet_ping(ping_obj: object): - try: server_icon = base64.encodebytes(ping_obj["icon"]) except Exception as e: diff --git a/app/classes/models/crafty_permissions.py b/app/classes/models/crafty_permissions.py index 22383408..7430f332 100644 --- a/app/classes/models/crafty_permissions.py +++ b/app/classes/models/crafty_permissions.py @@ -15,6 +15,7 @@ from app.classes.shared.permission_helper import PermissionHelper logger = logging.getLogger(__name__) + # ********************************************************************************** # User_Crafty Class # ********************************************************************************** diff --git a/app/classes/models/management.py b/app/classes/models/management.py index c2b5afde..3c2c0bf2 100644 --- a/app/classes/models/management.py +++ b/app/classes/models/management.py @@ -20,6 +20,7 @@ from app.classes.shared.main_models import DatabaseShortcuts logger = logging.getLogger(__name__) + # ********************************************************************************** # Audit_Log Class # ********************************************************************************** diff --git a/app/classes/models/roles.py b/app/classes/models/roles.py index 541f67e8..abc98735 100644 --- a/app/classes/models/roles.py +++ b/app/classes/models/roles.py @@ -15,6 +15,7 @@ from app.classes.shared.helpers import Helpers logger = logging.getLogger(__name__) + # ********************************************************************************** # Roles Class # ********************************************************************************** diff --git a/app/classes/models/server_permissions.py b/app/classes/models/server_permissions.py index 8844b3df..eb5e3f35 100644 --- a/app/classes/models/server_permissions.py +++ b/app/classes/models/server_permissions.py @@ -16,6 +16,7 @@ from app.classes.shared.permission_helper import PermissionHelper logger = logging.getLogger(__name__) + # ********************************************************************************** # Role Servers Class # ********************************************************************************** diff --git a/app/classes/models/server_stats.py b/app/classes/models/server_stats.py index ccb21879..14f85ad3 100644 --- a/app/classes/models/server_stats.py +++ b/app/classes/models/server_stats.py @@ -29,6 +29,7 @@ logger = logging.getLogger(__name__) peewee_logger = logging.getLogger("peewee") peewee_logger.setLevel(logging.INFO) + # ********************************************************************************** # Servers Stats Class # ********************************************************************************** diff --git a/app/classes/models/servers.py b/app/classes/models/servers.py index 96f606a9..a83fd0a2 100644 --- a/app/classes/models/servers.py +++ b/app/classes/models/servers.py @@ -15,6 +15,7 @@ from app.classes.models.base_model import BaseModel logger = logging.getLogger(__name__) + # ********************************************************************************** # Servers Model # ********************************************************************************** diff --git a/app/classes/models/users.py b/app/classes/models/users.py index 9b4805a3..496e8d2c 100644 --- a/app/classes/models/users.py +++ b/app/classes/models/users.py @@ -21,6 +21,7 @@ from app.classes.models.roles import Roles, HelperRoles logger = logging.getLogger(__name__) + # ********************************************************************************** # Users Class # ********************************************************************************** @@ -58,6 +59,7 @@ PUBLIC_USER_ATTRS: t.Final = [ "lang", # maybe remove? ] + # ********************************************************************************** # API Keys Class # ********************************************************************************** diff --git a/app/classes/shared/command.py b/app/classes/shared/command.py index 7e1e9456..26fdd2f0 100644 --- a/app/classes/shared/command.py +++ b/app/classes/shared/command.py @@ -58,7 +58,6 @@ class MainPrompt(cmd.Cmd): Console.info("Unknown migration command") def do_set_passwd(self, line): - try: username = str(line).lower() # If no user is found it returns None diff --git a/app/classes/shared/helpers.py b/app/classes/shared/helpers.py index 6320d60e..ba333e92 100644 --- a/app/classes/shared/helpers.py +++ b/app/classes/shared/helpers.py @@ -596,7 +596,6 @@ class Helpers: # open our file with open(file_name, "r", encoding="utf-8") as f: - # seek f.seek(0, 2) @@ -761,7 +760,6 @@ class Helpers: @staticmethod def get_file_contents(path: str, lines=100): - contents = "" if os.path.exists(path) and os.path.isfile(path): @@ -782,12 +780,10 @@ class Helpers: return False def create_session_file(self, ignore=False): - if ignore and os.path.exists(self.session_file): os.remove(self.session_file) if os.path.exists(self.session_file): - file_data = self.get_file_contents(self.session_file) try: data = json.loads(file_data) @@ -895,7 +891,6 @@ class Helpers: logger.critical(f"Check generated exception due to permssion error: {e}") def create_self_signed_cert(self, cert_dir=None): - if cert_dir is None: cert_dir = os.path.join(self.config_dir, "web", "certs") @@ -1047,7 +1042,6 @@ class Helpers: return output def generate_dir(self, folder, output=""): - dir_list = [] unsorted_files = [] file_list = os.listdir(folder) diff --git a/app/classes/shared/import_helper.py b/app/classes/shared/import_helper.py index 88ee91fc..e3762aad 100644 --- a/app/classes/shared/import_helper.py +++ b/app/classes/shared/import_helper.py @@ -226,7 +226,6 @@ class ImportHelpers: download_thread.start() def download_threaded_bedrock_server(self, path, new_id): - # downloads zip from remote url try: bedrock_url = Helpers.get_latest_bedrock_url() diff --git a/app/classes/shared/installer.py b/app/classes/shared/installer.py index d82d2399..6e0cec77 100644 --- a/app/classes/shared/installer.py +++ b/app/classes/shared/installer.py @@ -10,7 +10,6 @@ class Install: ) def do_install(self): - # are we in a venv? if not self.is_venv(): print("Crafty Requires a venv to install") diff --git a/app/classes/shared/main_controller.py b/app/classes/shared/main_controller.py index 3bbe05f8..52bb6a72 100644 --- a/app/classes/shared/main_controller.py +++ b/app/classes/shared/main_controller.py @@ -941,7 +941,6 @@ class Controller: def remove_server(self, server_id, files): counter = 0 for server in self.servers.servers_list: - # if this is the droid... im mean server we are looking for... if str(server["server_id"]) == str(server_id): server_data = self.servers.get_server_data(server_id) diff --git a/app/classes/shared/server.py b/app/classes/shared/server.py index 8a6cd4cd..906ed9b8 100644 --- a/app/classes/shared/server.py +++ b/app/classes/shared/server.py @@ -590,7 +590,6 @@ class ServerInstance: # We need to grab the exact forge version number. # We know we can find it here in the run.sh/bat script. try: - # Getting the forge version from the executable command version = re.findall( r"forge-([0-9\.]+)((?:)|(?:-([0-9\.]+)-[a-zA-Z]+)).jar", @@ -850,7 +849,6 @@ class ServerInstance: return True def crash_detected(self, name): - # clear the old scheduled watcher task self.server_scheduler.remove_job(f"c_{self.server_id}") # remove the stats polling job since server is stopped @@ -912,7 +910,6 @@ class ServerInstance: return self.process.pid if self.process is not None else None def detect_crash(self): - logger.info(f"Detecting possible crash for server: {self.name} ") running = self.check_running() @@ -935,7 +932,6 @@ class ServerInstance: self.stats_helper.sever_crashed() # if we haven't tried to restart more 3 or more times if self.restart_count <= 3: - # start the server if needed server_restarted = self.crash_detected(self.name) @@ -1461,7 +1457,6 @@ class ServerInstance: Console.critical("Can't broadcast server status to websocket") def get_servers_stats(self): - server_stats = {} logger.info("Getting Stats for Server " + self.name + " ...") @@ -1548,7 +1543,6 @@ class ServerInstance: return server_stats def get_server_players(self): - server = HelperServers.get_server_data_by_id(self.server_id) logger.info(f"Getting players for server {server}") @@ -1569,7 +1563,6 @@ class ServerInstance: return [] def get_raw_server_stats(self, server_id): - try: server = HelperServers.get_server_obj(server_id) except: @@ -1718,7 +1711,6 @@ class ServerInstance: return server_stats def record_server_stats(self): - server_stats = self.get_servers_stats() self.stats_helper.insert_server_stats(server_stats) diff --git a/app/classes/shared/tasks.py b/app/classes/shared/tasks.py index e96acd14..320d0829 100644 --- a/app/classes/shared/tasks.py +++ b/app/classes/shared/tasks.py @@ -672,7 +672,6 @@ class TasksManager: host_stats = HelpersManagement.get_latest_hosts_stats() while True: - if host_stats.get( "cpu_usage" ) != HelpersManagement.get_latest_hosts_stats().get( diff --git a/app/classes/web/default_handler.py b/app/classes/web/default_handler.py index dc5c79bb..f41878f1 100644 --- a/app/classes/web/default_handler.py +++ b/app/classes/web/default_handler.py @@ -6,7 +6,6 @@ logger = logging.getLogger(__name__) class DefaultHandler(BaseHandler): - # Override prepare() instead of get() to cover all possible HTTP methods. def prepare(self, page=None): # pylint: disable=arguments-differ if page is not None: diff --git a/app/classes/web/public_handler.py b/app/classes/web/public_handler.py index d5bff692..dad74881 100644 --- a/app/classes/web/public_handler.py +++ b/app/classes/web/public_handler.py @@ -10,7 +10,6 @@ logger = logging.getLogger(__name__) class PublicHandler(BaseHandler): def set_current_user(self, user_id: str = None): - expire_days = self.helper.get_setting("cookie_expire") # if helper comes back with false @@ -29,7 +28,6 @@ class PublicHandler(BaseHandler): # self.clear_cookie("user_data") def get(self, page=None): - error = bleach.clean(self.get_argument("error", "Invalid Login!")) error_msg = bleach.clean(self.get_argument("error_msg", "")) @@ -81,7 +79,6 @@ class PublicHandler(BaseHandler): ) def post(self, page=None): - error = bleach.clean(self.get_argument("error", "Invalid Login!")) error_msg = bleach.clean(self.get_argument("error_msg", "")) @@ -96,7 +93,6 @@ class PublicHandler(BaseHandler): page_data["query"] = self.request.query if page == "login": - next_page = "/login" if self.request.query: next_page = "/login?" + self.request.query diff --git a/app/classes/web/routes/api/auth/login.py b/app/classes/web/routes/api/auth/login.py index 8583dce5..84ae2815 100644 --- a/app/classes/web/routes/api/auth/login.py +++ b/app/classes/web/routes/api/auth/login.py @@ -26,7 +26,6 @@ login_schema = { class ApiAuthLoginHandler(BaseApiHandler): def post(self): - try: data = json.loads(self.request.body) except json.decoder.JSONDecodeError as e: diff --git a/app/classes/web/routes/api/servers/index.py b/app/classes/web/routes/api/servers/index.py index a68e845b..edfec8fc 100644 --- a/app/classes/web/routes/api/servers/index.py +++ b/app/classes/web/routes/api/servers/index.py @@ -631,7 +631,6 @@ class ApiServersIndexHandler(BaseApiHandler): self.finish_json(200, {"status": "ok", "data": auth_data[0]}) def post(self): - auth_data = self.authenticate_user() if not auth_data: return diff --git a/app/classes/web/server_handler.py b/app/classes/web/server_handler.py index da854cc5..722c38fd 100644 --- a/app/classes/web/server_handler.py +++ b/app/classes/web/server_handler.py @@ -552,7 +552,6 @@ class ServerHandler(BaseHandler): self.get_remote_ip(), ) else: - new_server_id = self.controller.create_bedrock_server( server_name, exec_user["user_id"], diff --git a/app/classes/web/tornado_handler.py b/app/classes/web/tornado_handler.py index d0413beb..d2b047d7 100644 --- a/app/classes/web/tornado_handler.py +++ b/app/classes/web/tornado_handler.py @@ -59,7 +59,6 @@ class Webserver: @staticmethod def log_function(handler): - info = { "Status_Code": handler.get_status(), "Method": handler.request.method, @@ -103,7 +102,6 @@ class Webserver: logger.debug("Applied asyncio patch") def run_tornado(self): - # let's verify we have an SSL cert self.helper.create_self_signed_cert() diff --git a/app/classes/web/upload_handler.py b/app/classes/web/upload_handler.py index 11e1c4b8..39752a35 100644 --- a/app/classes/web/upload_handler.py +++ b/app/classes/web/upload_handler.py @@ -18,7 +18,6 @@ logger = logging.getLogger(__name__) @tornado.web.stream_request_body class UploadHandler(BaseHandler): - # noinspection PyAttributeOutsideInit def initialize( self, @@ -173,7 +172,6 @@ class UploadHandler(BaseHandler): if not self.request.headers.get("X-Content-Type", None).startswith( "image/" ): - return self.finish_json( 415, { diff --git a/app/classes/web/websocket_handler.py b/app/classes/web/websocket_handler.py index 64648fd8..78b33951 100644 --- a/app/classes/web/websocket_handler.py +++ b/app/classes/web/websocket_handler.py @@ -79,7 +79,6 @@ class SocketHandler(tornado.websocket.WebSocketHandler): # pylint: disable=arguments-renamed @staticmethod def on_message(raw_message): - logger.debug(f"Got message from WebSocket connection {raw_message}") message = json.loads(raw_message) logger.debug(f"Event Type: {message['event']}, Data: {message['data']}") From e52294dbb3603ea0af168142ee80fb556bb0ffcc Mon Sep 17 00:00:00 2001 From: Andrew Date: Wed, 15 Feb 2023 18:40:20 -0500 Subject: [PATCH 2/3] Appease the linter --- app/classes/controllers/servers_controller.py | 2 +- app/classes/minecraft/mc_ping.py | 2 +- app/classes/shared/helpers.py | 8 ++++---- app/classes/shared/main_controller.py | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/classes/controllers/servers_controller.py b/app/classes/controllers/servers_controller.py index 1503b78f..8a74d3b8 100644 --- a/app/classes/controllers/servers_controller.py +++ b/app/classes/controllers/servers_controller.py @@ -163,7 +163,7 @@ class ServersController(metaclass=Singleton): return server["server_obj"] logger.warning(f"Unable to find server object for server id {server_id}") - raise Exception(f"Unable to find server object for server id {server_id}") + raise ValueError(f"Unable to find server object for server id {server_id}") def init_all_servers(self): servers = self.get_all_defined_servers() diff --git a/app/classes/minecraft/mc_ping.py b/app/classes/minecraft/mc_ping.py index 79610d8d..f760a8f9 100644 --- a/app/classes/minecraft/mc_ping.py +++ b/app/classes/minecraft/mc_ping.py @@ -123,7 +123,7 @@ def ping(ip, port): try: k = sock.recv(1) if not k: - raise Exception() + raise ValueError() except: return 0 k = k[0] diff --git a/app/classes/shared/helpers.py b/app/classes/shared/helpers.py index ba333e92..6f814a95 100644 --- a/app/classes/shared/helpers.py +++ b/app/classes/shared/helpers.py @@ -94,7 +94,7 @@ class Helpers: try: # Get tags from Gitlab, select the latest and parse the semver response = get( - "https://gitlab.com/api/v4/projects/20430749/repository/tags" + "https://gitlab.com/api/v4/projects/20430749/repository/tags", timeout=1 ) if response.status_code == 200: remote_version = pkg_version.parse(json.loads(response.text)[0]["name"]) @@ -131,7 +131,7 @@ class Helpers: try: # Get minecraft server download page # (hopefully the don't change the structure) - download_page = get(url, headers=headers) + download_page = get(url, headers=headers, timeout=1) # Search for our string targets win_download_url = re.search(target_win, download_page.text).group(0) @@ -281,7 +281,7 @@ class Helpers: @staticmethod def check_port(server_port): try: - ip = get("https://api.ipify.org").content.decode("utf8") + ip = get("https://api.ipify.org", timeout=1).content.decode("utf8") except: ip = "google.com" a_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) @@ -751,7 +751,7 @@ class Helpers: use_ssl=True, ) # + "?d=404" try: - if requests.head(url).status_code != 404: + if requests.head(url, timeout=1).status_code != 404: profile_url = url except Exception as e: logger.debug(f"Could not pull resource from Gravatar with error {e}") diff --git a/app/classes/shared/main_controller.py b/app/classes/shared/main_controller.py index 52bb6a72..3207be9d 100644 --- a/app/classes/shared/main_controller.py +++ b/app/classes/shared/main_controller.py @@ -347,7 +347,7 @@ class Controller: elif root_create_data["create_type"] == "import_zip": # TODO: Copy files from the zip file to the new server directory server_file = create_data["jarfile"] - raise Exception("Not yet implemented") + raise NotImplementedError("Not yet implemented") _create_server_properties_if_needed( create_data["server_properties_port"], ) @@ -379,7 +379,7 @@ class Controller: logger.error(f"Server import failed with error: {ex}") elif root_create_data["create_type"] == "import_zip": # TODO: Copy files from the zip file to the new server directory - raise Exception("Not yet implemented") + raise NotImplementedError("Not yet implemented") _create_server_properties_if_needed(0, True) @@ -401,7 +401,7 @@ class Controller: logger.error(f"Server import failed with error: {ex}") elif root_create_data["create_type"] == "import_zip": # TODO: Copy files from the zip file to the new server directory - raise Exception("Not yet implemented") + raise NotImplementedError("Not yet implemented") _create_server_properties_if_needed(0, True) From 224e55429f1293698623f1dacdf577bcdf2ce6c0 Mon Sep 17 00:00:00 2001 From: Andrew Date: Wed, 15 Feb 2023 18:44:53 -0500 Subject: [PATCH 3/3] appease the linter --- app/classes/shared/authentication.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/classes/shared/authentication.py b/app/classes/shared/authentication.py index 1a809bfc..fad8b730 100644 --- a/app/classes/shared/authentication.py +++ b/app/classes/shared/authentication.py @@ -76,7 +76,7 @@ class Authentication: output = self.check(token) if output is None: - raise Exception("Invalid token") + raise ValueError("Invalid token") return output def check_bool(self, token) -> bool: