generate_new_web_settings will now append to existing config file (not overwrite entries)

This commit is contained in:
Mose Müller 2024-01-08 15:45:02 +01:00
parent 6382be5735
commit 62e647c667

View File

@ -111,11 +111,30 @@ class WebServer:
json.dumps(self._generated_web_settings_dict(), indent=4) json.dumps(self._generated_web_settings_dict(), indent=4)
) )
def _get_current_web_settings(self) -> dict[str, dict[str, Any]]:
file_path = self._service_config_dir / "web_settings.json"
web_settings = {}
# File exists, read its content
if file_path.exists():
logger.debug(
"Reading configuration from file '%s' ...", file_path.absolute()
)
with file_path.open("r", encoding="utf-8") as file:
web_settings = json.load(file)
return web_settings
def _generated_web_settings_dict(self) -> dict[str, dict[str, Any]]: def _generated_web_settings_dict(self) -> dict[str, dict[str, Any]]:
return { current_web_settings = self._get_current_web_settings()
path: {"displayName": path.split(".")[-1]} for path in generate_serialized_data_paths(self.state_manager.cache):
for path in generate_serialized_data_paths(self.state_manager.cache) if path in current_web_settings:
} continue
current_web_settings[path] = {"displayName": path.split(".")[-1]}
return current_web_settings
def _setup_socketio(self) -> None: def _setup_socketio(self) -> None:
self._sio = setup_sio_server(self.observer, self.enable_cors, self._loop) self._sio = setup_sio_server(self.observer, self.enable_cors, self._loop)
@ -148,19 +167,7 @@ class WebServer:
@app.get("/web-settings") @app.get("/web-settings")
def web_settings() -> dict[str, Any]: def web_settings() -> dict[str, Any]:
file_path = self._service_config_dir / "web_settings.json" return self._get_current_web_settings()
web_settings = {}
# File exists, read its content
if file_path.exists():
logger.debug(
"Reading configuration from file '%s' ...", file_path.absolute()
)
with file_path.open("r", encoding="utf-8") as file:
web_settings = json.load(file)
return web_settings
# exposing custom.css file provided by user # exposing custom.css file provided by user
if self.css is not None: if self.css is not None: