37 lines
963 B
Python
37 lines
963 B
Python
from yaml import safe_load
|
|
|
|
from tfw.internals.networking import Scope
|
|
|
|
|
|
class FrontendConfigHandler:
|
|
keys = ['frontend.ready']
|
|
|
|
def __init__(self, config_path):
|
|
self._config_path = config_path
|
|
|
|
def handle_event(self, _, connector):
|
|
# pylint: disable=no-self-use
|
|
for message in self._config_messages:
|
|
connector.send_message(message, scope=Scope.WEBSOCKET)
|
|
connector.send_message({'key': 'frontend.ready'}, scope=Scope.WEBSOCKET)
|
|
|
|
@property
|
|
def _config_messages(self):
|
|
config = safe_load(self._config_str)
|
|
return [
|
|
self._create_config_message(k, v)
|
|
for k, v in config.items()
|
|
]
|
|
|
|
@property
|
|
def _config_str(self):
|
|
with open(self._config_path, 'r') as ifile:
|
|
return ifile.read()
|
|
|
|
@staticmethod
|
|
def _create_config_message(key, value):
|
|
return {
|
|
'key': f'frontend.{key}',
|
|
**value
|
|
}
|