From 5a7a54f138b3bd053aa8762e31f4b71dc746dffb Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:44:27 +0200 Subject: [PATCH] move host listener to UI --- client/ayon_core/tools/tray/addons_manager.py | 25 ++++++++----------- .../host_console_listener.py | 6 +++-- client/ayon_core/tools/tray/ui/tray.py | 3 +++ .../tools/tray/webserver/__init__.py | 2 -- 4 files changed, 17 insertions(+), 19 deletions(-) rename client/ayon_core/tools/tray/{webserver => ui}/host_console_listener.py (97%) diff --git a/client/ayon_core/tools/tray/addons_manager.py b/client/ayon_core/tools/tray/addons_manager.py index 3e46775fc3..166b8ab5c6 100644 --- a/client/ayon_core/tools/tray/addons_manager.py +++ b/client/ayon_core/tools/tray/addons_manager.py @@ -2,10 +2,8 @@ import os import time from typing import Callable -from ayon_core.resources import RESOURCES_DIR from ayon_core.addon import AddonsManager, ITrayAddon, ITrayService from ayon_core.tools.tray.webserver import ( - HostListener, find_free_port, WebServerManager, ) @@ -28,15 +26,14 @@ class TrayAddonsManager(AddonsManager): self._tray_manager = tray_manager - self._host_listener = None - self._server_manager = WebServerManager(find_free_port(), None) + self._webserver_manager = WebServerManager(find_free_port(), None) self.doubleclick_callbacks = {} self.doubleclick_callback = None @property def webserver_url(self): - return self._server_manager.url + return self._webserver_manager.url def get_doubleclick_callback(self): callback_name = self.doubleclick_callback @@ -73,10 +70,10 @@ class TrayAddonsManager(AddonsManager): self.tray_menu(tray_menu) def add_route(self, request_method: str, path: str, handler: Callable): - self._server_manager.add_route(request_method, path, handler) + self._webserver_manager.add_route(request_method, path, handler) def add_static(self, prefix: str, path: str): - self._server_manager.add_static(prefix, path) + self._webserver_manager.add_static(prefix, path) def add_addon_route( self, @@ -85,7 +82,7 @@ class TrayAddonsManager(AddonsManager): request_method: str, handler: Callable ) -> str: - return self._server_manager.add_addon_route( + return self._webserver_manager.add_addon_route( addon_name, path, request_method, @@ -95,7 +92,7 @@ class TrayAddonsManager(AddonsManager): def add_addon_static( self, addon_name: str, prefix: str, path: str ) -> str: - return self._server_manager.add_addon_static( + return self._webserver_manager.add_addon_static( addon_name, prefix, path @@ -145,7 +142,7 @@ class TrayAddonsManager(AddonsManager): self._report["Tray init"] = report def connect_addons(self): - self._server_manager.connect_with_addons( + self._webserver_manager.connect_with_addons( self.get_enabled_addons() ) super().connect_addons() @@ -190,7 +187,7 @@ class TrayAddonsManager(AddonsManager): self._report["Tray menu"] = report def start_addons(self): - self._server_manager.start_server() + self._webserver_manager.start_server() report = {} time_start = time.time() @@ -219,7 +216,7 @@ class TrayAddonsManager(AddonsManager): self._report["Addons start"] = report def on_exit(self): - self._server_manager.stop_server() + self._webserver_manager.stop_server() for addon in self.get_enabled_tray_addons(): if addon.tray_initialized: try: @@ -234,11 +231,9 @@ class TrayAddonsManager(AddonsManager): def get_tray_webserver(self): # TODO rename/remove method - return self._server_manager + return self._webserver_manager def _init_tray_webserver(self): - self._host_listener = HostListener(self._server_manager, self) - webserver_url = self.webserver_url statisc_url = f"{webserver_url}/res" diff --git a/client/ayon_core/tools/tray/webserver/host_console_listener.py b/client/ayon_core/tools/tray/ui/host_console_listener.py similarity index 97% rename from client/ayon_core/tools/tray/webserver/host_console_listener.py rename to client/ayon_core/tools/tray/ui/host_console_listener.py index 200dde465c..ed3b3767fe 100644 --- a/client/ayon_core/tools/tray/webserver/host_console_listener.py +++ b/client/ayon_core/tools/tray/ui/host_console_listener.py @@ -22,12 +22,14 @@ class IconType: class HostListener: - def __init__(self, webserver, tray_manager): + def __init__(self, addons_manager, tray_manager): self._tray_manager = tray_manager self._window_per_id = {} # dialogs per host name self._action_per_id = {} # QAction per host name - webserver.add_route("*", "/ws/host_listener", self.websocket_handler) + addons_manager.add_route( + "*", "/ws/host_listener", self.websocket_handler + ) def _host_is_connecting(self, host_name, label): """ Initialize dialog, adds to submenu.""" diff --git a/client/ayon_core/tools/tray/ui/tray.py b/client/ayon_core/tools/tray/ui/tray.py index eaf1245dd6..b46821c7df 100644 --- a/client/ayon_core/tools/tray/ui/tray.py +++ b/client/ayon_core/tools/tray/ui/tray.py @@ -35,6 +35,7 @@ from ayon_core.tools.tray.lib import ( TrayIsRunningError, ) +from .host_console_listener import HostListener from .info_widget import InfoWidget from .dialogs import ( UpdateDialog, @@ -65,6 +66,8 @@ class TrayManager: self._addons_manager = TrayAddonsManager(self) + self._host_listener = HostListener(self._addons_manager, self) + self.errors = [] self._update_check_timer = None diff --git a/client/ayon_core/tools/tray/webserver/__init__.py b/client/ayon_core/tools/tray/webserver/__init__.py index a81348365f..93bfbd6aee 100644 --- a/client/ayon_core/tools/tray/webserver/__init__.py +++ b/client/ayon_core/tools/tray/webserver/__init__.py @@ -1,7 +1,6 @@ from .structures import HostMsgAction from .base_routes import RestApiEndpoint from .server import find_free_port, WebServerManager -from .host_console_listener import HostListener __all__ = ( @@ -9,5 +8,4 @@ __all__ = ( "RestApiEndpoint", "find_free_port", "WebServerManager", - "HostListener", )