Spaces:
Paused
Paused
| import os | |
| import sys | |
| import traceback | |
| from launcher.config import determine_proxy_configuration | |
| def run_internal_camoufox(args, launch_server, DefaultAddons): | |
| if not launch_server or not DefaultAddons: | |
| print( | |
| "Fatal Error (--internal-launch-mode): camoufox.server.launch_server or camoufox.DefaultAddons not available.", | |
| file=sys.stderr, | |
| ) | |
| sys.exit(1) | |
| internal_mode_arg = args.internal_launch_mode | |
| auth_file = args.internal_auth_file | |
| camoufox_port_internal = args.internal_camoufox_port | |
| proxy_config = determine_proxy_configuration(args.internal_camoufox_proxy) | |
| actual_proxy_to_use = proxy_config["camoufox_proxy"] | |
| print(f"--- [Internal Camoufox Start] Proxy Config: {proxy_config['source']} ---", flush=True) | |
| camoufox_proxy_internal = actual_proxy_to_use | |
| camoufox_os_internal = args.internal_camoufox_os | |
| print( | |
| f"--- [Internal Camoufox Start] Mode: {internal_mode_arg}, Auth: {os.path.basename(auth_file) if auth_file else 'None'}, " | |
| f"Port: {camoufox_port_internal}, Proxy: {camoufox_proxy_internal or 'None'}, OS: {camoufox_os_internal} ---", | |
| flush=True, | |
| ) | |
| try: | |
| launch_args_for_internal_camoufox = { | |
| "port": camoufox_port_internal, | |
| "addons": [], | |
| "exclude_addons": [DefaultAddons.UBO], | |
| "window": (1440, 900), | |
| } | |
| if camoufox_proxy_internal: | |
| launch_args_for_internal_camoufox["proxy"] = { | |
| "server": camoufox_proxy_internal | |
| } | |
| if auth_file: | |
| launch_args_for_internal_camoufox["storage_state"] = auth_file | |
| if "," in camoufox_os_internal: | |
| camoufox_os_list_internal = [ | |
| s.strip().lower() for s in camoufox_os_internal.split(",") | |
| ] | |
| valid_os_values = ["windows", "macos", "linux"] | |
| if not all(val in valid_os_values for val in camoufox_os_list_internal): | |
| print( | |
| f"Internal Camoufox Error: Invalid OS values: {camoufox_os_list_internal}", | |
| file=sys.stderr, | |
| ) | |
| sys.exit(1) | |
| launch_args_for_internal_camoufox["os"] = camoufox_os_list_internal | |
| elif camoufox_os_internal.lower() in ["windows", "macos", "linux"]: | |
| launch_args_for_internal_camoufox["os"] = camoufox_os_internal.lower() | |
| elif camoufox_os_internal.lower() != "random": | |
| print( | |
| f"Internal Camoufox Error: Invalid OS value: '{camoufox_os_internal}'", | |
| file=sys.stderr, | |
| ) | |
| sys.exit(1) | |
| print( | |
| f"Parameters passed to launch_server: {launch_args_for_internal_camoufox}", | |
| flush=True, | |
| ) | |
| if internal_mode_arg == "headless": | |
| launch_server(headless=True, **launch_args_for_internal_camoufox) | |
| elif internal_mode_arg == "virtual_headless": | |
| launch_server(headless="virtual", **launch_args_for_internal_camoufox) | |
| elif internal_mode_arg == "debug": | |
| launch_server(headless=False, **launch_args_for_internal_camoufox) | |
| print( | |
| f"--- [Internal Camoufox Start] launch_server ({internal_mode_arg} mode) call completed/blocked. ---", | |
| flush=True, | |
| ) | |
| except Exception as e_internal_launch_final: | |
| print( | |
| f"Error (--internal-launch-mode): Exception in launch_server: {e_internal_launch_final}", | |
| file=sys.stderr, | |
| flush=True, | |
| ) | |
| traceback.print_exc(file=sys.stderr) | |
| sys.exit(1) | |
| sys.exit(0) | |