Added system_safe_path to convert paths to Windows

This commit is contained in:
2023-10-21 16:40:19 -07:00
parent 0b6b971fbc
commit 9733e185a6
2 changed files with 18 additions and 4 deletions

View File

@@ -26,6 +26,7 @@ from src.render_queue import RenderQueue, JobNotFoundError
from src.server_proxy import RenderServerProxy from src.server_proxy import RenderServerProxy
from src.utilities.server_helper import generate_thumbnail_for_job from src.utilities.server_helper import generate_thumbnail_for_job
from src.utilities.zeroconf_server import ZeroconfServer 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.worker_factory import RenderWorkerFactory
from src.workers.base_worker import string_to_status, RenderStatus from src.workers.base_worker import string_to_status, RenderStatus
@@ -244,7 +245,8 @@ def download_all(job_id):
@server.get('/api/presets') @server.get('/api/presets')
def 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) presets = yaml.load(f, Loader=yaml.FullLoader)
return presets return presets
@@ -594,15 +596,20 @@ def start_server(background_thread=False):
# load flask settings # load flask settings
server.config['HOSTNAME'] = local_hostname server.config['HOSTNAME'] = local_hostname
server.config['PORT'] = int(config.get('port_number', 8080)) server.config['PORT'] = int(config.get('port_number', 8080))
server.config['UPLOAD_FOLDER'] = os.path.expanduser(config['upload_folder']) server.config['UPLOAD_FOLDER'] = system_safe_path(os.path.expanduser(config['upload_folder']))
server.config['THUMBS_FOLDER'] = os.path.join(os.path.expanduser(config['upload_folder']), 'thumbs') 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['MAX_CONTENT_PATH'] = config['max_content_path']
server.config['enable_split_jobs'] = config.get('enable_split_jobs', False) server.config['enable_split_jobs'] = config.get('enable_split_jobs', False)
# Setup directory for saving engines to # 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) 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 # disable most Flask logging
flask_log = logging.getLogger('werkzeug') flask_log = logging.getLogger('werkzeug')
flask_log.setLevel(config.get('flask_log_level', 'ERROR').upper()) flask_log.setLevel(config.get('flask_log_level', 'ERROR').upper())

View File

@@ -1,5 +1,6 @@
import logging import logging
import os import os
import platform
import subprocess import subprocess
from datetime import datetime from datetime import datetime
@@ -103,3 +104,9 @@ def get_file_size_human(file_path):
else: else:
return f"{size_in_bytes / 1024 ** 4:.2f} TB" 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("\\", "/")