Add admin official account connection UI and persistent session secrets
This commit is contained in:
@@ -6,6 +6,7 @@ from pigway_frame_flow.drivers.kokonna.driver import KokonnaDriver
|
||||
from pigway_frame_flow.drivers.kokonna.mock import MockClient
|
||||
from pigway_frame_flow.errors import ErrorCode as E
|
||||
from pigway_frame_flow.errors import FlowError
|
||||
from pigway_frame_flow.integrations.kokonna_official.connection import Connection
|
||||
from pigway_frame_flow.integrations.kokonna_official.widgets import WidgetReader
|
||||
from pigway_frame_flow.settings import secret
|
||||
|
||||
@@ -26,7 +27,7 @@ class DeviceRegistry:
|
||||
}
|
||||
)
|
||||
self.drivers: dict[str, FrameDeviceDriver] = {}
|
||||
self.official: dict[str, WidgetReader] = {}
|
||||
self.official: dict[str, Connection] = {}
|
||||
self.keys = []
|
||||
for id, entry in devices.items():
|
||||
if not entry.get("enabled", True):
|
||||
@@ -56,7 +57,11 @@ class DeviceRegistry:
|
||||
widgets = WidgetReader(
|
||||
widget_token, entry.get("widget_robot_id"), settings.mock
|
||||
)
|
||||
self.official[id] = widgets
|
||||
self.official[id] = Connection(
|
||||
widgets,
|
||||
settings.config_dir / f"official-{id}.secret",
|
||||
settings.additional_secrets,
|
||||
)
|
||||
self.drivers[id] = KokonnaDriver(client, id, settings.sanitize)
|
||||
|
||||
def get(self, id: str) -> FrameDeviceDriver:
|
||||
@@ -66,4 +71,4 @@ class DeviceRegistry:
|
||||
|
||||
def official_widgets(self, id: str):
|
||||
self.get(id)
|
||||
return self.official[id].read()
|
||||
return self.official[id].widgets()
|
||||
|
||||
Reference in New Issue
Block a user