Add admin official account connection UI and persistent session secrets

This commit is contained in:
Pigway
2026-10-04 00:20:43 +08:00
parent 5aa0e9f762
commit b76af5ada3
12 changed files with 400 additions and 12 deletions
+8 -3
View File
@@ -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()