From 9733e185a6875acf1bb2999b9a50f7611fac2db8 Mon Sep 17 00:00:00 2001 From: Brett Date: Sat, 21 Oct 2023 16:40:19 -0700 Subject: [PATCH] Added system_safe_path to convert paths to Windows --- src/api_server.py | 15 +++++++++++---- src/utilities/misc_helper.py | 7 +++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/api_server.py b/src/api_server.py index 4f69dc3..19e77cd 100755 --- a/src/api_server.py +++ b/src/api_server.py @@ -26,6 +26,7 @@ from src.render_queue import RenderQueue, JobNotFoundError from src.server_proxy import RenderServerProxy from src.utilities.server_helper import generate_thumbnail_for_job from src.utilities.zeroconf_server import ZeroconfServer +from src.utilities.misc_helper import system_safe_path from src.workers.worker_factory import RenderWorkerFactory from src.workers.base_worker import string_to_status, RenderStatus @@ -244,7 +245,8 @@ def download_all(job_id): @server.get('/api/presets') def presets(): - with open('config/presets.yaml') as f: + presets_path = system_safe_path('config/presets.yaml') + with open(presets_path) as f: presets = yaml.load(f, Loader=yaml.FullLoader) return presets @@ -594,15 +596,20 @@ def start_server(background_thread=False): # load flask settings server.config['HOSTNAME'] = local_hostname server.config['PORT'] = int(config.get('port_number', 8080)) - server.config['UPLOAD_FOLDER'] = os.path.expanduser(config['upload_folder']) - server.config['THUMBS_FOLDER'] = os.path.join(os.path.expanduser(config['upload_folder']), 'thumbs') + server.config['UPLOAD_FOLDER'] = system_safe_path(os.path.expanduser(config['upload_folder'])) + server.config['THUMBS_FOLDER'] = system_safe_path(os.path.join(os.path.expanduser(config['upload_folder']), 'thumbs')) server.config['MAX_CONTENT_PATH'] = config['max_content_path'] server.config['enable_split_jobs'] = config.get('enable_split_jobs', False) # Setup directory for saving engines to - EngineManager.engines_path = os.path.join(os.path.join(os.path.expanduser(config['upload_folder']), 'engines')) + EngineManager.engines_path = system_safe_path(os.path.join(os.path.join(os.path.expanduser(config['upload_folder']), 'engines'))) os.makedirs(EngineManager.engines_path, exist_ok=True) + # Debug info + logger.debug(f"Upload directory: {server.config['UPLOAD_FOLDER']}") + logger.debug(f"Thumbs directory: {server.config['THUMBS_FOLDER']}") + logger.debug(f"Engines directory: {EngineManager.engines_path}") + # disable most Flask logging flask_log = logging.getLogger('werkzeug') flask_log.setLevel(config.get('flask_log_level', 'ERROR').upper()) diff --git a/src/utilities/misc_helper.py b/src/utilities/misc_helper.py index 15821e1..0362e31 100644 --- a/src/utilities/misc_helper.py +++ b/src/utilities/misc_helper.py @@ -1,5 +1,6 @@ import logging import os +import platform import subprocess from datetime import datetime @@ -103,3 +104,9 @@ def get_file_size_human(file_path): else: return f"{size_in_bytes / 1024 ** 4:.2f} TB" + +# Convert path to the appropriate format for the current platform +def system_safe_path(path): + if platform.system().lower() == "windows": + return os.path.normpath(path) + return path.replace("\\", "/")