mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
move host listener to UI
This commit is contained in:
parent
1acbd5129e
commit
5a7a54f138
4 changed files with 17 additions and 19 deletions
|
|
@ -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"
|
||||
|
||||
|
|
|
|||
|
|
@ -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."""
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue