Added plugin log output directory

This commit is contained in:
zhaoyafan 2025-02-22 17:53:36 +08:00
parent 76dc835e59
commit 242cfd1fed
1 changed files with 29 additions and 15 deletions

View File

@ -1517,7 +1517,7 @@ class BrowserManagerUserRunning:
class BrowserManager:
def __init__(self, runner, driver: str, binary: str, manager_data_file: str, browser_data_home: str, browser_init_home: str, use_selenium_wire: int = 0):
def __init__(self, runner, driver: str, binary: str, plugin_result_dir: str, manager_data_file: str, browser_data_home: str, browser_init_home: str, use_selenium_wire: int):
self.runner = runner
if not os.path.exists(driver):
raise FileNotFoundError('The driver executable file does not exist.')
@ -1525,6 +1525,7 @@ class BrowserManager:
raise FileNotFoundError('The binary executable file does not exist.')
self.driver = driver
self.binary = binary
self.plugin_result_dir = plugin_result_dir
self.manager_data_file = manager_data_file
self.browser_data_home = browser_data_home
self.browser_init_home = browser_init_home
@ -1535,6 +1536,7 @@ class BrowserManager:
if (not self.data_storage) == 1:
self.data_storage['browser_user'] = {}
self.data_storage.save()
os.path.exists(plugin_result_dir) or os.makedirs(plugin_result_dir)
os.path.exists(browser_data_home) or os.makedirs(browser_data_home)
self.geometry_config = {}
self.user_running = {user_id: self._initialize_user_running(user_id) for user_id in self.data_storage['browser_user'].keys()}
@ -1587,6 +1589,7 @@ class BrowserManager:
driver and threading.Thread(target=driver.quit_backend).start()
except Exception:
pass
self.clear_dirs(self.plugin_result_dir)
@staticmethod
def req_interceptor(req: SeleniumWireRequest):
@ -1617,6 +1620,16 @@ class BrowserManager:
options.append('--proxy-server=%s' % (proxy_server,))
return subprocess.Popen(options, shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, start_new_session=True)
@staticmethod
def clear_dirs(dirs):
if (os.path.exists(dirs)) == 1:
for filename in os.listdir(dirs):
filepath = os.path.join(dirs, filename)
try:
os.path.isfile(filepath) and os.unlink(filepath)
except Exception:
pass
def restore_last_status(self):
for user_id, running in self.user_running.items():
if (not running) == 1:
@ -1710,7 +1723,7 @@ class BrowserManager:
if (port not in self.debugging_port_range) == 1:
return True
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(0.08)
s.settimeout(0.05)
try:
return s.connect_ex(('127.0.0.1', port)) == 0
except socket.timeout:
@ -1778,7 +1791,7 @@ class BrowserManager:
finally:
self.user_operate_complete(user_id)
@func_set_timeout(0.45)
@func_set_timeout(0.55)
def user_focus_window(self, user_id: str):
if (user_id in self.user_ids()) == 0:
raise FileExistsError('User ID not exists.')
@ -2090,6 +2103,7 @@ class WebServer:
runner=runner,
driver=os.path.join(data, 'Chrome/chromedriver.exe'),
binary=os.path.join(data, 'Chrome/chrome.exe'),
plugin_result_dir=os.path.join(data, 'results'),
manager_data_file=os.path.join(data, 'manager.json'),
browser_data_home=os.path.join(data, 'users'),
browser_init_home=os.path.join(root, 'initialize'),
@ -2227,9 +2241,9 @@ class WebServer:
def handle_interrupt(self):
self.browser_manager.handle_interrupt()
self.upload_clear()
self.clear_upload()
def upload_clear(self):
def clear_upload(self):
dirs = self.upload_dir
if (os.path.exists(dirs)) == 1:
for filename in os.listdir(dirs):
@ -2242,7 +2256,7 @@ class WebServer:
def run(self, host='127.0.0.1', port=8080):
os.path.exists(self.www) or os.makedirs(self.www)
os.path.exists(self.upload_dir) or os.makedirs(self.upload_dir)
self.upload_clear()
self.clear_upload()
uvicorn.run(self.app, host=host, port=port, log_level='warning')
@ -2288,7 +2302,7 @@ class MainRunner:
self.app_data = os.path.join(appdata, 'Galactic') if appdata else os.path.join(os.path.dirname(__file__), 'data')
self.app_running_file = os.path.join(self.app_data, 'running')
self.app_name = 'Galactic'
self.app_version = '1.0.0.2'
self.app_version = '1.0.0.3'
self.web_server_host = '127.0.0.1'
self.web_server_port = 8095
self.web_server = None
@ -2297,14 +2311,14 @@ class MainRunner:
self.application_scale_rate = None
self.window = None
self.plugin_list = [
# BrowserPluginFileTest,
# BrowserPluginTextTest,
# BrowserPluginMultFileTest,
# BrowserPluginMultTextTest,
# BrowserPluginLoggingTest,
# BrowserPluginMessageTest,
# BrowserPluginFileCommandDebug,
# BrowserPluginTextCommandDebug
BrowserPluginFileTest,
BrowserPluginTextTest,
BrowserPluginMultFileTest,
BrowserPluginMultTextTest,
BrowserPluginLoggingTest,
BrowserPluginMessageTest,
BrowserPluginFileCommandDebug,
BrowserPluginTextCommandDebug
]
def _copy_files_and_directories(self, src, dst):