import os import socket import subprocess import time import requests import sys import json now_dir = os.getcwd() sys.path.append(now_dir) config_file = os.path.join(now_dir, "assets", "config.json") env_path = os.path.join(now_dir, "env", "python.exe") host = "localhost" port = 8000 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(2) def start_flask(): try: sock.connect((host, port)) print( f"Something is listening on port {port}; Probably the Flask server is already running." ) print("Trying to start it anyway") sock.close() requests.post("http://localhost:8000/shutdown") time.sleep(3) script_path = os.path.join(now_dir, "assets", "flask", "routes.py") try: subprocess.Popen( [env_path, script_path], creationflags=subprocess.CREATE_NEW_CONSOLE ) except Exception as e: print(f"Failed to start the Flask server") print(e) except Exception as e: sock.close() script_path = os.path.join(now_dir, "assets", "flask", "routes.py") try: subprocess.Popen( [env_path, script_path], creationflags=subprocess.CREATE_NEW_CONSOLE ) except Exception as e: print("Failed to start the Flask server") print(e) def load_config_flask(): with open(config_file, "r") as file: config = json.load(file) return config["flask_server"] def save_config(value): with open(config_file, "r", encoding="utf8") as file: config = json.load(file) config["flask_server"] = value with open(config_file, "w", encoding="utf8") as file: json.dump(config, file, indent=2)