From 02ab16a566bb53d1a249e67159e59f3a35eaa242 Mon Sep 17 00:00:00 2001 From: Cole Deck Date: Tue, 14 May 2024 21:51:36 -0500 Subject: [PATCH] Add windows client mode updates --- client.bat | 29 +++++++++++++++++++++++++++++ jukebox-web | 2 +- led_demo.bat | 1 + run.py | 28 +++++++++++++++++++++------- util.py | 4 ++-- 5 files changed, 54 insertions(+), 10 deletions(-) create mode 100644 client.bat create mode 100644 led_demo.bat diff --git a/client.bat b/client.bat new file mode 100644 index 0000000..2c792dc --- /dev/null +++ b/client.bat @@ -0,0 +1,29 @@ + +@echo off + +:: BatchGotAdmin +:------------------------------------- +REM --> Check for permissions +>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" + +REM --> If error flag set, we do not have admin. +if '%errorlevel%' NEQ '0' ( + echo Requesting administrative privileges... + goto UACPrompt +) else ( goto gotAdmin ) + +:UACPrompt + echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" + set params = %*:"="" + echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" + + "%temp%\getadmin.vbs" + del "%temp%\getadmin.vbs" + exit /B + +:gotAdmin + pushd "%CD%" + CD /D "%~dp0" + python run.py +:-------------------------------------- + diff --git a/jukebox-web b/jukebox-web index a2e94ba..8fe3309 160000 --- a/jukebox-web +++ b/jukebox-web @@ -1 +1 @@ -Subproject commit a2e94baadc8a8cc702d2a5ceb1170914e690d0e7 +Subproject commit 8fe33095ddd16d1b975453b0ee0e7a52767605f8 diff --git a/led_demo.bat b/led_demo.bat new file mode 100644 index 0000000..bdb8790 --- /dev/null +++ b/led_demo.bat @@ -0,0 +1 @@ +python led_control.py \ No newline at end of file diff --git a/run.py b/run.py index b738029..f403264 100755 --- a/run.py +++ b/run.py @@ -937,13 +937,17 @@ def run_loading_app(): app.run(debug=True, use_reloader=False, port=7000) def setup_client(pool): - # Windows client setup - fprint("Opening browser...") - firefox = webdriver.Firefox() - firefox.fullscreen_window() global config global vm_ready global serverproc + if config["core"]["server"] == "Hyper-V": + run_cmd("Start-VM -Name Jukebox*") # any and all VMs starting with "Jukebox" + # Windows client setup + fprint("Opening browser...") + + firefox = webdriver.Firefox() + firefox.fullscreen_window() + # Open loading wepage p = Process(target=run_loading_app) p.start() @@ -952,12 +956,22 @@ def setup_client(pool): firefox.get('http://localhost:7000') # start Linux server VM - if config["core"]["server"] == "Hyper-V": - run_cmd("Start-VM -Name Jukebox*") # any and all VMs starting with "Jukebox" + - sleep(20) + sleep(35) p.terminate() firefox.get('http://192.168.1.25:3000') + # import time + # while True: + # time.sleep(2) # Wait for a given interval + # logs = firefox.get_log('browser') + # for entry in logs: + # if "WebSocket connection" in entry['message'] or "ERR_" in entry['message'] or "Failed to connect" in entry['message'] or "failed to connect" in entry['message']: + # print(f"Error detected in console: {entry['message']}") + # firefox.refresh() # Refresh the page on error + # # else: + # # break # Exit the loop or continue depending on your logic + return True diff --git a/util.py b/util.py index f199986..36d5ac1 100755 --- a/util.py +++ b/util.py @@ -26,8 +26,8 @@ if win32: #if not getattr(sys, "frozen", False): startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW # hide powershell window res = subprocess.check_output(["WMIC", "ComputerSystem", "GET", "UserName"], universal_newlines=True, startupinfo=startupinfo) - _, username = res.strip().rsplit("\n", 1) - userid, sysdom = username.rsplit("\\", 1) + # _, username = res.strip().rsplit("\n", 1) + # userid, sysdom = username.rsplit("\\", 1) if linux or macos: sysid = hex(uuid.getnode())