Merge pull request #240 from tiqi-group/fix/enable-web-argument

Fix: enable web argument handling
This commit is contained in:
Mose Müller
2025-06-19 09:53:29 +02:00
committed by GitHub
2 changed files with 22 additions and 18 deletions

View File

@ -226,17 +226,17 @@ class Server:
server_task = self._loop.create_task(addin_server.serve()) server_task = self._loop.create_task(addin_server.serve())
server_task.add_done_callback(self._handle_server_shutdown) server_task.add_done_callback(self._handle_server_shutdown)
self.servers[server_name] = server_task self.servers[server_name] = server_task
if self._enable_web: self._web_server = WebServer(
self._web_server = WebServer( data_service_observer=self._observer,
data_service_observer=self._observer, host=self._host,
host=self._host, port=self._web_port,
port=self._web_port, enable_frontend=self._enable_web,
**self._kwargs, **self._kwargs,
) )
server_task = self._loop.create_task(self._web_server.serve()) server_task = self._loop.create_task(self._web_server.serve())
server_task.add_done_callback(self._handle_server_shutdown) server_task.add_done_callback(self._handle_server_shutdown)
self.servers["web"] = server_task self.servers["web"] = server_task
self._loop.create_task(self._state_manager.autosave()) self._loop.create_task(self._state_manager.autosave())
@ -319,7 +319,7 @@ class Server:
# here we exclude most kinds of exceptions from triggering this kind of shutdown # here we exclude most kinds of exceptions from triggering this kind of shutdown
exc = context.get("exception") exc = context.get("exception")
if type(exc) not in [RuntimeError, KeyboardInterrupt, asyncio.CancelledError]: if type(exc) not in [RuntimeError, KeyboardInterrupt, asyncio.CancelledError]:
if self._enable_web: if loop.is_running():
async def emit_exception() -> None: async def emit_exception() -> None:
try: try:

View File

@ -81,6 +81,7 @@ class WebServer:
host: str, host: str,
port: int, port: int,
*, *,
enable_frontend: bool = True,
css: str | Path | None = None, css: str | Path | None = None,
favicon_path: str | Path | None = None, favicon_path: str | Path | None = None,
enable_cors: bool = True, enable_cors: bool = True,
@ -97,6 +98,7 @@ class WebServer:
self.enable_cors = enable_cors self.enable_cors = enable_cors
self.frontend_src = frontend_src self.frontend_src = frontend_src
self.favicon_path: Path | str = favicon_path # type: ignore self.favicon_path: Path | str = favicon_path # type: ignore
self.enable_frontend = enable_frontend
if self.favicon_path is None: if self.favicon_path is None:
self.favicon_path = self.frontend_src / "favicon.ico" self.favicon_path = self.frontend_src / "favicon.ico"
@ -162,15 +164,17 @@ class WebServer:
# Define routes # Define routes
self._sio.attach(app, socketio_path="/ws/socket.io") self._sio.attach(app, socketio_path="/ws/socket.io")
app.router.add_static("/assets", self.frontend_src / "assets") if self.enable_frontend:
app.router.add_get("/favicon.ico", self._favicon_route) app.router.add_static("/assets", self.frontend_src / "assets")
app.router.add_get("/service-properties", self._service_properties_route) app.router.add_get("/favicon.ico", self._favicon_route)
app.router.add_get("/web-settings", self._web_settings_route) app.router.add_get("/service-properties", self._service_properties_route)
app.router.add_get("/custom.css", self._styles_route) app.router.add_get("/web-settings", self._web_settings_route)
app.router.add_get("/custom.css", self._styles_route)
app.add_subapp("/api/", create_api_application(self.state_manager)) app.add_subapp("/api/", create_api_application(self.state_manager))
app.router.add_get(r"/", index) if self.enable_frontend:
app.router.add_get(r"/{tail:.*}", index) app.router.add_get(r"/", index)
app.router.add_get(r"/{tail:.*}", index)
await aiohttp.web._run_app( await aiohttp.web._run_app(
app, app,